[PATCH 10/24] tests: qemuxml2argv: Don't check whether -netdev was QAPIfied repeatedly

Peter Krempa pkrempa at redhat.com
Mon Nov 30 18:55:23 UTC 2020


Check once before looping through the args.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 tests/qemuxml2argvtest.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 42d147243e..ae8eaa7768 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -524,6 +524,7 @@ testCompareXMLToArgvValidateSchema(virQEMUDriverPtr drv,
     g_autoptr(GHashTable) schema = NULL;
     g_autoptr(virCommand) cmd = NULL;
     unsigned int parseFlags = info->parseFlags;
+    bool netdevQAPIfied = false;

     if (info->schemafile)
         schema = testQEMUSchemaLoad(info->schemafile);
@@ -552,6 +553,8 @@ testCompareXMLToArgvValidateSchema(virQEMUDriverPtr drv,
     if (virCommandGetArgList(cmd, &args, &nargs) < 0)
         return -1;

+    netdevQAPIfied = !virQEMUQAPISchemaPathExists("netdev_add/arg-type/type/!string", schema);
+
     for (i = 0; i < nargs; i++) {
         g_auto(virBuffer) debug = VIR_BUFFER_INITIALIZER;
         g_autoptr(virJSONValue) jsonargs = NULL;
@@ -569,13 +572,14 @@ testCompareXMLToArgvValidateSchema(virQEMUDriverPtr drv,

             i++;
         } else if (STREQ(args[i], "-netdev")) {
+            if (!netdevQAPIfied) {
+                i++;
+                continue;
+            }
+
             if (!(jsonargs = virJSONValueFromString(args[i + 1])))
                 return -1;

-            /* skip the validation for pre-QAPIfication cases */
-            if (virQEMUQAPISchemaPathExists("netdev_add/arg-type/type/!string", schema))
-                continue;
-
             if (testQEMUSchemaValidateCommand("netdev_add", jsonargs,
                                               schema, false, false, &debug) < 0) {
                 VIR_TEST_VERBOSE("failed to validate -netdev '%s' against QAPI schema: %s",
-- 
2.28.0




More information about the libvir-list mailing list