]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: qemumonitorjson: Do some useful testing in the 'simple' tests
authorPeter Krempa <pkrempa@redhat.com>
Thu, 22 Mar 2018 18:07:21 +0000 (19:07 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 23 Mar 2018 13:52:07 +0000 (14:52 +0100)
The 'simple' monitor tests were quite useless, since the code did not
even check whether the correct command was called.

This patch uses the QAPI schema validator to validate that the arguments
are in format according to the schema.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
tests/qemumonitorjsontest.c

index 79e84e5169b2fb063d991a4a5c16353247897511..0afdc80038d8518218ec3676639e8f50a8c1dfed 100644 (file)
@@ -42,6 +42,7 @@ struct _testQemuMonitorJSONSimpleFuncData {
     int (* func) (qemuMonitorPtr mon);
     virDomainXMLOptionPtr xmlopt;
     const char *reply;
+    virHashTablePtr schema;
 };
 
 const char *queryBlockReply =
@@ -1266,7 +1267,7 @@ testQemuMonitorJSONSimpleFunc(const void *opaque)
     testQemuMonitorJSONSimpleFuncDataPtr data =
         (testQemuMonitorJSONSimpleFuncDataPtr) opaque;
     virDomainXMLOptionPtr xmlopt = data->xmlopt;
-    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSchema(xmlopt, data->schema);
     const char *reply = data->reply;
     int ret = -1;
 
@@ -2896,6 +2897,13 @@ mymain(void)
 
     virEventRegisterDefaultImpl();
 
+    if (!(qapiData.schema = testQEMUSchemaLoad())) {
+        VIR_TEST_VERBOSE("failed to load qapi schema\n");
+        ret = -1;
+        goto cleanup;
+    }
+    simpleFunc.schema = qapiData.schema;
+
 #define DO_TEST(name) \
     if (virTestRun(# name, testQemuMonitorJSON ## name, driver.xmlopt) < 0) \
         ret = -1
@@ -3042,11 +3050,6 @@ mymain(void)
             ret = -1; \
     } while (0)
 
-    if (!(qapiData.schema = testQEMUSchemaLoad())) {
-        VIR_TEST_VERBOSE("failed to load qapi schema\n");
-        ret = -1;
-        goto cleanup;
-    }
 
     DO_TEST_QAPI_SCHEMA("string", "trace-event-get-state/arg-type", true,
                         "{\"name\":\"test\"}");