On 09/18/2013 12:16 PM, Michal Privoznik wrote:
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(a)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);
Same here:
(1) Event returned_null: Function "qemuMonitorTestNew(bool, virDomainXMLOptionPtr,
virDomainObjPtr, virQEMUDriverPtr)" returns null (checked 14 out of 16 times).
[details]
(11) Event var_assigned: Assigning: "test" = null return value from
"qemuMonitorTestNew(bool, virDomainXMLOptionPtr, virDomainObjPtr,
virQEMUDriverPtr)".
+ const char *reply = data->reply;
+ int ret = -1;
+
+ if (!reply)
+ reply = "{\"return\":{}}";
+
+ if (qemuMonitorTestAddItem(test, data->cmd, reply) < 0)
(13) Event dereference: Dereferencing a pointer that might be null "test" when
calling "qemuMonitorTestAddItem(qemuMonitorTestPtr, char const *, char const
*)". [details]
+ 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);