iotests: Create VM.blockdev_create()
authorKevin Wolf <kwolf@redhat.com>
Mon, 16 Dec 2019 16:53:41 +0000 (17:53 +0100)
committerKevin Wolf <kwolf@redhat.com>
Thu, 19 Dec 2019 13:32:43 +0000 (14:32 +0100)
We have several almost identical copies of a blockdev_create() function
in different test cases. Time to create one unified function in
iotests.py.

To keep the diff managable, this patch only creates the function and
follow-up patches will convert the individual test cases.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
tests/qemu-iotests/iotests.py

index b46d298766254d1cd3a6b30a179bc16e8454bb65..8739ec661341c19440b60d15aeec598062d656b8 100644 (file)
@@ -643,6 +643,22 @@ class VM(qtest.QEMUQtestMachine):
             elif status == 'null':
                 return error
 
+    # Returns None on success, and an error string on failure
+    def blockdev_create(self, options, job_id='job0', filters=None):
+        if filters is None:
+            filters = [filter_qmp_testfiles]
+        result = self.qmp_log('blockdev-create', filters=filters,
+                              job_id=job_id, options=options)
+
+        if 'return' in result:
+            assert result['return'] == {}
+            job_result = self.run_job(job_id)
+        else:
+            job_result = result['error']
+
+        log("")
+        return job_result
+
     def enable_migration_events(self, name):
         log('Enabling migration QMP events on %s...' % name)
         log(self.qmp('migrate-set-capabilities', capabilities=[