From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40461) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WS5nV-0000vz-Al for qemu-devel@nongnu.org; Mon, 24 Mar 2014 10:24:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WS5nQ-0002yt-Ph for qemu-devel@nongnu.org; Mon, 24 Mar 2014 10:24:17 -0400 Received: from 28-113-190-109.dsl.ovh.fr ([109.190.113.28]:42354 helo=paradis.irqsave.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WS5nQ-0002ya-Bi for qemu-devel@nongnu.org; Mon, 24 Mar 2014 10:24:12 -0400 Date: Mon, 24 Mar 2014 15:24:11 +0100 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20140324142411.GF3071@irqsave.net> References: <1394232956-27852-1-git-send-email-mreitz@redhat.com> <1394232956-27852-13-git-send-email-mreitz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1394232956-27852-13-git-send-email-mreitz@redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v2 12/12] iotests: Add test for the JSON protocol List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Reitz Cc: Kevin Wolf , =?iso-8859-1?Q?Beno=EEt?= Canet , qemu-devel@nongnu.org, Stefan Hajnoczi The Friday 07 Mar 2014 =E0 23:55:56 (+0100), Max Reitz wrote : > Add a test for the JSON protocol driver. >=20 > Signed-off-by: Max Reitz > --- > tests/qemu-iotests/084 | 123 +++++++++++++++++++++++++++++++++++++= ++++++++ > tests/qemu-iotests/084.out | 39 ++++++++++++++ > tests/qemu-iotests/group | 1 + > 3 files changed, 163 insertions(+) > create mode 100755 tests/qemu-iotests/084 > create mode 100644 tests/qemu-iotests/084.out >=20 > diff --git a/tests/qemu-iotests/084 b/tests/qemu-iotests/084 > new file mode 100755 > index 0000000..75cb0c2 > --- /dev/null > +++ b/tests/qemu-iotests/084 > @@ -0,0 +1,123 @@ > +#!/bin/bash > +# > +# Test case for the JSON block protocol > +# > +# Copyright (C) 2014 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=3Dmreitz@redhat.com > + > +seq=3D"$(basename $0)" > +echo "QA output created by $seq" > + > +here=3D"$PWD" > +tmp=3D/tmp/$$ > +status=3D1 # 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 file > +_supported_os Linux > + > +# Using an image filename containing quotation marks will render the J= SON data > +# below invalid. In that case, we have little choice but simply not to= run this > +# test. > +case $TEST_IMG in > + *'"'*) > + _notrun "image filename may not contain quotation marks" > + ;; > +esac > + > +IMG_SIZE=3D64M > + > +# Taken from test 072 > +echo > +echo "=3D=3D=3D Testing nested image formats =3D=3D=3D" > +echo > + > +TEST_IMG=3D"$TEST_IMG.base" _make_test_img $IMG_SIZE > + > +$QEMU_IO -c 'write -P 42 0 512' -c 'write -P 23 512 512' \ > + -c 'write -P 66 1024 512' "$TEST_IMG.base" | _filter_qemu_io > + > +$QEMU_IMG convert -f raw -O $IMGFMT "$TEST_IMG.base" "$TEST_IMG" > + > +$QEMU_IO -c 'read -P 42 0 512' -c 'read -P 23 512 512' \ > + -c 'read -P 66 1024 512' "json:{ > + \"driver\": \"$IMGFMT\", > + \"file\": { > + \"driver\": \"$IMGFMT\", > + \"file\": { > + \"filename\": \"$TEST_IMG\" > + } > + } > +}" | _filter_qemu_io > + > +# This should fail (see test 072) > +$QEMU_IO -c 'read -P 42 0 512' "$TEST_IMG" | _filter_qemu_io > + > + > +# Taken from test 071 > +echo > +echo "=3D=3D=3D Testing blkdebug =3D=3D=3D" > +echo > + > +_make_test_img $IMG_SIZE > + > +$QEMU_IO -c 'write -P 42 0x38000 512' "$TEST_IMG" | _filter_qemu_io > + > +# The "image.filename" part tests whether "a": { "b": "c" } and "a.b":= "c" do > +# the same (which they should). > +# This has to use -g to force qemu-io to use BDRV_O_PROTOCOL, since it= will try > +# to determine the format of the file otherwise; due to the complexity= of the > +# filename, only raw (or json itself) will work and this will then res= ult in an > +# error because of the blkdebug part. Thus, use -g. > +$QEMU_IO -c 'read -P 42 0x38000 512' -g "json:{ > + \"driver\": \"$IMGFMT\", > + \"file\": { > + \"driver\": \"blkdebug\", > + \"inject-error\": [{ > + \"event\": \"l2_load\" > + }], > + \"image.filename\": \"$TEST_IMG\" > + } > +}" | _filter_qemu_io > + > + > +echo > +echo "=3D=3D=3D Testing qemu-img info output =3D=3D=3D" > +echo > + > +# This should output information about the image itself, not about the= JSON > +# block device. > +$QEMU_IMG info "json:{\"driver\":\"qcow2\",\"file.filename\":\"$TEST_I= MG\"}" \ > + | _filter_testdir | _filter_imgfmt > + > + > +# success, all done > +echo "*** done" > +rm -f $seq.full > +status=3D0 > diff --git a/tests/qemu-iotests/084.out b/tests/qemu-iotests/084.out > new file mode 100644 > index 0000000..375dd4a > --- /dev/null > +++ b/tests/qemu-iotests/084.out > @@ -0,0 +1,39 @@ > +QA output created by 084 > + > +=3D=3D=3D Testing nested image formats =3D=3D=3D > + > +Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D67108864=20 > +wrote 512/512 bytes at offset 0 > +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +wrote 512/512 bytes at offset 512 > +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +wrote 512/512 bytes at offset 1024 > +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +read 512/512 bytes at offset 0 > +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +read 512/512 bytes at offset 512 > +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +read 512/512 bytes at offset 1024 > +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +Pattern verification failed at offset 0, 512 bytes > +read 512/512 bytes at offset 0 > +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > + > +=3D=3D=3D Testing blkdebug =3D=3D=3D > + > +Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864=20 > +wrote 512/512 bytes at offset 229376 > +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +read failed: Input/output error > + > +=3D=3D=3D Testing qemu-img info output =3D=3D=3D > + > +image: TEST_DIR/t.IMGFMT > +file format: IMGFMT > +virtual size: 64M (67108864 bytes) > +disk size: 324K > +cluster_size: 65536 > +Format specific information: > + compat: 1.1 > + lazy refcounts: false > +*** done > diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group > index 9ec62d2..8f6e835 100644 > --- a/tests/qemu-iotests/group > +++ b/tests/qemu-iotests/group > @@ -85,5 +85,6 @@ > 079 rw auto > 081 rw auto > 082 rw auto quick > +084 rw auto quick > 086 rw auto quick > 087 rw auto quick > --=20 > 1.9.0 >=20 Reviewed-by: Benoit Canet >=20