diff options
author | Kevin Wolf <kwolf@redhat.com> | 2010-10-15 07:53:00 -0700 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2012-02-22 16:17:03 +0100 |
commit | 2547caa16964e3082efdd25e50120c0a35ef5252 (patch) | |
tree | 23167b58468c1b28fd0a446a81c56214c98b8218 | |
parent | 72bb202583ad71f3e9e0c03a0c9a3baa0db16494 (diff) |
qemu-iotests: improve test for qemu-img convert with backing file
Additionally to testing the qemu-img convert -B option, also test
-o backing_file.
Also, the old test acidentlly used a pattern of zeros for most of the writes,
so that the allocation test didn't really work out. This is fixed by using an
explicit pattern.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
-rwxr-xr-x | tests/qemu-iotests/019 | 59 |
1 files changed, 36 insertions, 23 deletions
diff --git a/tests/qemu-iotests/019 b/tests/qemu-iotests/019 index 711255eaae..896b8d9930 100755 --- a/tests/qemu-iotests/019 +++ b/tests/qemu-iotests/019 @@ -57,10 +57,10 @@ echo for offset in $TEST_OFFSETS; do # Some clusters with alternating backing file/image file reads - io writev $(( offset )) 512 1024 64 + io_pattern writev $(( offset )) 512 1024 64 42 # Complete backing clusters - io writev $(( offset + 1024 * 1024)) $CLUSTER_SIZE $CLUSTER_SIZE 1 + io_pattern writev $(( offset + 1024 * 1024)) $CLUSTER_SIZE $CLUSTER_SIZE 1 42 done _check_test_img @@ -75,39 +75,52 @@ echo for offset in $TEST_OFFSETS; do # Some clusters with alternating backing file/image file reads - io writev $(( offset + 512 )) 512 1024 64 + io_pattern writev $(( offset + 512 )) 512 1024 64 43 # Complete test image clusters - io writev $(( offset + 1024 * 1024 + $CLUSTER_SIZE)) $CLUSTER_SIZE $CLUSTER_SIZE 1 + io_pattern writev $(( offset + 1024 * 1024 + $CLUSTER_SIZE)) $CLUSTER_SIZE $CLUSTER_SIZE 1 43 done _check_test_img mv $TEST_IMG $TEST_IMG.orig -$QEMU_IMG convert -O $IMGFMT -B $TEST_IMG.base $TEST_IMG.orig $TEST_IMG -echo "Checking if backing clusters are allocated when they shouldn't" -echo -for offset in $TEST_OFFSETS; do - # Complete backing clusters - is_allocated $(( offset + 1024 * 1024)) $CLUSTER_SIZE $CLUSTER_SIZE 1 -done -echo "Reading" -echo -for offset in $TEST_OFFSETS; do - # Some clusters with alternating backing file/image file reads - io readv $(( offset )) 512 1024 64 - io readv $(( offset + 512 )) 512 1024 64 +# Test the conversion twice: One test with the old-style -B option and another +# one with -o backing_file - # Complete test image clusters - io readv $(( offset + 1024 * 1024)) $CLUSTER_SIZE $CLUSTER_SIZE 1 - io readv $(( offset + 1024 * 1024 + $CLUSTER_SIZE)) $CLUSTER_SIZE $CLUSTER_SIZE 1 +for backing_option in "-B $TEST_IMG.base" "-o backing_file=$TEST_IMG.base"; do + + echo + echo Testing conversion with $backing_option + echo + $QEMU_IMG convert -O $IMGFMT $backing_option $TEST_IMG.orig $TEST_IMG + + echo "Checking if backing clusters are allocated when they shouldn't" + echo + for offset in $TEST_OFFSETS; do + # Complete backing clusters + is_allocated $(( offset + 1024 * 1024)) $CLUSTER_SIZE $CLUSTER_SIZE 1 + done + + echo "Reading" + echo + + for offset in $TEST_OFFSETS; do + # Some clusters with alternating backing file/image file reads + io_pattern readv $(( offset )) 512 1024 64 42 + io_pattern readv $(( offset + 512 )) 512 1024 64 43 + + # Complete test image clusters + io_pattern readv $(( offset + 1024 * 1024)) $CLUSTER_SIZE $CLUSTER_SIZE 1 42 + io_pattern readv $(( offset + 1024 * 1024 + $CLUSTER_SIZE)) $CLUSTER_SIZE $CLUSTER_SIZE 1 43 + + # Empty sectors + io_zero readv $(( offset + 1024 * 1024 + $CLUSTER_SIZE * 4 )) $CLUSTER_SIZE $CLUSTER_SIZE 1 + done + _check_test_img - # Empty sectors - io_zero readv $(( offset + 1024 * 1024 + $CLUSTER_SIZE * 4 )) $CLUSTER_SIZE $CLUSTER_SIZE 1 done -_check_test_img # success, all done echo "*** done" |