[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>
- Re: [Qemu-devel] [PATCH v5 19/22] blkdebug: Alias "errno" as "error", (continued)
[Qemu-devel] [PATCH v5 20/22] qapi: QMP interface for blkdebug and blkverify, Max Reitz, 2013/12/13
[Qemu-devel] [PATCH v5 21/22] qemu-io: Make filename optional, Max Reitz, 2013/12/13
[Qemu-devel] [PATCH v5 22/22] iotests: Test new blkdebug/blkverify interface, Max Reitz, 2013/12/13
Re: [Qemu-devel] [PATCH v3 00/21] blkdebug/blkverify: Allow QMP configuration, Max Reitz, 2013/12/13