From: Paolo Bonzini <pbonzini@redhat.com>
To: Max Reitz <mreitz@redhat.com>, qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] iotests: Make 150 use qemu-img map instead of du
Date: Fri, 8 Apr 2016 12:30:07 +0200 [thread overview]
Message-ID: <5707882F.9020501@redhat.com> (raw)
In-Reply-To: <1459268657-14181-1-git-send-email-mreitz@redhat.com>
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 <mreitz@redhat.com>
> ---
> 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 <pbonzini@redhat.com>
next prev parent reply other threads:[~2016-04-08 10:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-29 16:24 [Qemu-devel] [PATCH] iotests: Make 150 use qemu-img map instead of du Max Reitz
2016-04-08 10:30 ` Paolo Bonzini [this message]
2016-04-08 11:07 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5707882F.9020501@redhat.com \
--to=pbonzini@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).