aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2010-10-15 07:53:00 -0700
committerKevin Wolf <kwolf@redhat.com>2012-02-22 16:17:03 +0100
commit2547caa16964e3082efdd25e50120c0a35ef5252 (patch)
tree23167b58468c1b28fd0a446a81c56214c98b8218
parent72bb202583ad71f3e9e0c03a0c9a3baa0db16494 (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-xtests/qemu-iotests/01959
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"