Patchwork [qemu-iotests] Improve test for qemu-img convert with backing file

login
register
mail settings
Submitter Kevin Wolf
Date Oct. 14, 2010, 1:01 p.m.
Message ID <1287061278-17908-1-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/67820/
State New
Headers show

Comments

Kevin Wolf - Oct. 14, 2010, 1:01 p.m.
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>
---
 019 |   59 ++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 36 insertions(+), 23 deletions(-)
Christoph Hellwig - Oct. 15, 2010, 2:57 p.m.
On Thu, Oct 14, 2010 at 03:01:18PM +0200, Kevin Wolf wrote:
> 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>
> ---
>  019 |   59 ++++++++++++++++++++++++++++++++++++-----------------------
>  1 files changed, 36 insertions(+), 23 deletions(-)

It's missing the update to the golden output an now fails.

Btw, did you change the qemu-img check to tell people that leaked
clusters are harmless?  That message causes 026 to fail for me with a
recent qemu-img.
Kevin Wolf - Oct. 15, 2010, 3:56 p.m.
Am 15.10.2010 16:57, schrieb Christoph Hellwig:
> On Thu, Oct 14, 2010 at 03:01:18PM +0200, Kevin Wolf wrote:
>> 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>
>> ---
>>  019 |   59 ++++++++++++++++++++++++++++++++++++-----------------------
>>  1 files changed, 36 insertions(+), 23 deletions(-)
> 
> It's missing the update to the golden output an now fails.

Oops... Will send a new version.

> Btw, did you change the qemu-img check to tell people that leaked
> clusters are harmless?  That message causes 026 to fail for me with a
> recent qemu-img.

Didn't I send a patch for qemu-iotests, too? I do have local commit
updating this at least.

Kevin
Christoph Hellwig - Oct. 15, 2010, 4:06 p.m.
On Fri, Oct 15, 2010 at 05:56:03PM +0200, Kevin Wolf wrote:
> Didn't I send a patch for qemu-iotests, too? I do have local commit
> updating this at least.

If you have it around please just resend it.

Patch

diff --git a/019 b/019
index 711255e..896b8d9 100755
--- a/019
+++ b/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"