From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57843) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XhFBO-00081g-NQ for qemu-devel@nongnu.org; Thu, 23 Oct 2014 05:59:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XhFBK-0000Zt-AD for qemu-devel@nongnu.org; Thu, 23 Oct 2014 05:59:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:23924) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XhFBK-0000Ze-29 for qemu-devel@nongnu.org; Thu, 23 Oct 2014 05:59:46 -0400 Message-ID: <5448D186.8030307@redhat.com> Date: Thu, 23 Oct 2014 11:59:34 +0200 From: Max Reitz MIME-Version: 1.0 References: <1413984120-21830-1-git-send-email-pl@kamp.de> <1413984120-21830-6-git-send-email-pl@kamp.de> In-Reply-To: <1413984120-21830-6-git-send-email-pl@kamp.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCHv2 5/6] block: add qemu-iotest for write-merge parameter List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Lieven , qemu-devel@nongnu.org Cc: kwolf@redhat.com, famz@redhat.com, armbru@redhat.com, stefanha@redhat.com On 2014-10-22 at 15:21, Peter Lieven wrote: > Signed-off-by: Peter Lieven > --- > tests/qemu-iotests/108 | 108 +++++++++++++++++++++++++++++++++++= +++++++++ It's a pity, but 108 is already taken (by me and on Kevin's block branch = at least). 108 having 108 lines would have been nice, though. > tests/qemu-iotests/108.out | 63 ++++++++++++++++++++++++++ > tests/qemu-iotests/group | 1 + > 3 files changed, 172 insertions(+) > create mode 100755 tests/qemu-iotests/108 > create mode 100644 tests/qemu-iotests/108.out > > diff --git a/tests/qemu-iotests/108 b/tests/qemu-iotests/108 > new file mode 100755 > index 0000000..34da1fb > --- /dev/null > +++ b/tests/qemu-iotests/108 > @@ -0,0 +1,108 @@ > +#!/bin/bash > +# > +# Test if write-merging parameter is applied correctly > +# > +# Copyright (C) 2014 Peter Lieven > +# > +# 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 = =2E > +# > + > +# creator > +owner=3Dpl@kamp.de > + > +seq=3D`basename $0` > +echo "QA output created by $seq" > + > +here=3D`pwd` > +tmp=3D/tmp/$$ > +status=3D1 # failure is the default! > + > +# get standard environment, filters and checks > +. ./common.rc > +. ./common.filter > + > +_supported_fmt raw > +_supported_proto file > +_supported_os Linux > + > +function do_run_qemu() > +{ > + echo Testing: "$@" > + $QEMU -nographic -qmp stdio -serial none "$@" > + echo > +} > + > +function run_qemu() > +{ > + do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp > +} > + > +size=3D128M > + > +_make_test_img $size > + > +echo > +echo =3D=3D=3D write-merging not specified =3D=3D=3D > +echo > + > +run_qemu -drive file=3D$TEST_IMG,format=3D$IMGFMT,if=3Dnone,id=3Ddisk,= node-name=3Droot,file.node-name=3Dfile -device virtio-blk-pci,drive=3Ddis= k,id=3Dvirtio0 < +{ "execute": "qmp_capabilities" } > +{ "execute": "query-named-block-nodes" } > +{ "execute": "quit" } > +EOF > + > +echo > +echo =3D=3D=3D write-merging set to on =3D=3D=3D > +echo > + > +run_qemu -drive file=3D$TEST_IMG,format=3D$IMGFMT,if=3Dnone,id=3Ddisk,= node-name=3Droot,file.node-name=3Dfile,write-merging=3Don -device virtio-= blk-pci,drive=3Ddisk,id=3Dvirtio0 < +{ "execute": "qmp_capabilities" } > +{ "execute": "query-block" } > +{ "execute": "quit" } > +EOF > + > +echo > +echo =3D=3D=3D write-merging set to off =3D=3D=3D > +echo > + > +run_qemu -drive file=3D$TEST_IMG,format=3D$IMGFMT,if=3Dnone,id=3Ddisk,= node-name=3Droot,file.node-name=3Dfile,write-merging=3Doff -device virtio= -blk-pci,drive=3Ddisk,id=3Dvirtio0 < +{ "execute": "qmp_capabilities" } > +{ "execute": "query-block" } > +{ "execute": "quit" } > +EOF > + > +echo > +echo =3D=3D=3D file.write-merging set to on =3D=3D=3D > +echo > + > +run_qemu -drive file=3D$TEST_IMG,format=3D$IMGFMT,if=3Dnone,id=3Ddisk,= node-name=3Droot,file.node-name=3Dfile,file.write-merging=3Don -device vi= rtio-blk-pci,drive=3Ddisk,id=3Dvirtio0 < +{ "execute": "qmp_capabilities" } > +{ "execute": "query-block" } You should be using query-named-block-nodes here (and probably=20 everywhere else, too). See the test output for the next case, which=20 never says anything about write-merging being off (aside from the=20 beautiful json file name). [0] > +{ "execute": "quit" } > +EOF > + > +echo > +echo =3D=3D=3D file.write-merging set to off =3D=3D=3D > +echo > + > +run_qemu -drive file=3D$TEST_IMG,format=3D$IMGFMT,if=3Dnone,id=3Ddisk,= node-name=3Droot,file.node-name=3Dfile,file.write-merging=3Doff -device v= irtio-blk-pci,drive=3Ddisk,id=3Dvirtio0 < +{ "execute": "qmp_capabilities" } > +{ "execute": "query-block" } > +{ "execute": "quit" } > +EOF > + > +# success, all done > +echo "*** done" > +rm -f $seq.full > +status=3D0 > diff --git a/tests/qemu-iotests/108.out b/tests/qemu-iotests/108.out > new file mode 100644 > index 0000000..4fa687a > --- /dev/null > +++ b/tests/qemu-iotests/108.out > @@ -0,0 +1,63 @@ > +QA output created by 108 > +Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 > + > +=3D=3D=3D write-merging not specified =3D=3D=3D > + > +Testing: -drive file=3DTEST_DIR/t.raw,format=3Draw,if=3Dnone,id=3Ddisk= ,node-name=3Droot,file.node-name=3Dfile -device virtio-blk-pci,drive=3Ddi= sk,id=3Dvirtio0 > +QMP_VERSION > +{"return": {}} > +{"return": [{"iops_rd": 0, "detect_zeroes": "off", "write_merging": tr= ue, "image": {}, "iops_wr": 0, "ro": false, "node-name": "root", "backing= _file_depth": 0, "drv": "raw", "iops": 0, "bps_wr": 0, "encrypted": false= , "bps": 0, "bps_rd": 0, "file": "TEST_DIR/t.raw", "encryption_key_missin= g": false}, {"iops_rd": 0, "detect_zeroes": "off", "write_merging": true,= "image": {}, "iops_wr": 0, "ro": false, "node-name": "file", "backing_fi= le_depth": 0, "drv": "file", "iops": 0, "bps_wr": 0, "encrypted": false, = "bps": 0, "bps_rd": 0, "file": "TEST_DIR/t.raw", "encryption_key_missing"= : false}]} > +{"return": {}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "SHUTDOWN"} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": tr= ue}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "floppy0", "tray-open": tru= e}} > + > + > +=3D=3D=3D write-merging set to on =3D=3D=3D > + > +Testing: -drive file=3DTEST_DIR/t.raw,format=3Draw,if=3Dnone,id=3Ddisk= ,node-name=3Droot,file.node-name=3Dfile,write-merging=3Don -device virtio= -blk-pci,drive=3Ddisk,id=3Dvirtio0 > +QMP_VERSION > +{"return": {}} > +{"return": [{"io-status": "ok", "device": "disk", "locked": false, "re= movable": false, "inserted": {"iops_rd": 0, "detect_zeroes": "off", "writ= e_merging": true, "image": {"virtual-size": 134217728, "filename": "json:= {\"write-merging\": \"on\", \"driver\": \"raw\", \"file\": {\"driver\": \= "file\", \"filename\": \"TEST_DIR/t.raw\"}}", "format": "raw", "actual-si= ze": 0, "dirty-flag": false}, "iops_wr": 0, "ro": false, "node-name": "ro= ot", "backing_file_depth": 0, "drv": "raw", "iops": 0, "bps_wr": 0, "encr= ypted": false, "bps": 0, "bps_rd": 0, "file": "json:{\"write-merging\": \= "on\", \"driver\": \"raw\", \"file\": {\"driver\": \"file\", \"filename\"= : \"TEST_DIR/t.raw\"}}", "encryption_key_missing": false}, "type": "unkno= wn"}, {"io-status": "ok", "device": "ide1-cd0", "locked": false, "removab= le": true, "tray_open": false, "type": "unknown"}, {"device": "floppy0", = "locked": false, "removable": true, "tray_open": false, "type": "unknown"= }, {"device": "sd0", "locked": false, "remo > vable": > true, "tray_open": false, "type": "unknown"}]} Just so you know, this line (and some more) has been split because of=20 email=E2=84=A2. Therefore, this patch doesn't apply until fixed manually.= It=20 might be worth specifying some branch on some repo where we can pull=20 this series from. > +{"return": {}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "SHUTDOWN"} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": tr= ue}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "floppy0", "tray-open": tru= e}} > + > + > +=3D=3D=3D write-merging set to off =3D=3D=3D > + > +Testing: -drive file=3DTEST_DIR/t.raw,format=3Draw,if=3Dnone,id=3Ddisk= ,node-name=3Droot,file.node-name=3Dfile,write-merging=3Doff -device virti= o-blk-pci,drive=3Ddisk,id=3Dvirtio0 > +QMP_VERSION > +{"return": {}} > +{"return": [{"io-status": "ok", "device": "disk", "locked": false, "re= movable": false, "inserted": {"iops_rd": 0, "detect_zeroes": "off", "writ= e_merging": false, "image": {"virtual-size": 134217728, "filename": "json= :{\"write-merging\": \"off\", \"driver\": \"raw\", \"file\": {\"driver\":= \"file\", \"filename\": \"TEST_DIR/t.raw\"}}", "format": "raw", "actual-= size": 0, "dirty-flag": false}, "iops_wr": 0, "ro": false, "node-name": "= root", "backing_file_depth": 0, "drv": "raw", "iops": 0, "bps_wr": 0, "en= crypted": false, "bps": 0, "bps_rd": 0, "file": "json:{\"write-merging\":= \"off\", \"driver\": \"raw\", \"file\": {\"driver\": \"file\", \"filenam= e\": \"TEST_DIR/t.raw\"}}", "encryption_key_missing": false}, "type": "un= known"}, {"io-status": "ok", "device": "ide1-cd0", "locked": false, "remo= vable": true, "tray_open": false, "type": "unknown"}, {"device": "floppy0= ", "locked": false, "removable": true, "tray_open": false, "type": "unkno= wn"}, {"device": "sd0", "locked": false, "r > emovable > ": true, "tray_open": false, "type": "unknown"}]} > +{"return": {}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "SHUTDOWN"} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": tr= ue}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "floppy0", "tray-open": tru= e}} > + > + > +=3D=3D=3D file.write-merging set to on =3D=3D=3D > + > +Testing: -drive file=3DTEST_DIR/t.raw,format=3Draw,if=3Dnone,id=3Ddisk= ,node-name=3Droot,file.node-name=3Dfile,file.write-merging=3Don -device v= irtio-blk-pci,drive=3Ddisk,id=3Dvirtio0 > +QMP_VERSION > +{"return": {}} > +{"return": [{"io-status": "ok", "device": "disk", "locked": false, "re= movable": false, "inserted": {"iops_rd": 0, "detect_zeroes": "off", "writ= e_merging": true, "image": {"virtual-size": 134217728, "filename": "TEST_= DIR/t.raw", "format": "raw", "actual-size": 0, "dirty-flag": false}, "iop= s_wr": 0, "ro": false, "node-name": "root", "backing_file_depth": 0, "drv= ": "raw", "iops": 0, "bps_wr": 0, "encrypted": false, "bps": 0, "bps_rd":= 0, "file": "TEST_DIR/t.raw", "encryption_key_missing": false}, "type": "= unknown"}, {"io-status": "ok", "device": "ide1-cd0", "locked": false, "re= movable": true, "tray_open": false, "type": "unknown"}, {"device": "flopp= y0", "locked": false, "removable": true, "tray_open": false, "type": "unk= nown"}, {"device": "sd0", "locked": false, "removable": true, "tray_open"= : false, "type": "unknown"}]} > +{"return": {}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "SHUTDOWN"} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": tr= ue}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "floppy0", "tray-open": tru= e}} > + > + > +=3D=3D=3D file.write-merging set to off =3D=3D=3D > + > +Testing: -drive file=3DTEST_DIR/t.raw,format=3Draw,if=3Dnone,id=3Ddisk= ,node-name=3Droot,file.node-name=3Dfile,file.write-merging=3Doff -device = virtio-blk-pci,drive=3Ddisk,id=3Dvirtio0 > +QMP_VERSION > +{"return": {}} > +{"return": [{"io-status": "ok", "device": "disk", "locked": false, "re= movable": false, "inserted": {"iops_rd": 0, "detect_zeroes": "off", "writ= e_merging": true, "image": {"virtual-size": 134217728, "filename": "TEST_= DIR/t.raw", "format": "raw", "actual-size": 0, "dirty-flag": false}, "iop= s_wr": 0, "ro": false, "node-name": "root", "backing_file_depth": 0, "drv= ": "raw", "iops": 0, "bps_wr": 0, "encrypted": false, "bps": 0, "bps_rd":= 0, "file": "TEST_DIR/t.raw", "encryption_key_missing": false}, "type": "= unknown"}, {"io-status": "ok", "device": "ide1-cd0", "locked": false, "re= movable": true, "tray_open": false, "type": "unknown"}, {"device": "flopp= y0", "locked": false, "removable": true, "tray_open": false, "type": "unk= nown"}, {"device": "sd0", "locked": false, "removable": true, "tray_open"= : false, "type": "unknown"}]} [0] No '"write_merging": false' here... Max > +{"return": {}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "SHUTDOWN"} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": tr= ue}} > +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "ev= ent": "DEVICE_TRAY_MOVED", "data": {"device": "floppy0", "tray-open": tru= e}} > + > +*** done > diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group > index b230996..be2054f 100644 > --- a/tests/qemu-iotests/group > +++ b/tests/qemu-iotests/group > @@ -106,3 +106,4 @@ > 103 rw auto quick > 104 rw auto > 105 rw auto quick > +108 rw auto quick