From nobody Wed Apr 16 12:16:25 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516716345118328.49327434788415; Tue, 23 Jan 2018 06:05:45 -0800 (PST) Received: from localhost ([::1]:59713 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edzCq-0005aW-7c for importer@patchew.org; Tue, 23 Jan 2018 09:05:44 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57819) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1edz9r-0003a4-LO for qemu-devel@nongnu.org; Tue, 23 Jan 2018 09:02:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1edz9k-0005sp-Sv for qemu-devel@nongnu.org; Tue, 23 Jan 2018 09:02:39 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40124) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1edz9U-0005fu-Ka; Tue, 23 Jan 2018 09:02:16 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BAC557A171; Tue, 23 Jan 2018 14:02:15 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-117-26.ams2.redhat.com [10.36.117.26]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8C8F6BA9D; Tue, 23 Jan 2018 14:02:14 +0000 (UTC) From: Kevin Wolf To: qemu-block@nongnu.org Date: Tue, 23 Jan 2018 15:01:38 +0100 Message-Id: <20180123140201.31163-7-kwolf@redhat.com> In-Reply-To: <20180123140201.31163-1-kwolf@redhat.com> References: <20180123140201.31163-1-kwolf@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Tue, 23 Jan 2018 14:02:15 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 06/29] iotests: Make BD-{remove, insert}-medium use @id X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Max Reitz In some cases, these commands still use the deprecated @device parameter. Fix that so we can later drop that parameter from their interface. Signed-off-by: Max Reitz Message-id: 20171110224302.14424-2-mreitz@redhat.com Reviewed-by: Alberto Garcia Signed-off-by: Max Reitz --- tests/qemu-iotests/118 | 184 +++++++++++++++++++++++----------------------= ---- tests/qemu-iotests/155 | 60 ++++++++-------- 2 files changed, 113 insertions(+), 131 deletions(-) diff --git a/tests/qemu-iotests/118 b/tests/qemu-iotests/118 index 8a9e838c90..ca6965d23c 100755 --- a/tests/qemu-iotests/118 +++ b/tests/qemu-iotests/118 @@ -28,6 +28,14 @@ from iotests import qemu_img old_img =3D os.path.join(iotests.test_dir, 'test0.img') new_img =3D os.path.join(iotests.test_dir, 'test1.img') =20 +def interface_to_device_name(interface): + if interface =3D=3D 'ide': + return 'ide-cd' + elif interface =3D=3D 'floppy': + return 'floppy' + else: + return None + class ChangeBaseClass(iotests.QMPTestCase): has_opened =3D False has_closed =3D False @@ -63,7 +71,7 @@ class ChangeBaseClass(iotests.QMPTestCase): =20 class GeneralChangeTestsBaseClass(ChangeBaseClass): =20 - device_name =3D None + device_name =3D 'qdev0' =20 def test_change(self): result =3D self.vm.qmp('change', device=3D'drive0', target=3Dnew_i= mg, @@ -79,14 +87,9 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 def test_blockdev_change_medium(self): - if self.device_name is not None: - result =3D self.vm.qmp('blockdev-change-medium', - id=3Dself.device_name, filename=3Dnew_img, - format=3Diotests.imgfmt) - else: - result =3D self.vm.qmp('blockdev-change-medium', - device=3D'drive0', filename=3Dnew_img, - format=3Diotests.imgfmt) + result =3D self.vm.qmp('blockdev-change-medium', + id=3Dself.device_name, filename=3Dnew_img, + format=3Diotests.imgfmt) =20 self.assert_qmp(result, 'return', {}) =20 @@ -99,10 +102,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 def test_eject(self): - if self.device_name is not None: - result =3D self.vm.qmp('eject', id=3Dself.device_name, force= =3DTrue) - else: - result =3D self.vm.qmp('eject', device=3D'drive0', force=3DTru= e) + result =3D self.vm.qmp('eject', id=3Dself.device_name, force=3DTru= e) self.assert_qmp(result, 'return', {}) =20 self.wait_for_open() @@ -113,10 +113,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp_absent(result, 'return[0]/inserted') =20 def test_tray_eject_change(self): - if self.device_name is not None: - result =3D self.vm.qmp('eject', id=3Dself.device_name, force= =3DTrue) - else: - result =3D self.vm.qmp('eject', device=3D'drive0', force=3DTru= e) + result =3D self.vm.qmp('eject', id=3Dself.device_name, force=3DTru= e) self.assert_qmp(result, 'return', {}) =20 self.wait_for_open() @@ -126,12 +123,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/tray_open', True) self.assert_qmp_absent(result, 'return[0]/inserted') =20 - if self.device_name is not None: - result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.dev= ice_name, - filename=3Dnew_img, format=3Diotests.imgf= mt) - else: - result =3D self.vm.qmp('blockdev-change-medium', device=3D'dri= ve0', - filename=3Dnew_img, format=3Diotests.imgf= mt) + result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, + filename=3Dnew_img, format=3Diotests.imgfmt) self.assert_qmp(result, 'return', {}) =20 self.wait_for_close() @@ -142,12 +135,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 def test_tray_open_close(self): - if self.device_name is not None: - result =3D self.vm.qmp('blockdev-open-tray', - id=3Dself.device_name, force=3DTrue) - else: - result =3D self.vm.qmp('blockdev-open-tray', - device=3D'drive0', force=3DTrue) + result =3D self.vm.qmp('blockdev-open-tray', + id=3Dself.device_name, force=3DTrue) self.assert_qmp(result, 'return', {}) =20 self.wait_for_open() @@ -160,10 +149,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): else: self.assert_qmp(result, 'return[0]/inserted/image/filename', o= ld_img) =20 - if self.device_name is not None: - result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device= _name) - else: - result =3D self.vm.qmp('blockdev-close-tray', device=3D'drive0= ') + result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device_nam= e) self.assert_qmp(result, 'return', {}) =20 if self.has_real_tray or not self.was_empty: @@ -178,7 +164,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', o= ld_img) =20 def test_tray_eject_close(self): - result =3D self.vm.qmp('eject', device=3D'drive0', force=3DTrue) + result =3D self.vm.qmp('eject', id=3Dself.device_name, force=3DTru= e) self.assert_qmp(result, 'return', {}) =20 self.wait_for_open() @@ -188,10 +174,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/tray_open', True) self.assert_qmp_absent(result, 'return[0]/inserted') =20 - if self.device_name is not None: - result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device= _name) - else: - result =3D self.vm.qmp('blockdev-close-tray', device=3D'drive0= ') + result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device_nam= e) self.assert_qmp(result, 'return', {}) =20 self.wait_for_close() @@ -202,7 +185,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp_absent(result, 'return[0]/inserted') =20 def test_tray_open_change(self): - result =3D self.vm.qmp('blockdev-open-tray', device=3D'drive0', fo= rce=3DTrue) + result =3D self.vm.qmp('blockdev-open-tray', id=3Dself.device_name, + force=3DTrue) self.assert_qmp(result, 'return', {}) =20 self.wait_for_open() @@ -215,7 +199,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): else: self.assert_qmp(result, 'return[0]/inserted/image/filename', o= ld_img) =20 - result =3D self.vm.qmp('blockdev-change-medium', device=3D'drive0', + result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, filename=3Dnew_img, format=3Diotests.im= gfmt) self.assert_qmp(result, 'return', {}) @@ -235,12 +219,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): 'driver': 'file'}) self.assert_qmp(result, 'return', {}) =20 - if self.device_name is not None: - result =3D self.vm.qmp('blockdev-open-tray', - id=3Dself.device_name, force=3DTrue) - else: - result =3D self.vm.qmp('blockdev-open-tray', - device=3D'drive0', force=3DTrue) + result =3D self.vm.qmp('blockdev-open-tray', + id=3Dself.device_name, force=3DTrue) self.assert_qmp(result, 'return', {}) =20 self.wait_for_open() @@ -253,11 +233,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): else: self.assert_qmp(result, 'return[0]/inserted/image/filename', o= ld_img) =20 - if self.device_name is not None: - result =3D self.vm.qmp('x-blockdev-remove-medium', - id=3Dself.device_name) - else: - result =3D self.vm.qmp('x-blockdev-remove-medium', device=3D'd= rive0') + result =3D self.vm.qmp('x-blockdev-remove-medium', + id=3Dself.device_name) self.assert_qmp(result, 'return', {}) =20 result =3D self.vm.qmp('query-block') @@ -265,12 +242,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/tray_open', True) self.assert_qmp_absent(result, 'return[0]/inserted') =20 - if self.device_name is not None: - result =3D self.vm.qmp('x-blockdev-insert-medium', - id=3Dself.device_name, node_name=3D'new') - else: - result =3D self.vm.qmp('x-blockdev-insert-medium', - device=3D'drive0', node_name=3D'new') + result =3D self.vm.qmp('x-blockdev-insert-medium', + id=3Dself.device_name, node_name=3D'new') self.assert_qmp(result, 'return', {}) =20 result =3D self.vm.qmp('query-block') @@ -278,10 +251,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/tray_open', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 - if self.device_name is not None: - result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device= _name) - else: - result =3D self.vm.qmp('blockdev-close-tray', device=3D'drive0= ') + result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device_nam= e) self.assert_qmp(result, 'return', {}) =20 self.wait_for_close() @@ -292,7 +262,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 def test_close_on_closed(self): - result =3D self.vm.qmp('blockdev-close-tray', device=3D'drive0') + result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device_nam= e) # Should be a no-op self.assert_qmp(result, 'return', {}) self.assertEquals(self.vm.get_qmp_events(wait=3DFalse), []) @@ -301,7 +271,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): if not self.has_real_tray: return =20 - result =3D self.vm.qmp('x-blockdev-remove-medium', device=3D'drive= 0') + result =3D self.vm.qmp('x-blockdev-remove-medium', id=3Dself.devic= e_name) self.assert_qmp(result, 'error/class', 'GenericError') =20 def test_insert_on_closed(self): @@ -315,7 +285,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): 'driver': 'file'}) self.assert_qmp(result, 'return', {}) =20 - result =3D self.vm.qmp('x-blockdev-insert-medium', device=3D'drive= 0', + result =3D self.vm.qmp('x-blockdev-insert-medium', id=3Dself.devic= e_name, node_name=3D'new') self.assert_qmp(result, 'error/class', 'GenericError') =20 @@ -326,12 +296,10 @@ class TestInitiallyFilled(GeneralChangeTestsBaseClass= ): qemu_img('create', '-f', iotests.imgfmt, old_img, '1440k') qemu_img('create', '-f', iotests.imgfmt, new_img, '1440k') self.vm =3D iotests.VM() - if interface =3D=3D 'ide': - self.device_name =3D 'qdev0' - self.vm.add_drive(old_img, 'media=3D%s' % media, 'none') - self.vm.add_device('ide-cd,drive=3Ddrive0,id=3D%s' % self.devi= ce_name) - else: - self.vm.add_drive(old_img, 'media=3D%s' % media, interface) + self.vm.add_drive(old_img, 'media=3D%s' % media, 'none') + self.vm.add_device('%s,drive=3Ddrive0,id=3D%s' % + (interface_to_device_name(interface), + self.device_name)) self.vm.launch() =20 def tearDown(self): @@ -347,12 +315,12 @@ class TestInitiallyFilled(GeneralChangeTestsBaseClass= ): 'driver': 'file'}) self.assert_qmp(result, 'return', {}) =20 - result =3D self.vm.qmp('blockdev-open-tray', device=3D'drive0') + result =3D self.vm.qmp('blockdev-open-tray', id=3Dself.device_name) self.assert_qmp(result, 'return', {}) =20 self.wait_for_open() =20 - result =3D self.vm.qmp('x-blockdev-insert-medium', device=3D'drive= 0', + result =3D self.vm.qmp('x-blockdev-insert-medium', id=3Dself.devic= e_name, node_name=3D'new') self.assert_qmp(result, 'error/class', 'GenericError') =20 @@ -361,7 +329,10 @@ class TestInitiallyEmpty(GeneralChangeTestsBaseClass): =20 def setUp(self, media, interface): qemu_img('create', '-f', iotests.imgfmt, new_img, '1440k') - self.vm =3D iotests.VM().add_drive(None, 'media=3D%s' % media, int= erface) + self.vm =3D iotests.VM().add_drive(None, 'media=3D%s' % media, 'no= ne') + self.vm.add_device('%s,drive=3Ddrive0,id=3D%s' % + (interface_to_device_name(interface), + self.device_name)) self.vm.launch() =20 def tearDown(self): @@ -369,12 +340,12 @@ class TestInitiallyEmpty(GeneralChangeTestsBaseClass): os.remove(new_img) =20 def test_remove_on_empty(self): - result =3D self.vm.qmp('blockdev-open-tray', device=3D'drive0') + result =3D self.vm.qmp('blockdev-open-tray', id=3Dself.device_name) self.assert_qmp(result, 'return', {}) =20 self.wait_for_open() =20 - result =3D self.vm.qmp('x-blockdev-remove-medium', device=3D'drive= 0') + result =3D self.vm.qmp('x-blockdev-remove-medium', id=3Dself.devic= e_name) # Should be a no-op self.assert_qmp(result, 'return', {}) =20 @@ -410,6 +381,8 @@ class TestFloppyInitiallyEmpty(TestInitiallyEmpty): self.has_opened =3D True =20 class TestChangeReadOnly(ChangeBaseClass): + device_name =3D 'qdev0' + def setUp(self): qemu_img('create', '-f', iotests.imgfmt, old_img, '1440k') qemu_img('create', '-f', iotests.imgfmt, new_img, '1440k') @@ -425,14 +398,15 @@ class TestChangeReadOnly(ChangeBaseClass): def test_ro_ro_retain(self): os.chmod(old_img, 0444) os.chmod(new_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk,read-only=3Don', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk,read-only=3Don', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', device=3D'drive0', + result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, filename=3Dnew_img, format=3Diotests.im= gfmt, read_only_mode=3D'r= etain') @@ -444,14 +418,15 @@ class TestChangeReadOnly(ChangeBaseClass): =20 def test_ro_rw_retain(self): os.chmod(old_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk,read-only=3Don', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk,read-only=3Don', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', device=3D'drive0', + result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, filename=3Dnew_img, format=3Diotests.im= gfmt, read_only_mode=3D'r= etain') @@ -463,14 +438,15 @@ class TestChangeReadOnly(ChangeBaseClass): =20 def test_rw_ro_retain(self): os.chmod(new_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', False) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', device=3D'drive0', + result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, filename=3Dnew_img, format=3Diotests.im= gfmt, read_only_mode=3D'r= etain') @@ -484,7 +460,8 @@ class TestChangeReadOnly(ChangeBaseClass): =20 def test_ro_rw(self): os.chmod(old_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk,read-only=3Don', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk,read-only=3Don', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') @@ -492,7 +469,7 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 result =3D self.vm.qmp('blockdev-change-medium', - device=3D'drive0', + id=3Dself.device_name, filename=3Dnew_img, format=3Diotests.imgfmt, read_only_mode=3D'read-write') @@ -504,7 +481,8 @@ class TestChangeReadOnly(ChangeBaseClass): =20 def test_rw_ro(self): os.chmod(new_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') @@ -512,7 +490,7 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 result =3D self.vm.qmp('blockdev-change-medium', - device=3D'drive0', + id=3Dself.device_name, filename=3Dnew_img, format=3Diotests.imgfmt, read_only_mode=3D'read-only') @@ -523,7 +501,8 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 def test_make_rw_ro(self): - self.vm.add_drive(old_img, 'media=3Ddisk', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') @@ -531,7 +510,7 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 result =3D self.vm.qmp('blockdev-change-medium', - device=3D'drive0', + id=3Dself.device_name, filename=3Dnew_img, format=3Diotests.imgfmt, read_only_mode=3D'read-only') @@ -543,7 +522,8 @@ class TestChangeReadOnly(ChangeBaseClass): =20 def test_make_ro_rw(self): os.chmod(new_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') @@ -551,7 +531,7 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 result =3D self.vm.qmp('blockdev-change-medium', - device=3D'drive0', + id=3Dself.device_name, filename=3Dnew_img, format=3Diotests.imgfmt, read_only_mode=3D'read-write') @@ -563,14 +543,15 @@ class TestChangeReadOnly(ChangeBaseClass): =20 def test_make_rw_ro_by_retain(self): os.chmod(old_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk,read-only=3Don', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk,read-only=3Don', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', device=3D'drive0', + result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, filename=3Dnew_img, format=3Diotests.im= gfmt, read_only_mode=3D'r= etain') @@ -582,14 +563,15 @@ class TestChangeReadOnly(ChangeBaseClass): =20 def test_make_ro_rw_by_retain(self): os.chmod(new_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', False) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', device=3D'drive0', + result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, filename=3Dnew_img, format=3Diotests.im= gfmt, read_only_mode=3D'r= etain') @@ -601,7 +583,8 @@ class TestChangeReadOnly(ChangeBaseClass): =20 def test_rw_ro_cycle(self): os.chmod(new_img, 0444) - self.vm.add_drive(old_img, 'media=3Ddisk', 'floppy') + self.vm.add_drive(old_img, 'media=3Ddisk', 'none') + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') @@ -620,13 +603,13 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/ro', False) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('x-blockdev-remove-medium', device=3D'drive= 0') + result =3D self.vm.qmp('x-blockdev-remove-medium', id=3Dself.devic= e_name) self.assert_qmp(result, 'return', {}) =20 result =3D self.vm.qmp('query-block') self.assert_qmp_absent(result, 'return[0]/inserted') =20 - result =3D self.vm.qmp('x-blockdev-insert-medium', device=3D'drive= 0', + result =3D self.vm.qmp('x-blockdev-insert-medium', id=3Dself.devic= e_name, node_name=3D'new') self.assert_qmp(result, 'return', {}) =20 @@ -644,11 +627,14 @@ TestInitiallyEmpty =3D None =20 =20 class TestBlockJobsAfterCycle(ChangeBaseClass): + device_name =3D 'qdev0' + def setUp(self): - qemu_img('create', '-f', iotests.imgfmt, old_img, '1M') + qemu_img('create', '-f', iotests.imgfmt, old_img, '1440K') =20 self.vm =3D iotests.VM() self.vm.add_drive_raw("id=3Ddrive0,driver=3Dnull-co,if=3Dnone") + self.vm.add_device('floppy,drive=3Ddrive0,id=3D%s' % self.device_n= ame) self.vm.launch() =20 result =3D self.vm.qmp('query-block') @@ -656,7 +642,7 @@ class TestBlockJobsAfterCycle(ChangeBaseClass): =20 # For device-less BBs, calling blockdev-open-tray or blockdev-clos= e-tray # is not necessary - result =3D self.vm.qmp('x-blockdev-remove-medium', device=3D'drive= 0') + result =3D self.vm.qmp('x-blockdev-remove-medium', id=3Dself.devic= e_name) self.assert_qmp(result, 'return', {}) =20 result =3D self.vm.qmp('query-block') @@ -669,7 +655,7 @@ class TestBlockJobsAfterCycle(ChangeBaseClass): 'driver': 'file'}) self.assert_qmp(result, 'return', {}) =20 - result =3D self.vm.qmp('x-blockdev-insert-medium', device=3D'drive= 0', + result =3D self.vm.qmp('x-blockdev-insert-medium', id=3Dself.devic= e_name, node_name=3D'node0') self.assert_qmp(result, 'return', {}) =20 diff --git a/tests/qemu-iotests/155 b/tests/qemu-iotests/155 index 0b86ea4e5c..fc9fa975be 100755 --- a/tests/qemu-iotests/155 +++ b/tests/qemu-iotests/155 @@ -51,36 +51,30 @@ class BaseClass(iotests.QMPTestCase): target_real_backing =3D None =20 def setUp(self): - qemu_img('create', '-f', iotests.imgfmt, back0_img, '1M') + qemu_img('create', '-f', iotests.imgfmt, back0_img, '1440K') qemu_img('create', '-f', iotests.imgfmt, '-b', back0_img, back1_im= g) qemu_img('create', '-f', iotests.imgfmt, '-b', back1_img, back2_im= g) qemu_img('create', '-f', iotests.imgfmt, '-b', back2_img, source_i= mg) =20 self.vm =3D iotests.VM() - self.vm.add_drive(None, '', 'none') - self.vm.launch() - # Add the BDS via blockdev-add so it stays around after the mirror= block # job has been completed - result =3D self.vm.qmp('blockdev-add', - node_name=3D'source', - driver=3Diotests.imgfmt, - file=3D{'driver': 'file', - 'filename': source_img}) - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('x-blockdev-insert-medium', - device=3D'drive0', node_name=3D'source') - self.assert_qmp(result, 'return', {}) + blockdev =3D {'node-name': 'source', + 'driver': iotests.imgfmt, + 'file': {'driver': 'file', + 'filename': source_img}} + self.vm.add_blockdev(self.qmp_to_opts(blockdev)) + self.vm.add_device('floppy,id=3Dqdev0,drive=3Dsource') + self.vm.launch() =20 self.assertIntactSourceBackingChain() =20 if self.existing: if self.target_backing: qemu_img('create', '-f', iotests.imgfmt, - '-b', self.target_backing, target_img, '1M') + '-b', self.target_backing, target_img, '1440K') else: - qemu_img('create', '-f', iotests.imgfmt, target_img, '1M') + qemu_img('create', '-f', iotests.imgfmt, target_img, '1440= K') =20 if self.cmd =3D=3D 'blockdev-mirror': options =3D { 'node-name': 'target', @@ -104,11 +98,11 @@ class BaseClass(iotests.QMPTestCase): except OSError: pass =20 - def findBlockNode(self, node_name, id=3DNone): - if id: + def findBlockNode(self, node_name, qdev=3DNone): + if qdev: result =3D self.vm.qmp('query-block') for device in result['return']: - if device['device'] =3D=3D id: + if device['qdev'] =3D=3D qdev: if node_name: self.assert_qmp(device, 'inserted/node-name', node= _name) return device['inserted'] @@ -118,7 +112,7 @@ class BaseClass(iotests.QMPTestCase): if node['node-name'] =3D=3D node_name: return node =20 - self.fail('Cannot find node %s/%s' % (id, node_name)) + self.fail('Cannot find node %s/%s' % (qdev, node_name)) =20 def assertIntactSourceBackingChain(self): node =3D self.findBlockNode('source') @@ -155,22 +149,23 @@ class BaseClass(iotests.QMPTestCase): class MirrorBaseClass(BaseClass): def runMirror(self, sync): if self.cmd =3D=3D 'blockdev-mirror': - result =3D self.vm.qmp(self.cmd, device=3D'drive0', sync=3Dsyn= c, - target=3D'target') + result =3D self.vm.qmp(self.cmd, job_id=3D'mirror-job', device= =3D'source', + sync=3Dsync, target=3D'target') else: if self.existing: mode =3D 'existing' else: mode =3D 'absolute-paths' - result =3D self.vm.qmp(self.cmd, device=3D'drive0', sync=3Dsyn= c, - target=3Dtarget_img, format=3Diotests.img= fmt, - mode=3Dmode, node_name=3D'target') + result =3D self.vm.qmp(self.cmd, job_id=3D'mirror-job', device= =3D'source', + sync=3Dsync, target=3Dtarget_img, + format=3Diotests.imgfmt, mode=3Dmode, + node_name=3D'target') =20 self.assert_qmp(result, 'return', {}) =20 self.vm.event_wait('BLOCK_JOB_READY') =20 - result =3D self.vm.qmp('block-job-complete', device=3D'drive0') + result =3D self.vm.qmp('block-job-complete', device=3D'mirror-job') self.assert_qmp(result, 'return', {}) =20 self.vm.event_wait('BLOCK_JOB_COMPLETED') @@ -178,21 +173,21 @@ class MirrorBaseClass(BaseClass): def testFull(self): self.runMirror('full') =20 - node =3D self.findBlockNode('target', 'drive0') + node =3D self.findBlockNode('target', 'qdev0') self.assertCorrectBackingImage(node, None) self.assertIntactSourceBackingChain() =20 def testTop(self): self.runMirror('top') =20 - node =3D self.findBlockNode('target', 'drive0') + node =3D self.findBlockNode('target', 'qdev0') self.assertCorrectBackingImage(node, back2_img) self.assertIntactSourceBackingChain() =20 def testNone(self): self.runMirror('none') =20 - node =3D self.findBlockNode('target', 'drive0') + node =3D self.findBlockNode('target', 'qdev0') self.assertCorrectBackingImage(node, source_img) self.assertIntactSourceBackingChain() =20 @@ -233,17 +228,18 @@ class TestCommit(BaseClass): existing =3D False =20 def testCommit(self): - result =3D self.vm.qmp('block-commit', device=3D'drive0', base=3Db= ack1_img) + result =3D self.vm.qmp('block-commit', job_id=3D'commit-job', + device=3D'source', base=3Dback1_img) self.assert_qmp(result, 'return', {}) =20 self.vm.event_wait('BLOCK_JOB_READY') =20 - result =3D self.vm.qmp('block-job-complete', device=3D'drive0') + result =3D self.vm.qmp('block-job-complete', device=3D'commit-job') self.assert_qmp(result, 'return', {}) =20 self.vm.event_wait('BLOCK_JOB_COMPLETED') =20 - node =3D self.findBlockNode(None, 'drive0') + node =3D self.findBlockNode(None, 'qdev0') self.assert_qmp(node, 'image' + '/backing-image' * 0 + '/filename', back1_img) self.assert_qmp(node, 'image' + '/backing-image' * 1 + '/filename', --=20 2.13.6