|
@@ -42,7 +42,7 @@ class TestSingleDrive(iotests.QMPTestCase):
|
|
|
def setUp(self):
|
|
|
iotests.create_image(backing_img, self.image_len)
|
|
|
qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' % backing_img, test_img)
|
|
|
- self.vm = iotests.VM().add_drive(test_img)
|
|
|
+ self.vm = iotests.VM().add_drive(test_img, "node-name=top,backing.node-name=base")
|
|
|
if iotests.qemu_default_machine == 'pc':
|
|
|
self.vm.add_drive(None, 'media=cdrom', 'ide')
|
|
|
self.vm.launch()
|
|
@@ -169,6 +169,42 @@ class TestSingleDrive(iotests.QMPTestCase):
|
|
|
self.assertTrue(iotests.compare_images(test_img, target_img),
|
|
|
'target image does not match source after mirroring')
|
|
|
|
|
|
+ # Tests that the insertion of the mirror_top filter node doesn't make a
|
|
|
+ # difference to query-block
|
|
|
+ def test_implicit_node(self):
|
|
|
+ self.assert_no_active_block_jobs()
|
|
|
+
|
|
|
+ result = self.vm.qmp(self.qmp_cmd, device='drive0', sync='full',
|
|
|
+ target=self.qmp_target)
|
|
|
+ self.assert_qmp(result, 'return', {})
|
|
|
+
|
|
|
+ result = self.vm.qmp('query-block')
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/file', test_img)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/drv', iotests.imgfmt)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/backing_file', backing_img)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/backing_file_depth', 1)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/image/filename', test_img)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/image/backing-image/filename', backing_img)
|
|
|
+
|
|
|
+ result = self.vm.qmp('query-blockstats')
|
|
|
+ self.assert_qmp(result, 'return[0]/node-name', 'top')
|
|
|
+ self.assert_qmp(result, 'return[0]/backing/node-name', 'base')
|
|
|
+
|
|
|
+ self.cancel_and_wait(force=True)
|
|
|
+ result = self.vm.qmp('query-block')
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/file', test_img)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/drv', iotests.imgfmt)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/backing_file', backing_img)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/backing_file_depth', 1)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/image/filename', test_img)
|
|
|
+ self.assert_qmp(result, 'return[0]/inserted/image/backing-image/filename', backing_img)
|
|
|
+
|
|
|
+ result = self.vm.qmp('query-blockstats')
|
|
|
+ self.assert_qmp(result, 'return[0]/node-name', 'top')
|
|
|
+ self.assert_qmp(result, 'return[0]/backing/node-name', 'base')
|
|
|
+
|
|
|
+ self.vm.shutdown()
|
|
|
+
|
|
|
def test_medium_not_found(self):
|
|
|
if iotests.qemu_default_machine != 'pc':
|
|
|
return
|