iotests: Replace IMGOPTS by _unsupported_imgopts

Some tests require compat=1.1 and thus set IMGOPTS='compat=1.1'
globally.  That is not how it should be done; instead, they should
simply set _unsupported_imgopts to compat=0.10 (compat=1.1 is the
default anyway).

This makes the tests heed user-specified $IMGOPTS.  Some do not work
with all image options, though, so we need to disable them accordingly.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Maxim Levitsky <mlevitsky@redhat.com>
Message-id: 20191107163708.833192-7-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Max Reitz 2019-11-07 17:36:52 +01:00
parent 7ab2a25890
commit b043b07ce3
6 changed files with 11 additions and 9 deletions

View file

@ -43,9 +43,8 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qcow2-specific low-level functionality
_supported_fmt qcow2
_supported_proto file
# Only qcow2v3 and later supports feature bits
IMGOPTS="compat=1.1"
_unsupported_imgopts 'compat=0.10'
echo
echo === Image with unknown incompatible feature bit ===

View file

@ -48,6 +48,8 @@ _filter_io_error()
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# These tests only work for compat=1.1 images with refcount_bits=16
_unsupported_imgopts 'compat=0.10' 'refcount_bits=\([^1]\|.\([^6]\|$\)\)'
# The repair process will create a large file - so check for availability first
_require_large_file 64G
@ -58,8 +60,6 @@ l1_offset=196608 # 0x30000 (XXX: just an assumption)
l2_offset=262144 # 0x40000 (XXX: just an assumption)
l2_offset_after_snapshot=524288 # 0x80000 (XXX: just an assumption)
IMGOPTS="compat=1.1"
OPEN_RW="open -o overlap-check=all $TEST_IMG"
# Overlap checks are done before write operations only, therefore opening an
# image read-only makes the overlap-check option irrelevant

View file

@ -40,8 +40,9 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qcow2-specific low-level functionality
_supported_fmt qcow2
_supported_proto generic
# We need zero clusters and snapshots
_unsupported_imgopts 'compat=0.10' 'refcount_bits=1[^0-9]'
IMGOPTS="compat=1.1"
IMG_SIZE=64M
echo

View file

@ -39,9 +39,10 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qcow2-specific low-level functionality
_supported_fmt qcow2
_supported_proto generic
# We need zero clusters and snapshots
_unsupported_imgopts 'compat=0.10' 'refcount_bits=1[^0-9]'
# Intentionally create an unaligned image
IMGOPTS="compat=1.1"
IMG_SIZE=$((64 * 1024 * 1024 + 512))
echo

View file

@ -39,8 +39,9 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qcow2-specific low-level functionality
_supported_fmt qcow2
_supported_proto generic
# Internal snapshots are (currently) impossible with refcount_bits=1
_unsupported_imgopts 'compat=0.10' 'refcount_bits=1[^0-9]'
IMGOPTS="compat=1.1"
IMG_SIZE=128K
case "$QEMU_DEFAULT_MACHINE" in

View file

@ -40,8 +40,8 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
IMGOPTS="compat=1.1"
# The code path we want to test here only works for compat=1.1 images
_unsupported_imgopts 'compat=0.10'
for event in l1_update empty_image_prepare reftable_update refblock_alloc; do