qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 7/7] qemu-iotests: add 039 qcow2 lazy refcounts te


From: Kevin Wolf
Subject: Re: [Qemu-devel] [RFC 7/7] qemu-iotests: add 039 qcow2 lazy refcounts test
Date: Mon, 25 Jun 2012 17:10:09 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1

Am 22.06.2012 17:08, schrieb Stefan Hajnoczi:
> This tests establishes the basic post-conditions of the qcow2 lazy
> refcounts features:
> 
>   1. If the image was closed normally, it is marked clean.
> 
>   2. If an allocating write was performed and the image was not close
>      normally, then it is marked dirty.
> 
>      a. Written data can be read back successfully.
>      b. The image file can be repaired and will be marked clean again.
> 
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
>  tests/qemu-iotests/039     |   99 
> ++++++++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/039.out |   34 +++++++++++++++
>  tests/qemu-iotests/group   |    1 +
>  3 files changed, 134 insertions(+)
>  create mode 100755 tests/qemu-iotests/039
>  create mode 100644 tests/qemu-iotests/039.out
> 
> diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039
> new file mode 100755
> index 0000000..f4f9347
> --- /dev/null
> +++ b/tests/qemu-iotests/039
> @@ -0,0 +1,99 @@
> +#!/bin/bash
> +#
> +# Test qcow2 lazy refcounts
> +#
> +# Copyright (C) 2012 Red Hat, Inc.
> +# Copyright IBM, Corp. 2010
> +#
> +# Based on test 038.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 2 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +#
> +
> +# creator
> address@hidden
> +
> +seq=`basename $0`
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1     # failure is the default!
> +
> +_cleanup()
> +{
> +     _cleanup_test_img
> +}
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +# get standard environment, filters and checks
> +. ./common.rc
> +. ./common.filter
> +
> +_supported_fmt qcow2
> +_supported_proto generic
> +_supported_os Linux
> +
> +size=128M
> +
> +echo
> +echo "== Checking that image is clean on shutdown =="
> +
> +IMGOPTS="compat=1.1,lazy_refcounts=on"
> +_make_test_img $size
> +
> +$QEMU_IO -c "write -P 0x5a 0 512" $TEST_IMG | _filter_qemu_io
> +
> +# The dirty bit must not be set
> +./qcow2.py $TEST_IMG dump-header | grep incompatible_features
> +_check_test_img
> +
> +echo
> +echo "== Creating a dirty image file =="
> +
> +IMGOPTS="compat=1.1,lazy_refcounts=on"
> +_make_test_img $size
> +
> +old_ulimit=$(ulimit -c)
> +ulimit -c 0 # do not produce a core dump on abort(3)
> +$QEMU_IO -c "write -P 0x5a 0 512" -c "abort" $TEST_IMG | _filter_qemu_io
> +ulimit -c "$old_ulimit"
> +
> +# The dirty bit must be set
> +./qcow2.py $TEST_IMG dump-header | grep incompatible_features
> +_check_test_img
> +
> +echo
> +echo "== Read-only access must still work =="
> +
> +$QEMU_IO -r -c "read -P 0x5a 0 512" $TEST_IMG | _filter_qemu_io

I would add a check here that the dirty bit is still set.

Maybe also add a test that the dirty flag is never set with
lazy_refcounts=off.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]