5435e8a804
Backport patches related with iotest from upstream * Patches added: block-backend-Retain-permissions-after-m.patch iotest-065-explicit-compression-type.patch iotest-214-explicit-compression-type.patch iotest-302-use-img_info_log-helper.patch iotest-303-explicit-compression-type.patch iotest-39-use-_qcow2_dump_header.patch iotests-60-more-accurate-set-dirty-bit-i.patch iotests-bash-tests-filter-compression-ty.patch iotests-common.rc-introduce-_qcow2_dump_.patch iotests-declare-lack-of-support-for-comp.patch iotests-drop-qemu_img_verbose-helper.patch iotests-massive-use-_qcow2_dump_header.patch iotests-MRCE-Write-data-to-source.patch iotests.py-filter-out-successful-output-.patch iotests.py-img_info_log-rename-imgopts-a.patch iotests.py-implement-unsupported_imgopts.patch iotests.py-qemu_img-create-support-IMGOP.patch iotests.py-rewrite-default-luks-support-.patch iotests-specify-some-unsupported_imgopts.patch qcow2-simple-case-support-for-downgradin.patch tests-qemu-iotests-Fix-051-for-binaries-.patch OBS-URL: https://build.opensuse.org/request/show/955876 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=690
289 lines
10 KiB
Diff
289 lines
10 KiB
Diff
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
|
|
Date: Thu, 23 Dec 2021 17:01:41 +0100
|
|
Subject: iotests: bash tests: filter compression type
|
|
|
|
Git-commit: dba5aee4da9ce0a81e5a870c22a19926212dc87e
|
|
|
|
We want iotests pass with both the default zlib compression and with
|
|
IMGOPTS='compression_type=zstd'.
|
|
|
|
Actually the only test that is interested in real compression type in
|
|
test output is 287 (test for qcow2 compression type), so implement
|
|
specific option for it.
|
|
|
|
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
|
|
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
|
|
Message-Id: <20211223160144.1097696-17-vsementsov@virtuozzo.com>
|
|
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
|
Signed-off-by: Li Zhang <lizhang@suse.de>
|
|
---
|
|
tests/qemu-iotests/060.out | 2 +-
|
|
tests/qemu-iotests/061.out | 12 ++++++------
|
|
tests/qemu-iotests/082.out | 14 +++++++-------
|
|
tests/qemu-iotests/198.out | 4 ++--
|
|
tests/qemu-iotests/287 | 8 ++++----
|
|
tests/qemu-iotests/common.filter | 8 ++++++++
|
|
tests/qemu-iotests/common.rc | 14 +++++++++++++-
|
|
7 files changed, 41 insertions(+), 21 deletions(-)
|
|
|
|
diff --git a/tests/qemu-iotests/060.out b/tests/qemu-iotests/060.out
|
|
index b74540bafbe84ff721fc0197d21c..329977d9b9b9fb4ec94615fff0a8 100644
|
|
--- a/tests/qemu-iotests/060.out
|
|
+++ b/tests/qemu-iotests/060.out
|
|
@@ -17,7 +17,7 @@ virtual size: 64 MiB (67108864 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
corrupt: true
|
|
diff --git a/tests/qemu-iotests/061.out b/tests/qemu-iotests/061.out
|
|
index 7ecbd4dea875ea26e0b131ec2922..139fc68177de57e33567094b84d6 100644
|
|
--- a/tests/qemu-iotests/061.out
|
|
+++ b/tests/qemu-iotests/061.out
|
|
@@ -525,7 +525,7 @@ virtual size: 64 MiB (67108864 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
data file: TEST_DIR/t.IMGFMT.data
|
|
@@ -552,7 +552,7 @@ virtual size: 64 MiB (67108864 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
data file: foo
|
|
@@ -567,7 +567,7 @@ virtual size: 64 MiB (67108864 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
data file raw: false
|
|
@@ -583,7 +583,7 @@ virtual size: 64 MiB (67108864 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
data file: TEST_DIR/t.IMGFMT.data
|
|
@@ -597,7 +597,7 @@ virtual size: 64 MiB (67108864 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
data file: TEST_DIR/t.IMGFMT.data
|
|
@@ -612,7 +612,7 @@ virtual size: 64 MiB (67108864 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
data file: TEST_DIR/t.IMGFMT.data
|
|
diff --git a/tests/qemu-iotests/082.out b/tests/qemu-iotests/082.out
|
|
index 077ed0f2c7d933034a50c50c5de6..d0dd333117a571063a035d7d5c31 100644
|
|
--- a/tests/qemu-iotests/082.out
|
|
+++ b/tests/qemu-iotests/082.out
|
|
@@ -17,7 +17,7 @@ virtual size: 128 MiB (134217728 bytes)
|
|
cluster_size: 4096
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: true
|
|
refcount bits: 16
|
|
corrupt: false
|
|
@@ -31,7 +31,7 @@ virtual size: 128 MiB (134217728 bytes)
|
|
cluster_size: 8192
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: true
|
|
refcount bits: 16
|
|
corrupt: false
|
|
@@ -329,7 +329,7 @@ virtual size: 128 MiB (134217728 bytes)
|
|
cluster_size: 4096
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: true
|
|
refcount bits: 16
|
|
corrupt: false
|
|
@@ -342,7 +342,7 @@ virtual size: 128 MiB (134217728 bytes)
|
|
cluster_size: 8192
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: true
|
|
refcount bits: 16
|
|
corrupt: false
|
|
@@ -639,7 +639,7 @@ virtual size: 128 MiB (134217728 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: true
|
|
refcount bits: 16
|
|
corrupt: false
|
|
@@ -652,7 +652,7 @@ virtual size: 130 MiB (136314880 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
corrupt: false
|
|
@@ -665,7 +665,7 @@ virtual size: 132 MiB (138412032 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
lazy refcounts: true
|
|
refcount bits: 16
|
|
corrupt: false
|
|
diff --git a/tests/qemu-iotests/198.out b/tests/qemu-iotests/198.out
|
|
index 3952708444799fede03c45cce0b7..805494916f102694a38729b8a217 100644
|
|
--- a/tests/qemu-iotests/198.out
|
|
+++ b/tests/qemu-iotests/198.out
|
|
@@ -36,7 +36,7 @@ image: json:{ /* filtered */ }
|
|
file format: IMGFMT
|
|
virtual size: 16 MiB (16777216 bytes)
|
|
Format specific information:
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
encrypt:
|
|
ivgen alg: plain64
|
|
hash alg: sha256
|
|
@@ -81,7 +81,7 @@ virtual size: 16 MiB (16777216 bytes)
|
|
backing file: TEST_DIR/t.IMGFMT.base
|
|
backing file format: IMGFMT
|
|
Format specific information:
|
|
- compression type: zlib
|
|
+ compression type: COMPRESSION_TYPE
|
|
encrypt:
|
|
ivgen alg: plain64
|
|
hash alg: sha256
|
|
diff --git a/tests/qemu-iotests/287 b/tests/qemu-iotests/287
|
|
index 5427ad5456aba89d04e573758679..6414640b2121d6511d7dcb11cda1 100755
|
|
--- a/tests/qemu-iotests/287
|
|
+++ b/tests/qemu-iotests/287
|
|
@@ -61,13 +61,13 @@ echo
|
|
echo "=== Testing compression type incompatible bit setting for zlib ==="
|
|
echo
|
|
_make_test_img -o compression_type=zlib 64M
|
|
-_qcow2_dump_header | grep incompatible_features
|
|
+_qcow2_dump_header --no-filter-compression | grep incompatible_features
|
|
|
|
echo
|
|
echo "=== Testing compression type incompatible bit setting for zstd ==="
|
|
echo
|
|
_make_test_img -o compression_type=zstd 64M
|
|
-_qcow2_dump_header | grep incompatible_features
|
|
+_qcow2_dump_header --no-filter-compression | grep incompatible_features
|
|
|
|
echo
|
|
echo "=== Testing zlib with incompatible bit set ==="
|
|
@@ -75,7 +75,7 @@ echo
|
|
_make_test_img -o compression_type=zlib 64M
|
|
$PYTHON qcow2.py "$TEST_IMG" set-feature-bit incompatible 3
|
|
# to make sure the bit was actually set
|
|
-_qcow2_dump_header | grep incompatible_features
|
|
+_qcow2_dump_header --no-filter-compression | grep incompatible_features
|
|
|
|
if $QEMU_IMG info "$TEST_IMG" >/dev/null 2>&1 ; then
|
|
echo "Error: The image opened successfully. The image must not be opened."
|
|
@@ -87,7 +87,7 @@ echo
|
|
_make_test_img -o compression_type=zstd 64M
|
|
$PYTHON qcow2.py "$TEST_IMG" set-header incompatible_features 0
|
|
# to make sure the bit was actually unset
|
|
-_qcow2_dump_header | grep incompatible_features
|
|
+_qcow2_dump_header --no-filter-compression | grep incompatible_features
|
|
|
|
if $QEMU_IMG info "$TEST_IMG" >/dev/null 2>&1 ; then
|
|
echo "Error: The image opened successfully. The image must not be opened."
|
|
diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter
|
|
index 2b2b53946c65d698c71520a163a8..75cc241580d0289c70d7761e9758 100644
|
|
--- a/tests/qemu-iotests/common.filter
|
|
+++ b/tests/qemu-iotests/common.filter
|
|
@@ -247,6 +247,7 @@ _filter_img_info()
|
|
-e "/block_state_zero: \\(on\\|off\\)/d" \
|
|
-e "/log_size: [0-9]\\+/d" \
|
|
-e "s/iters: [0-9]\\+/iters: 1024/" \
|
|
+ -e 's/\(compression type: \)\(zlib\|zstd\)/\1COMPRESSION_TYPE/' \
|
|
-e "s/uuid: [-a-f0-9]\\+/uuid: 00000000-0000-0000-0000-000000000000/" | \
|
|
while IFS='' read -r line; do
|
|
if [[ $format_specific == 1 ]]; then
|
|
@@ -337,5 +338,12 @@ _filter_authz_check_tls()
|
|
$SED -e 's/TLS x509 authz check for .* is denied/TLS x509 authz check for DISTINGUISHED-NAME is denied/'
|
|
}
|
|
|
|
+_filter_qcow2_compression_type_bit()
|
|
+{
|
|
+ $SED -e 's/\(incompatible_features\s\+\)\[3\(, \)\?/\1[/' \
|
|
+ -e 's/\(incompatible_features.*\), 3\]/\1]/' \
|
|
+ -e 's/\(incompatible_features.*\), 3\(,.*\)/\1\2/'
|
|
+}
|
|
+
|
|
# make sure this script returns success
|
|
true
|
|
diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc
|
|
index 5dea310ea08c2bca65a6e21cbb66..9885030b43c953bf073aa84a3df1 100644
|
|
--- a/tests/qemu-iotests/common.rc
|
|
+++ b/tests/qemu-iotests/common.rc
|
|
@@ -699,6 +699,7 @@ _img_info()
|
|
-e "s#$TEST_DIR#TEST_DIR#g" \
|
|
-e "s#$SOCK_DIR/fuse-#TEST_DIR/#g" \
|
|
-e "s#$IMGFMT#IMGFMT#g" \
|
|
+ -e 's/\(compression type: \)\(zlib\|zstd\)/\1COMPRESSION_TYPE/' \
|
|
-e "/^disk size:/ D" \
|
|
-e "/actual-size/ D" | \
|
|
while IFS='' read -r line; do
|
|
@@ -998,12 +999,23 @@ _require_one_device_of()
|
|
|
|
_qcow2_dump_header()
|
|
{
|
|
+ if [[ "$1" == "--no-filter-compression" ]]; then
|
|
+ local filter_compression=0
|
|
+ shift
|
|
+ else
|
|
+ local filter_compression=1
|
|
+ fi
|
|
+
|
|
img="$1"
|
|
if [ -z "$img" ]; then
|
|
img="$TEST_IMG"
|
|
fi
|
|
|
|
- $PYTHON qcow2.py "$img" dump-header
|
|
+ if [[ $filter_compression == 0 ]]; then
|
|
+ $PYTHON qcow2.py "$img" dump-header
|
|
+ else
|
|
+ $PYTHON qcow2.py "$img" dump-header | _filter_qcow2_compression_type_bit
|
|
+ fi
|
|
}
|
|
|
|
# make sure this script returns success
|