qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 22/22] iotests: Test new blkdebug/blkverify i


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH v5 22/22] iotests: Test new blkdebug/blkverify interface
Date: Fri, 13 Dec 2013 22:08:49 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Am 13.12.2013 um 18:10 hat Max Reitz geschrieben:
> Add a test for the new blkdebug/blkverify interface.
> 
> This test is not written in Python, although it uses QMP. This is
> because it invokes the qemu-io HMP command, which outputs errors to
> stderr instead of returning them through QMP. Filtering and testing that
> output is easier in a shell script than with the Python infrastructure.
> 
> Signed-off-by: Max Reitz <address@hidden>
> ---
>  tests/qemu-iotests/071     | 201 
> +++++++++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/071.out |  73 ++++++++++++++++
>  tests/qemu-iotests/group   |   1 +
>  3 files changed, 275 insertions(+)
>  create mode 100755 tests/qemu-iotests/071
>  create mode 100644 tests/qemu-iotests/071.out
> 
> diff --git a/tests/qemu-iotests/071 b/tests/qemu-iotests/071
> new file mode 100755
> index 0000000..4be525e
> --- /dev/null
> +++ b/tests/qemu-iotests/071
> @@ -0,0 +1,201 @@
> +#!/bin/bash
> +#
> +# Test case for the QMP blkdebug and blkverify interfaces
> +#
> +# Copyright (C) 2013 Red Hat, Inc.
> +#
> +# 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 generic
> +_supported_proto generic
> +_supported_os Linux
> +
> +function do_run_qemu()
> +{
> +    echo Testing: "$@" | _filter_imgfmt
> +    $QEMU -nographic -qmp stdio -serial none "$@"
> +    echo
> +}
> +
> +function run_qemu()
> +{
> +    do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp | _filter_qemu_io
> +}
> +
> +IMG_SIZE=128K

Quite small. :-)

> +echo
> +echo "=== Testing blkverify through filename ==="
> +echo
> +
> +TEST_IMG="$TEST_IMG.base" IMGOPTS="" IMGFMT="raw" _make_test_img $IMG_SIZE |\
> +    _filter_imgfmt
> +_make_test_img $IMG_SIZE
> +$QEMU_IO -c "open -o file.driver=blkverify,file.raw.filename=$TEST_IMG.base 
> $TEST_IMG" \
> +         -c 'read 0 512' -c 'write -P 42 0x38000 512' -c 'read -P 42 0x38000 
> 512' | _filter_qemu_io

How about doing a successful write/read pair as well?

> +echo
> +echo "=== Testing blkverify on existing block device ==="
> +echo
> +
> +run_qemu -drive "file=$TEST_IMG,format=$IMGFMT,if=none,id=drive0" <<EOF
> +{ "execute": "qmp_capabilities" }
> +{ "execute": "blockdev-add",
> +    "arguments": {
> +        "options": {
> +            "driver": "blkverify",
> +            "id": "drive0-verify",
> +            "test": "drive0",
> +            "raw": {
> +                "driver": "raw",
> +                "file": {
> +                    "driver": "file",
> +                    "filename": "$TEST_IMG.base"
> +                }
> +            }
> +        }
> +    }
> +}

The other way round would be worth an additional test (i.e. using an
existing block device for the raw reference).

Anyway, this is just suggestions for improvement, so:

Reviewed-by: Kevin Wolf <address@hidden>



reply via email to

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