From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42885) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aoTgC-0002L0-5B for qemu-devel@nongnu.org; Fri, 08 Apr 2016 06:30:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aoTg7-0008DA-1L for qemu-devel@nongnu.org; Fri, 08 Apr 2016 06:30:20 -0400 Sender: Paolo Bonzini References: <1459268657-14181-1-git-send-email-mreitz@redhat.com> From: Paolo Bonzini Message-ID: <5707882F.9020501@redhat.com> Date: Fri, 8 Apr 2016 12:30:07 +0200 MIME-Version: 1.0 In-Reply-To: <1459268657-14181-1-git-send-email-mreitz@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] iotests: Make 150 use qemu-img map instead of du List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Reitz , qemu-block@nongnu.org Cc: Kevin Wolf , qemu-devel@nongnu.org On 29/03/2016 18:24, Max Reitz wrote: > The actual on-disk size of a file does not only depend on factors qemu > can control. Thus, we should not depend on this to determine whether a > file has indeed been fully allocated. Instead, use qemu-img map and hope > that if an area is referenced, it is indeed allocated, too. > > Also, limit the supported image formats to raw and qcow2 because the > actual qemu-img map output may depend on the image format. > > Signed-off-by: Max Reitz > --- > tests/qemu-iotests/150 | 41 +++++------------------------------------ > tests/qemu-iotests/150.out | 13 +++++-------- > 2 files changed, 10 insertions(+), 44 deletions(-) > > diff --git a/tests/qemu-iotests/150 b/tests/qemu-iotests/150 > index 97d2a35..665373d 100755 > --- a/tests/qemu-iotests/150 > +++ b/tests/qemu-iotests/150 > @@ -38,65 +38,34 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 > . ./common.rc > . ./common.filter > > -_supported_fmt generic > +_supported_fmt raw qcow2 > _supported_proto file > _supported_os Linux > > > -on_disk_size() > -{ > - du "$@" | sed -e 's/\t\+.*//' > -} > - > - > img_size=1048576 > > > echo > -echo '=== Comparing empty image against sparse conversion ===' > +echo '=== Mapping sparse conversion ===' > echo > > -_make_test_img $img_size > - > -empty_size=$(on_disk_size "$TEST_IMG") > - > - > $QEMU_IMG_PROG convert -O "$IMGFMT" -S 512 \ > "json:{ 'driver': 'null-co', 'size': $img_size, 'read-zeroes': true }" \ > "$TEST_IMG" > > -sparse_convert_size=$(on_disk_size "$TEST_IMG") > - > - > -if [ "$empty_size" -eq "$sparse_convert_size" ]; then > - echo 'Equal image size' > -else > - echo 'Different image size' > -fi > +$QEMU_IMG map "$TEST_IMG" | _filter_qemu_img_map > > > echo > -echo '=== Comparing full image against non-sparse conversion ===' > +echo '=== Mapping non-sparse conversion ===' > echo > > -_make_test_img $img_size > -$QEMU_IO -c "write 0 $img_size" "$TEST_IMG" | _filter_qemu_io > - > -full_size=$(on_disk_size "$TEST_IMG") > - > - > $QEMU_IMG convert -O "$IMGFMT" -S 0 \ > "json:{ 'driver': 'null-co', 'size': $img_size, 'read-zeroes': true }" \ > "$TEST_IMG" > > -non_sparse_convert_size=$(on_disk_size "$TEST_IMG") > - > - > -if [ "$full_size" -eq "$non_sparse_convert_size" ]; then > - echo 'Equal image size' > -else > - echo 'Different image size' > -fi > +$QEMU_IMG map "$TEST_IMG" | _filter_qemu_img_map > > > # success, all done > diff --git a/tests/qemu-iotests/150.out b/tests/qemu-iotests/150.out > index 2d29da1..2a54e8d 100644 > --- a/tests/qemu-iotests/150.out > +++ b/tests/qemu-iotests/150.out > @@ -1,14 +1,11 @@ > QA output created by 150 > > -=== Comparing empty image against sparse conversion === > +=== Mapping sparse conversion === > > -Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 > -Equal image size > +Offset Length File > > -=== Comparing full image against non-sparse conversion === > +=== Mapping non-sparse conversion === > > -Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 > -wrote 1048576/1048576 bytes at offset 0 > -1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -Equal image size > +Offset Length File > +0 0x100000 TEST_DIR/t.IMGFMT > *** done > Tested-by: Paolo Bonzini