[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PULL 06/29] iotests: Make BD-{remove, ins
From: |
Christian Borntraeger |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PULL 06/29] iotests: Make BD-{remove, insert}-medium use @id |
Date: |
Mon, 12 Feb 2018 12:33:49 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
Adding Max and Alberto,
I think the issue is that on s390 you cannot add a floppy
On 02/12/2018 12:16 PM, Christian Borntraeger wrote:
>
> On 01/23/2018 03:01 PM, Kevin Wolf wrote:
>> From: Max Reitz <address@hidden>
>>
>> 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 <address@hidden>
>> Message-id: address@hidden
>> Reviewed-by: Alberto Garcia <address@hidden>
>> Signed-off-by: Max Reitz <address@hidden>
>> ---
>> tests/qemu-iotests/118 | 184
>> +++++++++++++++++++++++--------------------------
>> tests/qemu-iotests/155 | 60 ++++++++--------
>
> This broke 155 on s390:
>
> -...................
> +EEEEEEEEEEEEEEEEEEE
> +======================================================================
> +ERROR: testFull (__main__.TestBlockdevMirrorBacking)
> +----------------------------------------------------------------------
> +Traceback (most recent call last):
> + File "155", line 68, in setUp
> + self.vm.launch()
> + File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qemu.py",
> line 203, in launch
> + self._post_launch()
> + File
> "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qtest.py", line
> 100, in _post_launch
> + super(QEMUQtestMachine, self)._post_launch()
> + File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qemu.py",
> line 181, in _post_launch
> + self._qmp.accept()
> + File
> "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qmp/qmp.py", line
> 157, in accept
> + return self.__negotiate_capabilities()
> + File
> "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qmp/qmp.py", line
> 75, in __negotiate_capabilities
> + resp = self.cmd('qmp_capabilities')
> + File
> "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qmp/qmp.py", line
> 191, in cmd
> + return self.cmd_obj(qmp_cmd)
> + File
> "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qmp/qmp.py", line
> 174, in cmd_obj
> + resp = self.__json_read()
> + File
> "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qmp/qmp.py", line
> 82, in __json_read
> + data = self.__sockfile.readline()
> + File "/usr/lib64/python2.7/socket.py", line 451, in readline
> + data = self._sock.recv(self._rbufsize)
> +error: [Errno 104] Connection reset by peer
> [...]
>
>
>
>> 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 = os.path.join(iotests.test_dir, 'test0.img')
>> new_img = os.path.join(iotests.test_dir, 'test1.img')
>>
>> +def interface_to_device_name(interface):
>> + if interface == 'ide':
>> + return 'ide-cd'
>> + elif interface == 'floppy':
>> + return 'floppy'
>> + else:
>> + return None
>> +
>> class ChangeBaseClass(iotests.QMPTestCase):
>> has_opened = False
>> has_closed = False
>> @@ -63,7 +71,7 @@ class ChangeBaseClass(iotests.QMPTestCase):
>>
>> class GeneralChangeTestsBaseClass(ChangeBaseClass):
>>
>> - device_name = None
>> + device_name = 'qdev0'
>>
>> def test_change(self):
>> result = self.vm.qmp('change', device='drive0', target=new_img,
>> @@ -79,14 +87,9 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> new_img)
>>
>> def test_blockdev_change_medium(self):
>> - if self.device_name is not None:
>> - result = self.vm.qmp('blockdev-change-medium',
>> - id=self.device_name, filename=new_img,
>> - format=iotests.imgfmt)
>> - else:
>> - result = self.vm.qmp('blockdev-change-medium',
>> - device='drive0', filename=new_img,
>> - format=iotests.imgfmt)
>> + result = self.vm.qmp('blockdev-change-medium',
>> + id=self.device_name, filename=new_img,
>> + format=iotests.imgfmt)
>>
>> self.assert_qmp(result, 'return', {})
>>
>> @@ -99,10 +102,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> new_img)
>>
>> def test_eject(self):
>> - if self.device_name is not None:
>> - result = self.vm.qmp('eject', id=self.device_name, force=True)
>> - else:
>> - result = self.vm.qmp('eject', device='drive0', force=True)
>> + result = self.vm.qmp('eject', id=self.device_name, force=True)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_open()
>> @@ -113,10 +113,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> self.assert_qmp_absent(result, 'return[0]/inserted')
>>
>> def test_tray_eject_change(self):
>> - if self.device_name is not None:
>> - result = self.vm.qmp('eject', id=self.device_name, force=True)
>> - else:
>> - result = self.vm.qmp('eject', device='drive0', force=True)
>> + result = self.vm.qmp('eject', id=self.device_name, force=True)
>> self.assert_qmp(result, 'return', {})
>>
>> 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')
>>
>> - if self.device_name is not None:
>> - result = self.vm.qmp('blockdev-change-medium',
>> id=self.device_name,
>> - filename=new_img, format=iotests.imgfmt)
>> - else:
>> - result = self.vm.qmp('blockdev-change-medium', device='drive0',
>> - filename=new_img, format=iotests.imgfmt)
>> + result = self.vm.qmp('blockdev-change-medium', id=self.device_name,
>> + filename=new_img, format=iotests.imgfmt)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_close()
>> @@ -142,12 +135,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> new_img)
>>
>> def test_tray_open_close(self):
>> - if self.device_name is not None:
>> - result = self.vm.qmp('blockdev-open-tray',
>> - id=self.device_name, force=True)
>> - else:
>> - result = self.vm.qmp('blockdev-open-tray',
>> - device='drive0', force=True)
>> + result = self.vm.qmp('blockdev-open-tray',
>> + id=self.device_name, force=True)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_open()
>> @@ -160,10 +149,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> else:
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> - if self.device_name is not None:
>> - result = self.vm.qmp('blockdev-close-tray', id=self.device_name)
>> - else:
>> - result = self.vm.qmp('blockdev-close-tray', device='drive0')
>> + result = self.vm.qmp('blockdev-close-tray', id=self.device_name)
>> self.assert_qmp(result, 'return', {})
>>
>> 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',
>> old_img)
>>
>> def test_tray_eject_close(self):
>> - result = self.vm.qmp('eject', device='drive0', force=True)
>> + result = self.vm.qmp('eject', id=self.device_name, force=True)
>> self.assert_qmp(result, 'return', {})
>>
>> 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')
>>
>> - if self.device_name is not None:
>> - result = self.vm.qmp('blockdev-close-tray', id=self.device_name)
>> - else:
>> - result = self.vm.qmp('blockdev-close-tray', device='drive0')
>> + result = self.vm.qmp('blockdev-close-tray', id=self.device_name)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_close()
>> @@ -202,7 +185,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> self.assert_qmp_absent(result, 'return[0]/inserted')
>>
>> def test_tray_open_change(self):
>> - result = self.vm.qmp('blockdev-open-tray', device='drive0',
>> force=True)
>> + result = self.vm.qmp('blockdev-open-tray', id=self.device_name,
>> + force=True)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_open()
>> @@ -215,7 +199,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> else:
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> - result = self.vm.qmp('blockdev-change-medium', device='drive0',
>> + result = self.vm.qmp('blockdev-change-medium', id=self.device_name,
>> filename=new_img,
>>
>> format=iotests.imgfmt)
>> self.assert_qmp(result, 'return', {})
>> @@ -235,12 +219,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> 'driver': 'file'})
>> self.assert_qmp(result, 'return', {})
>>
>> - if self.device_name is not None:
>> - result = self.vm.qmp('blockdev-open-tray',
>> - id=self.device_name, force=True)
>> - else:
>> - result = self.vm.qmp('blockdev-open-tray',
>> - device='drive0', force=True)
>> + result = self.vm.qmp('blockdev-open-tray',
>> + id=self.device_name, force=True)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_open()
>> @@ -253,11 +233,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> else:
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> - if self.device_name is not None:
>> - result = self.vm.qmp('x-blockdev-remove-medium',
>> - id=self.device_name)
>> - else:
>> - result = self.vm.qmp('x-blockdev-remove-medium',
>> device='drive0')
>> + result = self.vm.qmp('x-blockdev-remove-medium',
>> + id=self.device_name)
>> self.assert_qmp(result, 'return', {})
>>
>> result = 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')
>>
>> - if self.device_name is not None:
>> - result = self.vm.qmp('x-blockdev-insert-medium',
>> - id=self.device_name, node_name='new')
>> - else:
>> - result = self.vm.qmp('x-blockdev-insert-medium',
>> - device='drive0', node_name='new')
>> + result = self.vm.qmp('x-blockdev-insert-medium',
>> + id=self.device_name, node_name='new')
>> self.assert_qmp(result, 'return', {})
>>
>> result = 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_img)
>>
>> - if self.device_name is not None:
>> - result = self.vm.qmp('blockdev-close-tray', id=self.device_name)
>> - else:
>> - result = self.vm.qmp('blockdev-close-tray', device='drive0')
>> + result = self.vm.qmp('blockdev-close-tray', id=self.device_name)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_close()
>> @@ -292,7 +262,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> new_img)
>>
>> def test_close_on_closed(self):
>> - result = self.vm.qmp('blockdev-close-tray', device='drive0')
>> + result = self.vm.qmp('blockdev-close-tray', id=self.device_name)
>> # Should be a no-op
>> self.assert_qmp(result, 'return', {})
>> self.assertEquals(self.vm.get_qmp_events(wait=False), [])
>> @@ -301,7 +271,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> if not self.has_real_tray:
>> return
>>
>> - result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
>> + result = self.vm.qmp('x-blockdev-remove-medium',
>> id=self.device_name)
>> self.assert_qmp(result, 'error/class', 'GenericError')
>>
>> def test_insert_on_closed(self):
>> @@ -315,7 +285,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
>> 'driver': 'file'})
>> self.assert_qmp(result, 'return', {})
>>
>> - result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
>> + result = self.vm.qmp('x-blockdev-insert-medium',
>> id=self.device_name,
>> node_name='new')
>> self.assert_qmp(result, 'error/class', 'GenericError')
>>
>> @@ -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 = iotests.VM()
>> - if interface == 'ide':
>> - self.device_name = 'qdev0'
>> - self.vm.add_drive(old_img, 'media=%s' % media, 'none')
>> - self.vm.add_device('ide-cd,drive=drive0,id=%s' %
>> self.device_name)
>> - else:
>> - self.vm.add_drive(old_img, 'media=%s' % media, interface)
>> + self.vm.add_drive(old_img, 'media=%s' % media, 'none')
>> + self.vm.add_device('%s,drive=drive0,id=%s' %
>> + (interface_to_device_name(interface),
>> + self.device_name))
>> self.vm.launch()
>>
>> def tearDown(self):
>> @@ -347,12 +315,12 @@ class TestInitiallyFilled(GeneralChangeTestsBaseClass):
>> 'driver': 'file'})
>> self.assert_qmp(result, 'return', {})
>>
>> - result = self.vm.qmp('blockdev-open-tray', device='drive0')
>> + result = self.vm.qmp('blockdev-open-tray', id=self.device_name)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_open()
>>
>> - result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
>> + result = self.vm.qmp('x-blockdev-insert-medium',
>> id=self.device_name,
>> node_name='new')
>> self.assert_qmp(result, 'error/class', 'GenericError')
>>
>> @@ -361,7 +329,10 @@ class TestInitiallyEmpty(GeneralChangeTestsBaseClass):
>>
>> def setUp(self, media, interface):
>> qemu_img('create', '-f', iotests.imgfmt, new_img, '1440k')
>> - self.vm = iotests.VM().add_drive(None, 'media=%s' % media,
>> interface)
>> + self.vm = iotests.VM().add_drive(None, 'media=%s' % media, 'none')
>> + self.vm.add_device('%s,drive=drive0,id=%s' %
>> + (interface_to_device_name(interface),
>> + self.device_name))
>> self.vm.launch()
>>
>> def tearDown(self):
>> @@ -369,12 +340,12 @@ class TestInitiallyEmpty(GeneralChangeTestsBaseClass):
>> os.remove(new_img)
>>
>> def test_remove_on_empty(self):
>> - result = self.vm.qmp('blockdev-open-tray', device='drive0')
>> + result = self.vm.qmp('blockdev-open-tray', id=self.device_name)
>> self.assert_qmp(result, 'return', {})
>>
>> self.wait_for_open()
>>
>> - result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
>> + result = self.vm.qmp('x-blockdev-remove-medium',
>> id=self.device_name)
>> # Should be a no-op
>> self.assert_qmp(result, 'return', {})
>>
>> @@ -410,6 +381,8 @@ class TestFloppyInitiallyEmpty(TestInitiallyEmpty):
>> self.has_opened = True
>>
>> class TestChangeReadOnly(ChangeBaseClass):
>> + device_name = '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=disk,read-only=on', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk,read-only=on', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> self.assert_qmp(result, 'return[0]/inserted/ro', True)
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> - result = self.vm.qmp('blockdev-change-medium', device='drive0',
>> + result = self.vm.qmp('blockdev-change-medium', id=self.device_name,
>> filename=new_img,
>>
>> format=iotests.imgfmt,
>>
>> read_only_mode='retain')
>> @@ -444,14 +418,15 @@ class TestChangeReadOnly(ChangeBaseClass):
>>
>> def test_ro_rw_retain(self):
>> os.chmod(old_img, 0444)
>> - self.vm.add_drive(old_img, 'media=disk,read-only=on', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk,read-only=on', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> self.assert_qmp(result, 'return[0]/inserted/ro', True)
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> - result = self.vm.qmp('blockdev-change-medium', device='drive0',
>> + result = self.vm.qmp('blockdev-change-medium', id=self.device_name,
>> filename=new_img,
>>
>> format=iotests.imgfmt,
>>
>> read_only_mode='retain')
>> @@ -463,14 +438,15 @@ class TestChangeReadOnly(ChangeBaseClass):
>>
>> def test_rw_ro_retain(self):
>> os.chmod(new_img, 0444)
>> - self.vm.add_drive(old_img, 'media=disk', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> self.assert_qmp(result, 'return[0]/inserted/ro', False)
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> - result = self.vm.qmp('blockdev-change-medium', device='drive0',
>> + result = self.vm.qmp('blockdev-change-medium', id=self.device_name,
>> filename=new_img,
>>
>> format=iotests.imgfmt,
>>
>> read_only_mode='retain')
>> @@ -484,7 +460,8 @@ class TestChangeReadOnly(ChangeBaseClass):
>>
>> def test_ro_rw(self):
>> os.chmod(old_img, 0444)
>> - self.vm.add_drive(old_img, 'media=disk,read-only=on', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk,read-only=on', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> @@ -492,7 +469,7 @@ class TestChangeReadOnly(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> result = self.vm.qmp('blockdev-change-medium',
>> - device='drive0',
>> + id=self.device_name,
>> filename=new_img,
>> format=iotests.imgfmt,
>> read_only_mode='read-write')
>> @@ -504,7 +481,8 @@ class TestChangeReadOnly(ChangeBaseClass):
>>
>> def test_rw_ro(self):
>> os.chmod(new_img, 0444)
>> - self.vm.add_drive(old_img, 'media=disk', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> @@ -512,7 +490,7 @@ class TestChangeReadOnly(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> result = self.vm.qmp('blockdev-change-medium',
>> - device='drive0',
>> + id=self.device_name,
>> filename=new_img,
>> format=iotests.imgfmt,
>> read_only_mode='read-only')
>> @@ -523,7 +501,8 @@ class TestChangeReadOnly(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> new_img)
>>
>> def test_make_rw_ro(self):
>> - self.vm.add_drive(old_img, 'media=disk', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> @@ -531,7 +510,7 @@ class TestChangeReadOnly(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> result = self.vm.qmp('blockdev-change-medium',
>> - device='drive0',
>> + id=self.device_name,
>> filename=new_img,
>> format=iotests.imgfmt,
>> read_only_mode='read-only')
>> @@ -543,7 +522,8 @@ class TestChangeReadOnly(ChangeBaseClass):
>>
>> def test_make_ro_rw(self):
>> os.chmod(new_img, 0444)
>> - self.vm.add_drive(old_img, 'media=disk', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> @@ -551,7 +531,7 @@ class TestChangeReadOnly(ChangeBaseClass):
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> result = self.vm.qmp('blockdev-change-medium',
>> - device='drive0',
>> + id=self.device_name,
>> filename=new_img,
>> format=iotests.imgfmt,
>> read_only_mode='read-write')
>> @@ -563,14 +543,15 @@ class TestChangeReadOnly(ChangeBaseClass):
>>
>> def test_make_rw_ro_by_retain(self):
>> os.chmod(old_img, 0444)
>> - self.vm.add_drive(old_img, 'media=disk,read-only=on', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk,read-only=on', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> self.assert_qmp(result, 'return[0]/inserted/ro', True)
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> - result = self.vm.qmp('blockdev-change-medium', device='drive0',
>> + result = self.vm.qmp('blockdev-change-medium', id=self.device_name,
>> filename=new_img,
>>
>> format=iotests.imgfmt,
>>
>> read_only_mode='retain')
>> @@ -582,14 +563,15 @@ class TestChangeReadOnly(ChangeBaseClass):
>>
>> def test_make_ro_rw_by_retain(self):
>> os.chmod(new_img, 0444)
>> - self.vm.add_drive(old_img, 'media=disk', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> self.assert_qmp(result, 'return[0]/inserted/ro', False)
>> self.assert_qmp(result, 'return[0]/inserted/image/filename',
>> old_img)
>>
>> - result = self.vm.qmp('blockdev-change-medium', device='drive0',
>> + result = self.vm.qmp('blockdev-change-medium', id=self.device_name,
>> filename=new_img,
>>
>> format=iotests.imgfmt,
>>
>> read_only_mode='retain')
>> @@ -601,7 +583,8 @@ class TestChangeReadOnly(ChangeBaseClass):
>>
>> def test_rw_ro_cycle(self):
>> os.chmod(new_img, 0444)
>> - self.vm.add_drive(old_img, 'media=disk', 'floppy')
>> + self.vm.add_drive(old_img, 'media=disk', 'none')
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = 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_img)
>>
>> - result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
>> + result = self.vm.qmp('x-blockdev-remove-medium',
>> id=self.device_name)
>> self.assert_qmp(result, 'return', {})
>>
>> result = self.vm.qmp('query-block')
>> self.assert_qmp_absent(result, 'return[0]/inserted')
>>
>> - result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
>> + result = self.vm.qmp('x-blockdev-insert-medium',
>> id=self.device_name,
>> node_name='new')
>> self.assert_qmp(result, 'return', {})
>>
>> @@ -644,11 +627,14 @@ TestInitiallyEmpty = None
>>
>>
>> class TestBlockJobsAfterCycle(ChangeBaseClass):
>> + device_name = 'qdev0'
>> +
>> def setUp(self):
>> - qemu_img('create', '-f', iotests.imgfmt, old_img, '1M')
>> + qemu_img('create', '-f', iotests.imgfmt, old_img, '1440K')
>>
>> self.vm = iotests.VM()
>> self.vm.add_drive_raw("id=drive0,driver=null-co,if=none")
>> + self.vm.add_device('floppy,drive=drive0,id=%s' % self.device_name)
>> self.vm.launch()
>>
>> result = self.vm.qmp('query-block')
>> @@ -656,7 +642,7 @@ class TestBlockJobsAfterCycle(ChangeBaseClass):
>>
>> # For device-less BBs, calling blockdev-open-tray or
>> blockdev-close-tray
>> # is not necessary
>> - result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
>> + result = self.vm.qmp('x-blockdev-remove-medium',
>> id=self.device_name)
>> self.assert_qmp(result, 'return', {})
>>
>> result = self.vm.qmp('query-block')
>> @@ -669,7 +655,7 @@ class TestBlockJobsAfterCycle(ChangeBaseClass):
>> 'driver': 'file'})
>> self.assert_qmp(result, 'return', {})
>>
>> - result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
>> + result = self.vm.qmp('x-blockdev-insert-medium',
>> id=self.device_name,
>> node_name='node0')
>> self.assert_qmp(result, 'return', {})
>>
>> 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 = None
>>
>> 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_img)
>> qemu_img('create', '-f', iotests.imgfmt, '-b', back1_img, back2_img)
>> qemu_img('create', '-f', iotests.imgfmt, '-b', back2_img,
>> source_img)
>>
>> self.vm = 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 = self.vm.qmp('blockdev-add',
>> - node_name='source',
>> - driver=iotests.imgfmt,
>> - file={'driver': 'file',
>> - 'filename': source_img})
>> - self.assert_qmp(result, 'return', {})
>> -
>> - result = self.vm.qmp('x-blockdev-insert-medium',
>> - device='drive0', node_name='source')
>> - self.assert_qmp(result, 'return', {})
>> + blockdev = {'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=qdev0,drive=source')
>> + self.vm.launch()
>>
>> self.assertIntactSourceBackingChain()
>>
>> 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,
>> '1440K')
>>
>> if self.cmd == 'blockdev-mirror':
>> options = { 'node-name': 'target',
>> @@ -104,11 +98,11 @@ class BaseClass(iotests.QMPTestCase):
>> except OSError:
>> pass
>>
>> - def findBlockNode(self, node_name, id=None):
>> - if id:
>> + def findBlockNode(self, node_name, qdev=None):
>> + if qdev:
>> result = self.vm.qmp('query-block')
>> for device in result['return']:
>> - if device['device'] == id:
>> + if device['qdev'] == 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'] == node_name:
>> return node
>>
>> - self.fail('Cannot find node %s/%s' % (id, node_name))
>> + self.fail('Cannot find node %s/%s' % (qdev, node_name))
>>
>> def assertIntactSourceBackingChain(self):
>> node = self.findBlockNode('source')
>> @@ -155,22 +149,23 @@ class BaseClass(iotests.QMPTestCase):
>> class MirrorBaseClass(BaseClass):
>> def runMirror(self, sync):
>> if self.cmd == 'blockdev-mirror':
>> - result = self.vm.qmp(self.cmd, device='drive0', sync=sync,
>> - target='target')
>> + result = self.vm.qmp(self.cmd, job_id='mirror-job',
>> device='source',
>> + sync=sync, target='target')
>> else:
>> if self.existing:
>> mode = 'existing'
>> else:
>> mode = 'absolute-paths'
>> - result = self.vm.qmp(self.cmd, device='drive0', sync=sync,
>> - target=target_img, format=iotests.imgfmt,
>> - mode=mode, node_name='target')
>> + result = self.vm.qmp(self.cmd, job_id='mirror-job',
>> device='source',
>> + sync=sync, target=target_img,
>> + format=iotests.imgfmt, mode=mode,
>> + node_name='target')
>>
>> self.assert_qmp(result, 'return', {})
>>
>> self.vm.event_wait('BLOCK_JOB_READY')
>>
>> - result = self.vm.qmp('block-job-complete', device='drive0')
>> + result = self.vm.qmp('block-job-complete', device='mirror-job')
>> self.assert_qmp(result, 'return', {})
>>
>> self.vm.event_wait('BLOCK_JOB_COMPLETED')
>> @@ -178,21 +173,21 @@ class MirrorBaseClass(BaseClass):
>> def testFull(self):
>> self.runMirror('full')
>>
>> - node = self.findBlockNode('target', 'drive0')
>> + node = self.findBlockNode('target', 'qdev0')
>> self.assertCorrectBackingImage(node, None)
>> self.assertIntactSourceBackingChain()
>>
>> def testTop(self):
>> self.runMirror('top')
>>
>> - node = self.findBlockNode('target', 'drive0')
>> + node = self.findBlockNode('target', 'qdev0')
>> self.assertCorrectBackingImage(node, back2_img)
>> self.assertIntactSourceBackingChain()
>>
>> def testNone(self):
>> self.runMirror('none')
>>
>> - node = self.findBlockNode('target', 'drive0')
>> + node = self.findBlockNode('target', 'qdev0')
>> self.assertCorrectBackingImage(node, source_img)
>> self.assertIntactSourceBackingChain()
>>
>> @@ -233,17 +228,18 @@ class TestCommit(BaseClass):
>> existing = False
>>
>> def testCommit(self):
>> - result = self.vm.qmp('block-commit', device='drive0',
>> base=back1_img)
>> + result = self.vm.qmp('block-commit', job_id='commit-job',
>> + device='source', base=back1_img)
>> self.assert_qmp(result, 'return', {})
>>
>> self.vm.event_wait('BLOCK_JOB_READY')
>>
>> - result = self.vm.qmp('block-job-complete', device='drive0')
>> + result = self.vm.qmp('block-job-complete', device='commit-job')
>> self.assert_qmp(result, 'return', {})
>>
>> self.vm.event_wait('BLOCK_JOB_COMPLETED')
>>
>> - node = self.findBlockNode(None, 'drive0')
>> + node = self.findBlockNode(None, 'qdev0')
>> self.assert_qmp(node, 'image' + '/backing-image' * 0 + '/filename',
>> back1_img)
>> self.assert_qmp(node, 'image' + '/backing-image' * 1 + '/filename',
>>