From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49240) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrcfI-00037F-4J for qemu-devel@nongnu.org; Fri, 13 Dec 2013 19:01:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VrcfD-0002OG-At for qemu-devel@nongnu.org; Fri, 13 Dec 2013 19:01:04 -0500 Received: from mx1.redhat.com ([209.132.183.28]:63362) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrcfD-0002OC-3c for qemu-devel@nongnu.org; Fri, 13 Dec 2013 19:00:59 -0500 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rBE00vMN016680 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 13 Dec 2013 19:00:57 -0500 Message-ID: <52AB9FEB.4030103@redhat.com> Date: Sat, 14 Dec 2013 01:01:47 +0100 From: Max Reitz MIME-Version: 1.0 References: <1386954633-28905-1-git-send-email-mreitz@redhat.com> <1386954633-28905-23-git-send-email-mreitz@redhat.com> <20131213210849.GJ3916@dhcp-200-207.str.redhat.com> In-Reply-To: <20131213210849.GJ3916@dhcp-200-207.str.redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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: Kevin Wolf Cc: Fam Zheng , qemu-devel@nongnu.org, Stefan Hajnoczi On 13.12.2013 22:08, Kevin Wolf wrote: > 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. :-) Hm, yes, especially for writes to 0x38000 = 224k *g*. >> +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? Okay, why not. >> +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). Okay. Max