From: Max Reitz <mreitz@redhat.com>
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 <mreitz@redhat.com>
Message-id: 20171110224302.14424-2-mreitz@redhat.com
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
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 = 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',
--
2.13.6
On 01/23/2018 03:01 PM, Kevin Wolf wrote:
> From: Max Reitz <mreitz@redhat.com>
>
> 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 <mreitz@redhat.com>
> Message-id: 20171110224302.14424-2-mreitz@redhat.com
> Reviewed-by: Alberto Garcia <berto@igalia.com>
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
> 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',
>
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 <mreitz@redhat.com>
>>
>> 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 <mreitz@redhat.com>
>> Message-id: 20171110224302.14424-2-mreitz@redhat.com
>> Reviewed-by: Alberto Garcia <berto@igalia.com>
>> Signed-off-by: Max Reitz <mreitz@redhat.com>
>> ---
>> 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',
>>
On 2018-02-12 12:33, Christian Borntraeger wrote: > Adding Max and Alberto, > > I think the issue is that on s390 you cannot add a floppy Thanks for letting me know. I don't know why I resorted to floppy when virtio would have worked (in this test) just as well... Max
© 2016 - 2026 Red Hat, Inc.