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:
parent
aa67250049
commit
94ed7c1745
3 changed files with 58 additions and 2 deletions
|
|
@ -46,11 +46,29 @@ update_workloads() {
|
||||||
popd || exit
|
popd || exit
|
||||||
fi
|
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_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"
|
FOCAL_OS_QCOW2_BACKING_FILE_IMAGE="$WORKLOADS_DIR/$FOCAL_OS_QCOW2_IMAGE_BACKING_FILE_NAME"
|
||||||
if [ ! -f "$FOCAL_OS_QCOW2_BACKING_FILE_IMAGE" ]; then
|
if [ ! -f "$FOCAL_OS_QCOW2_BACKING_FILE_IMAGE" ]; then
|
||||||
pushd "$WORKLOADS_DIR" || exit
|
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
|
popd || exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,11 +45,31 @@ if [ ! -f "$FOCAL_OS_RAW_IMAGE" ]; then
|
||||||
popd || exit
|
popd || exit
|
||||||
fi
|
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_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"
|
FOCAL_OS_QCOW_BACKING_FILE_IMAGE="$WORKLOADS_DIR/$FOCAL_OS_QCOW_BACKING_FILE_IMAGE_NAME"
|
||||||
if [ ! -f "$FOCAL_OS_QCOW_BACKING_FILE_IMAGE" ]; then
|
if [ ! -f "$FOCAL_OS_QCOW_BACKING_FILE_IMAGE" ]; then
|
||||||
pushd "$WORKLOADS_DIR" || exit
|
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
|
popd || exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,10 @@ mod x86_64 {
|
||||||
pub const JAMMY_VFIO_IMAGE_NAME: &str =
|
pub const JAMMY_VFIO_IMAGE_NAME: &str =
|
||||||
"jammy-server-cloudimg-amd64-custom-vfio-20241012-0.raw";
|
"jammy-server-cloudimg-amd64-custom-vfio-20241012-0.raw";
|
||||||
pub const FOCAL_IMAGE_NAME_QCOW2: &str = "focal-server-cloudimg-amd64-custom-20210609-0.qcow2";
|
pub const FOCAL_IMAGE_NAME_QCOW2: &str = "focal-server-cloudimg-amd64-custom-20210609-0.qcow2";
|
||||||
|
pub const FOCAL_IMAGE_NAME_QCOW2_ZLIB: &str =
|
||||||
|
"focal-server-cloudimg-amd64-custom-20210609-0-zlib.qcow2";
|
||||||
|
pub const FOCAL_IMAGE_NAME_QCOW2_ZSTD: &str =
|
||||||
|
"focal-server-cloudimg-amd64-custom-20210609-0-zstd.qcow2";
|
||||||
pub const FOCAL_IMAGE_NAME_QCOW2_BACKING_FILE: &str =
|
pub const FOCAL_IMAGE_NAME_QCOW2_BACKING_FILE: &str =
|
||||||
"focal-server-cloudimg-amd64-custom-20210609-0-backing.qcow2";
|
"focal-server-cloudimg-amd64-custom-20210609-0-backing.qcow2";
|
||||||
pub const FOCAL_IMAGE_NAME_VHD: &str = "focal-server-cloudimg-amd64-custom-20210609-0.vhd";
|
pub const FOCAL_IMAGE_NAME_VHD: &str = "focal-server-cloudimg-amd64-custom-20210609-0.vhd";
|
||||||
|
|
@ -59,6 +63,10 @@ mod aarch64 {
|
||||||
pub const FOCAL_IMAGE_UPDATE_KERNEL_NAME: &str =
|
pub const FOCAL_IMAGE_UPDATE_KERNEL_NAME: &str =
|
||||||
"focal-server-cloudimg-arm64-custom-20210929-0-update-kernel.raw";
|
"focal-server-cloudimg-arm64-custom-20210929-0-update-kernel.raw";
|
||||||
pub const FOCAL_IMAGE_NAME_QCOW2: &str = "focal-server-cloudimg-arm64-custom-20210929-0.qcow2";
|
pub const FOCAL_IMAGE_NAME_QCOW2: &str = "focal-server-cloudimg-arm64-custom-20210929-0.qcow2";
|
||||||
|
pub const FOCAL_IMAGE_NAME_QCOW2_ZLIB: &str =
|
||||||
|
"focal-server-cloudimg-arm64-custom-20210929-0-zlib.qcow2";
|
||||||
|
pub const FOCAL_IMAGE_NAME_QCOW2_ZSTD: &str =
|
||||||
|
"focal-server-cloudimg-arm64-custom-20210929-0-zstd.qcow2";
|
||||||
pub const FOCAL_IMAGE_NAME_QCOW2_BACKING_FILE: &str =
|
pub const FOCAL_IMAGE_NAME_QCOW2_BACKING_FILE: &str =
|
||||||
"focal-server-cloudimg-arm64-custom-20210929-0-backing.qcow2";
|
"focal-server-cloudimg-arm64-custom-20210929-0-backing.qcow2";
|
||||||
pub const FOCAL_IMAGE_NAME_VHD: &str = "focal-server-cloudimg-arm64-custom-20210929-0.vhd";
|
pub const FOCAL_IMAGE_NAME_VHD: &str = "focal-server-cloudimg-arm64-custom-20210929-0.vhd";
|
||||||
|
|
@ -3488,6 +3496,16 @@ mod common_parallel {
|
||||||
_test_virtio_block(FOCAL_IMAGE_NAME_QCOW2, false, false);
|
_test_virtio_block(FOCAL_IMAGE_NAME_QCOW2, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_virtio_block_qcow2_zlib() {
|
||||||
|
_test_virtio_block(FOCAL_IMAGE_NAME_QCOW2_ZLIB, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_virtio_block_qcow2_zstd() {
|
||||||
|
_test_virtio_block(FOCAL_IMAGE_NAME_QCOW2_ZSTD, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_virtio_block_qcow2_backing_file() {
|
fn test_virtio_block_qcow2_backing_file() {
|
||||||
_test_virtio_block(FOCAL_IMAGE_NAME_QCOW2_BACKING_FILE, false, false);
|
_test_virtio_block(FOCAL_IMAGE_NAME_QCOW2_BACKING_FILE, false, false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue