iotests: Test sparseness for qemu-img convert -n

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200721135520.72355-3-kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Kevin Wolf 2020-07-21 15:55:20 +02:00
parent 61b3043965
commit 4a01e27ddc
2 changed files with 47 additions and 0 deletions

View File

@ -281,6 +281,36 @@ $QEMU_IMG convert -O $IMGFMT -n "$TEST_IMG" "$TEST_IMG".orig
$QEMU_IMG compare "$TEST_IMG" "$TEST_IMG".orig
echo
echo '=== -n to an empty image ==='
echo
TEST_IMG="$TEST_IMG".orig _make_test_img 64M
# Convert with -n, which should not result in a fully allocated image, not even
# with compat=0.10 (because the target doesn't have a backing file)
for compat in "1.1" "0.10"; do
IMGOPTS="compat=$compat" _make_test_img 64M
$QEMU_IMG convert -O $IMGFMT -n "$TEST_IMG".orig "$TEST_IMG"
$QEMU_IMG map --output=json "$TEST_IMG"
done
echo
echo '=== -n to an empty image with a backing file ==='
echo
TEST_IMG="$TEST_IMG".orig _make_test_img 64M
TEST_IMG="$TEST_IMG".base _make_test_img 64M
# Convert with -n, which should still not result in a fully allocated image for
# compat=1.1 (because it can use zero clusters), but it should be fully
# allocated with compat=0.10
for compat in "1.1" "0.10"; do
IMGOPTS="compat=$compat" _make_test_img -b "$TEST_IMG".base -F $IMGFMT 64M
$QEMU_IMG convert -O $IMGFMT -n "$TEST_IMG".orig "$TEST_IMG"
$QEMU_IMG map --output=json "$TEST_IMG"
done
echo
echo '=== -n -B to an image without a backing file ==='
echo

View File

@ -229,6 +229,23 @@ wrote 65536/65536 bytes at offset 0
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
Images are identical.
=== -n to an empty image ===
Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=IMGFMT size=67108864
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
[{ "start": 0, "length": 67108864, "depth": 0, "zero": true, "data": false}]
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
[{ "start": 0, "length": 67108864, "depth": 0, "zero": true, "data": false}]
=== -n to an empty image with a backing file ===
Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=IMGFMT size=67108864
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
[{ "start": 0, "length": 67108864, "depth": 0, "zero": true, "data": false}]
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
[{ "start": 0, "length": 67108864, "depth": 0, "zero": false, "data": true, "offset": 327680}]
=== -n -B to an image without a backing file ===
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864