[Top][All Lists]
[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
- [Qemu-devel] [RFC 0/7] qcow2: implement lazy refcounts optimization, Stefan Hajnoczi, 2012/06/22
- [Qemu-devel] [RFC 5/7] qcow2: implement lazy refcounts, Stefan Hajnoczi, 2012/06/22
- [Qemu-devel] [RFC 2/7] qcow2: introduce dirty bit, Stefan Hajnoczi, 2012/06/22
- [Qemu-devel] [RFC 1/7] docs: add dirty bit to qcow2 specification, Stefan Hajnoczi, 2012/06/22
- [Qemu-devel] [RFC 4/7] qemu-iotests: ignore qemu-img create lazy_refcounts output, Stefan Hajnoczi, 2012/06/22
- [Qemu-devel] [RFC 7/7] qemu-iotests: add 039 qcow2 lazy refcounts test, Stefan Hajnoczi, 2012/06/22
- Re: [Qemu-devel] [RFC 7/7] qemu-iotests: add 039 qcow2 lazy refcounts test,
Kevin Wolf <=
- [Qemu-devel] [RFC 6/7] qemu-io: add "abort" command to simulate program crash, Stefan Hajnoczi, 2012/06/22
- [Qemu-devel] [RFC 3/7] docs: add lazy refcounts bit to qcow2 specification, Stefan Hajnoczi, 2012/06/22
- Re: [Qemu-devel] [RFC 0/7] qcow2: implement lazy refcounts optimization, Zhi Yong Wu, 2012/06/25