Message ID | 1441387117-27072-13-git-send-email-kwolf@redhat.com |
---|---|
State | New |
Headers | show |
On 04.09.2015 19:18, Kevin Wolf wrote: > Signed-off-by: Kevin Wolf <kwolf@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 <mreitz@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 >
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" \ + -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
Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- tests/qemu-iotests/039 | 27 +++++++++++++++++++++++++++ tests/qemu-iotests/039.out | 18 ++++++++++++++++++ 2 files changed, 45 insertions(+)