iotests/065: Check for zstd support

Some test cases run in iotest 065 want to run with zstd compression just
for added coverage.  Run them with zlib if there is no zstd support
compiled in.

Reported-by: Thomas Huth <thuth@redhat.com>
Fixes: 12a936171d ("iotest 065: explicit compression type")
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220323105522.53660-3-hreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru>
This commit is contained in:
Hanna Reitz 2022-03-23 11:55:21 +01:00
parent 9ba271f0c7
commit 7253a57007

View file

@ -24,7 +24,7 @@ import os
import re import re
import json import json
import iotests import iotests
from iotests import qemu_img, qemu_img_info from iotests import qemu_img, qemu_img_info, supports_qcow2_zstd_compression
import unittest import unittest
test_img = os.path.join(iotests.test_dir, 'test.img') test_img = os.path.join(iotests.test_dir, 'test.img')
@ -95,11 +95,17 @@ class TestQCow2(TestQemuImgInfo):
class TestQCow3NotLazy(TestQemuImgInfo): class TestQCow3NotLazy(TestQemuImgInfo):
'''Testing a qcow2 version 3 image with lazy refcounts disabled''' '''Testing a qcow2 version 3 image with lazy refcounts disabled'''
img_options = 'compat=1.1,lazy_refcounts=off,compression_type=zstd' if supports_qcow2_zstd_compression():
compression_type = 'zstd'
else:
compression_type = 'zlib'
img_options = 'compat=1.1,lazy_refcounts=off'
img_options += f',compression_type={compression_type}'
json_compare = { 'compat': '1.1', 'lazy-refcounts': False, json_compare = { 'compat': '1.1', 'lazy-refcounts': False,
'refcount-bits': 16, 'corrupt': False, 'refcount-bits': 16, 'corrupt': False,
'compression-type': 'zstd', 'extended-l2': False } 'compression-type': compression_type, 'extended-l2': False }
human_compare = [ 'compat: 1.1', 'compression type: zstd', human_compare = [ 'compat: 1.1', f'compression type: {compression_type}',
'lazy refcounts: false', 'refcount bits: 16', 'lazy refcounts: false', 'refcount bits: 16',
'corrupt: false', 'extended l2: false' ] 'corrupt: false', 'extended l2: false' ]
@ -126,11 +132,17 @@ class TestQCow3NotLazyQMP(TestQMP):
class TestQCow3LazyQMP(TestQMP): class TestQCow3LazyQMP(TestQMP):
'''Testing a qcow2 version 3 image with lazy refcounts enabled, opening '''Testing a qcow2 version 3 image with lazy refcounts enabled, opening
with lazy refcounts disabled''' with lazy refcounts disabled'''
img_options = 'compat=1.1,lazy_refcounts=on,compression_type=zstd' if supports_qcow2_zstd_compression():
compression_type = 'zstd'
else:
compression_type = 'zlib'
img_options = 'compat=1.1,lazy_refcounts=on'
img_options += f',compression_type={compression_type}'
qemu_options = 'lazy-refcounts=off' qemu_options = 'lazy-refcounts=off'
compare = { 'compat': '1.1', 'lazy-refcounts': True, compare = { 'compat': '1.1', 'lazy-refcounts': True,
'refcount-bits': 16, 'corrupt': False, 'refcount-bits': 16, 'corrupt': False,
'compression-type': 'zstd', 'extended-l2': False } 'compression-type': compression_type, 'extended-l2': False }
TestImageInfoSpecific = None TestImageInfoSpecific = None
TestQemuImgInfo = None TestQemuImgInfo = None