[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH 2/2] qemumonitorjsontest: Introduce DO_TEST_SIMPLE



This macro is there to test the simplest monitor functions we have,
those in the form of: int ( *func) (qemuMonitorPtr). So far, we have
seven such functions.

Signed-off-by: Michal Privoznik <mprivozn redhat com>
---
 tests/qemumonitorjsontest.c | 47 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 0a3f717..b451e8e 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -31,6 +31,15 @@
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
+typedef struct _testQemuMonitorJSONSimpleFuncData testQemuMonitorJSONSimpleFuncData;
+typedef testQemuMonitorJSONSimpleFuncData *testQemuMonitorJSONSimpleFuncDataPtr;
+struct _testQemuMonitorJSONSimpleFuncData {
+    const char *cmd;
+    int (* func) (qemuMonitorPtr mon);
+    virDomainXMLOptionPtr xmlopt;
+    const char *reply;
+};
+
 static int
 testQemuMonitorJSONGetStatus(const void *data)
 {
@@ -999,10 +1008,35 @@ cleanup:
 }
 
 static int
+testQemuMonitorJSONSimpleFunc(const void *opaque)
+{
+    const testQemuMonitorJSONSimpleFuncDataPtr data = (const testQemuMonitorJSONSimpleFuncDataPtr) opaque;
+    virDomainXMLOptionPtr xmlopt = data->xmlopt;
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
+    const char *reply = data->reply;
+    int ret = -1;
+
+    if (!reply)
+        reply = "{\"return\":{}}";
+
+    if (qemuMonitorTestAddItem(test, data->cmd, reply) < 0)
+        goto cleanup;
+
+    if (data->func(qemuMonitorTestGetMonitor(test)) < 0)
+        goto cleanup;
+
+    ret = 0;
+cleanup:
+    qemuMonitorTestFree(test);
+    return ret;
+}
+
+static int
 mymain(void)
 {
     int ret = 0;
     virDomainXMLOptionPtr xmlopt;
+    testQemuMonitorJSONSimpleFuncData simpleFunc;
 
 #if !WITH_YAJL
     fputs("libvirt not compiled with yajl, skipping this test\n", stderr);
@@ -1019,6 +1053,12 @@ mymain(void)
     if (virtTestRun(# name, 1, testQemuMonitorJSON ## name, xmlopt) < 0) \
         ret = -1
 
+#define DO_TEST_SIMPLE(CMD, FNC, ...) \
+    simpleFunc = (testQemuMonitorJSONSimpleFuncData) {.cmd = CMD, .func = FNC, \
+                                              .xmlopt = xmlopt, __VA_ARGS__ }; \
+    if (virtTestRun(# FNC, 1, testQemuMonitorJSONSimpleFunc, &simpleFunc) < 0) \
+        ret = -1
+
     DO_TEST(GetStatus);
     DO_TEST(GetVersion);
     DO_TEST(GetMachines);
@@ -1033,6 +1073,13 @@ mymain(void)
     DO_TEST(SetObjectProperty);
     DO_TEST(GetDeviceAliases);
     DO_TEST(CPU);
+    DO_TEST_SIMPLE("qmp_capabilities", qemuMonitorJSONSetCapabilities);
+    DO_TEST_SIMPLE("system_powerdown", qemuMonitorSystemPowerdown);
+    DO_TEST_SIMPLE("system_reset", qemuMonitorJSONSystemReset);
+    DO_TEST_SIMPLE("migrate_cancel", qemuMonitorJSONMigrateCancel);
+    DO_TEST_SIMPLE("inject-nmi", qemuMonitorJSONInjectNMI);
+    DO_TEST_SIMPLE("system_wakeup", qemuMonitorJSONSystemWakeup);
+    DO_TEST_SIMPLE("nbd-server-stop", qemuMonitorJSONNBDServerStop);
 
     virObjectUnref(xmlopt);
 
-- 
1.8.1.5


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]