From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48969) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrZyp-0006LJ-8f for qemu-devel@nongnu.org; Fri, 13 Dec 2013 16:09:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VrZyf-0005Fy-8w for qemu-devel@nongnu.org; Fri, 13 Dec 2013 16:09:03 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48792) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrZyf-0005Fh-10 for qemu-devel@nongnu.org; Fri, 13 Dec 2013 16:08:53 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rBDL8qQ7029453 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 13 Dec 2013 16:08:52 -0500 Date: Fri, 13 Dec 2013 22:08:49 +0100 From: Kevin Wolf Message-ID: <20131213210849.GJ3916@dhcp-200-207.str.redhat.com> References: <1386954633-28905-1-git-send-email-mreitz@redhat.com> <1386954633-28905-23-git-send-email-mreitz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1386954633-28905-23-git-send-email-mreitz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v5 22/22] iotests: Test new blkdebug/blkverify interface List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Reitz Cc: Fam Zheng , qemu-devel@nongnu.org, Stefan Hajnoczi 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 > --- > 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 . > +# > + > +# creator > +owner=mreitz@redhat.com > + > +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" < +{ "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