+ # 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()
+