block: qcow: add integration tests for qcow2 compression

Add tests:
- zlib: test_virtio_block_qcow2_zlib()
- zstd: test_virtio_block_qcow2_zstd()
Both these tests use zlib- and zstd-compressed images as OS image.

Modify test_virtio_block_qcow2_backing_file() test: it is practical
to test qcow2 file-backing with compression, so use zlib-compressed
image as a backing file.

Signed-off-by: Eugene Korenevsky <ekorenevsky@aliyun.com>
This commit is contained in:
Eugene Korenevsky 2025-11-18 01:43:17 +03:00 committed by Rob Bradford
parent aa67250049
commit 94ed7c1745
3 changed files with 58 additions and 2 deletions

View file

@ -46,11 +46,29 @@ update_workloads() {
popd || exit
fi
FOCAL_OS_QCOW2_ZLIB_FILE_IMAGE_NAME="focal-server-cloudimg-arm64-custom-20210929-0-zlib.qcow2"
FOCAL_OS_QCOW2_ZLIB_FILE_IMAGE="$WORKLOADS_DIR/$FOCAL_OS_QCOW2_ZLIB_FILE_IMAGE_NAME"
if [ ! -f "$FOCAL_OS_QCOW2_ZLIB_FILE_IMAGE" ]; then
pushd "$WORKLOADS_DIR" || exit
time qemu-img convert -c -f raw -O qcow2 -o compression_type=zlib \
"$FOCAL_OS_RAW_IMAGE" $FOCAL_OS_QCOW2_ZLIB_FILE_IMAGE_NAME
popd || exit
fi
FOCAL_OS_QCOW2_ZSTD_FILE_IMAGE_NAME="focal-server-cloudimg-arm64-custom-20210929-0-zstd.qcow2"
FOCAL_OS_QCOW2_ZSTD_FILE_IMAGE="$WORKLOADS_DIR/$FOCAL_OS_QCOW2_ZSTD_FILE_IMAGE_NAME"
if [ ! -f "$FOCAL_OS_QCOW2_ZSTD_FILE_IMAGE" ]; then
pushd "$WORKLOADS_DIR" || exit
time qemu-img convert -c -f raw -O qcow2 -o compression_type=zstd \
"$FOCAL_OS_RAW_IMAGE" $FOCAL_OS_QCOW2_ZSTD_FILE_IMAGE_NAME
popd || exit
fi
FOCAL_OS_QCOW2_IMAGE_BACKING_FILE_NAME="focal-server-cloudimg-arm64-custom-20210929-0-backing.qcow2"
FOCAL_OS_QCOW2_BACKING_FILE_IMAGE="$WORKLOADS_DIR/$FOCAL_OS_QCOW2_IMAGE_BACKING_FILE_NAME"
if [ ! -f "$FOCAL_OS_QCOW2_BACKING_FILE_IMAGE" ]; then
pushd "$WORKLOADS_DIR" || exit
time qemu-img create -f qcow2 -b "$FOCAL_OS_QCOW2_UNCOMPRESSED_IMAGE" -F qcow2 $FOCAL_OS_QCOW2_IMAGE_BACKING_FILE_NAME
time qemu-img create -f qcow2 -b "$FOCAL_OS_QCOW2_ZSTD_FILE_IMAGE" -F qcow2 $FOCAL_OS_QCOW2_IMAGE_BACKING_FILE_NAME
popd || exit
fi

View file

@ -45,11 +45,31 @@ if [ ! -f "$FOCAL_OS_RAW_IMAGE" ]; then
popd || exit
fi
FOCAL_OS_QCOW_ZLIB_FILE_IMAGE_NAME="focal-server-cloudimg-amd64-custom-20210609-0-zlib.qcow2"
FOCAL_OS_QCOW_ZLIB_FILE_IMAGE="$WORKLOADS_DIR/$FOCAL_OS_QCOW_ZLIB_FILE_IMAGE_NAME"
if [ ! -f "$FOCAL_OS_QCOW_ZLIB_FILE_IMAGE" ]; then
pushd "$WORKLOADS_DIR" || exit
time qemu-img convert -c -f raw -O qcow2 -o compression_type=zlib \
"$FOCAL_OS_RAW_IMAGE" $FOCAL_OS_QCOW_ZLIB_FILE_IMAGE_NAME
popd || exit
fi
FOCAL_OS_QCOW_ZSTD_FILE_IMAGE_NAME="focal-server-cloudimg-amd64-custom-20210609-0-zstd.qcow2"
FOCAL_OS_QCOW_ZSTD_FILE_IMAGE="$WORKLOADS_DIR/$FOCAL_OS_QCOW_ZSTD_FILE_IMAGE_NAME"
if [ ! -f "$FOCAL_OS_QCOW_ZSTD_FILE_IMAGE" ]; then
pushd "$WORKLOADS_DIR" || exit
time qemu-img convert -c -f raw -O qcow2 -o compression_type=zstd \
"$FOCAL_OS_RAW_IMAGE" $FOCAL_OS_QCOW_ZSTD_FILE_IMAGE_NAME
popd || exit
fi
FOCAL_OS_QCOW_BACKING_FILE_IMAGE_NAME="focal-server-cloudimg-amd64-custom-20210609-0-backing.qcow2"
FOCAL_OS_QCOW_BACKING_FILE_IMAGE="$WORKLOADS_DIR/$FOCAL_OS_QCOW_BACKING_FILE_IMAGE_NAME"
if [ ! -f "$FOCAL_OS_QCOW_BACKING_FILE_IMAGE" ]; then
pushd "$WORKLOADS_DIR" || exit
time qemu-img create -f qcow2 -b "$FOCAL_OS_IMAGE" -F qcow2 $FOCAL_OS_QCOW_BACKING_FILE_IMAGE_NAME
time qemu-img create -f qcow2 \
-b "$FOCAL_OS_QCOW_ZSTD_FILE_IMAGE" \
-F qcow2 $FOCAL_OS_QCOW_BACKING_FILE_IMAGE_NAME
popd || exit
fi