[PATCH 26/30] qemublocktest: Load QMP schema earlier

Peter Krempa pkrempa at redhat.com
Mon Mar 9 16:23:06 UTC 2020


Multiple tests require the schema. Extract the loading into a separate
variable to avoid issues with ownership of the pointer.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 tests/qemublocktest.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c
index 96a3c7fc41..735ba5cdde 100644
--- a/tests/qemublocktest.c
+++ b/tests/qemublocktest.c
@@ -867,6 +867,7 @@ mymain(void)
     struct testQemuBlockBitmapBlockcopyData blockbitmapblockcopydata;
     char *capslatest_x86_64 = NULL;
     virQEMUCapsPtr caps_x86_64 = NULL;
+    g_autoptr(virHashTable) qmp_schema_x86_64 = NULL;
     g_autoptr(virStorageSource) bitmapSourceChain = NULL;

     if (qemuTestDriverInit(&driver) < 0)
@@ -889,6 +890,11 @@ mymain(void)
     diskxmljsondata.qemuCaps = caps_x86_64;
     imagecreatedata.qemuCaps = caps_x86_64;

+    if (!(qmp_schema_x86_64 = testQEMUSchemaLoad("x86_64"))) {
+        ret = -1;
+        goto cleanup;
+    }
+
     virTestCounterReset("qemu storage source xml->json->xml ");

 #define TEST_JSON_FORMAT(tpe, xmlstr) \
@@ -987,10 +993,7 @@ mymain(void)

 #define TEST_DISK_TO_JSON(nme) TEST_DISK_TO_JSON_FULL(nme, false)

-    if (!(diskxmljsondata.schema = testQEMUSchemaLoad("x86_64"))) {
-        ret = -1;
-        goto cleanup;
-    }
+    diskxmljsondata.schema = qmp_schema_x86_64;

     if (virQEMUQAPISchemaPathGet("blockdev-add/arg-type",
                                  diskxmljsondata.schema,
@@ -1049,7 +1052,9 @@ mymain(void)
                        &imagecreatedata) < 0) \
             ret = -1; \
     } while (0)
-    imagecreatedata.schema = diskxmljsondata.schema;
+
+    imagecreatedata.schema = qmp_schema_x86_64;
+
     if (virQEMUQAPISchemaPathGet("blockdev-create/arg-type/options",
                                  imagecreatedata.schema,
                                  &imagecreatedata.schemaroot) < 0 ||
@@ -1202,7 +1207,6 @@ mymain(void)
     TEST_BITMAP_BLOCKCOPY("snapshots-deep", false, "snapshots");

  cleanup:
-    virHashFree(diskxmljsondata.schema);
     qemuTestDriverFree(&driver);
     VIR_FREE(capslatest_x86_64);
     virObjectUnref(caps_x86_64);
-- 
2.24.1




More information about the libvir-list mailing list