On 04.09.2015 19:18, Kevin Wolf wrote:
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> ---
>  tests/qemu-iotests/039     | 27 +++++++++++++++++++++++++++
>  tests/qemu-iotests/039.out | 18 ++++++++++++++++++
>  2 files changed, 45 insertions(+)
> 
> diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039
> index 617f397..9e9b379 100755
> --- a/tests/qemu-iotests/039
> +++ b/tests/qemu-iotests/039
> @@ -147,6 +147,33 @@ $PYTHON qcow2.py "$TEST_IMG".base dump-header | grep 
> incompatible_features
>  _check_test_img
>  TEST_IMG="$TEST_IMG".base _check_test_img
>  
> +echo
> +echo "== Changing lazy_refcounts setting at runtime =="
> +
> +IMGOPTS="compat=1.1,lazy_refcounts=off"
> +_make_test_img $size
> +
> +$QEMU_IO -c "reopen -o lazy-refcounts=on" \
> +         -c "write -P 0x5a 0 512" \
> +         -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 \
> +    | _filter_qemu_io
> +
> +# The dirty bit must be set
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +_check_test_img
> +
> +IMGOPTS="compat=1.1,lazy_refcounts=on"
> +_make_test_img $size
> +
> +$QEMU_IO -c "reopen -o lazy-refcounts=off" \
> +         -c "write -P 0x5a 0 512" \

Maybe it would be nicer to test this the other way around, write first
and then disable lazy refcounts in order to test whether the refcounts
are actually flushed during the reopen.

Either way:

Reviewed-by: Max Reitz <mre...@redhat.com>

> +         -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 \
> +    | _filter_qemu_io
> +
> +# The dirty bit must not be set
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +_check_test_img
> +
>  
>  # success, all done
>  echo "*** done"
> diff --git a/tests/qemu-iotests/039.out b/tests/qemu-iotests/039.out
> index b055670..39859b2 100644
> --- a/tests/qemu-iotests/039.out
> +++ b/tests/qemu-iotests/039.out
> @@ -74,4 +74,22 @@ incompatible_features     0x0
>  incompatible_features     0x0
>  No errors were found on the image.
>  No errors were found on the image.
> +
> +== Changing lazy_refcounts setting at runtime ==
> +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
> +wrote 512/512 bytes at offset 0
> +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +./common.config: Killed                  ( exec "$QEMU_IO_PROG" 
> $QEMU_IO_OPTIONS "$@" )
> +incompatible_features     0x1
> +ERROR cluster 5 refcount=0 reference=1
> +ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
> +
> +2 errors were found on the image.
> +Data may be corrupted, or further writes to the image may corrupt it.
> +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
> +wrote 512/512 bytes at offset 0
> +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +./common.config: Killed                  ( exec "$QEMU_IO_PROG" 
> $QEMU_IO_OPTIONS "$@" )
> +incompatible_features     0x0
> +No errors were found on the image.
>  *** done
> 


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to