From 4f1b6df127606919c82a54cd73fd99b4cae4fe6c Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 18 Sep 2013 15:11:06 +0200 Subject: [PATCH] qemumonitorjsontest: Test CPU state handling code Signed-off-by: Michal Privoznik --- tests/qemumonitorjsontest.c | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index b287747dc9..0a3f7178b5 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -942,6 +942,61 @@ cleanup: return ret; } +static int +testQemuMonitorJSONCPU(const void *data) +{ + const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data; + qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt); + int ret = -1; + bool running = false; + virDomainPausedReason reason = 0; + + if (qemuMonitorTestAddItem(test, "stop", "{\"return\": {}}") < 0 || + qemuMonitorTestAddItem(test, "query-status", + "{\"return\": {" + " \"status\": \"paused\"," + " \"singlestep\": false," + " \"running\": false}}") < 0 || + qemuMonitorTestAddItem(test, "cont", "{\"return\": {}}") < 0 || + qemuMonitorTestAddItem(test, "query-status", + "{\"return\": {" + " \"status\": \"running\"," + " \"singlestep\": false," + " \"running\": true}}") < 0) + goto cleanup; + + if (qemuMonitorJSONStopCPUs(qemuMonitorTestGetMonitor(test)) < 0) + goto cleanup; + + if (qemuMonitorGetStatus(qemuMonitorTestGetMonitor(test), + &running, &reason) < 0) + goto cleanup; + + if (running) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + "Running was not false"); + goto cleanup; + } + + if (qemuMonitorJSONStartCPUs(qemuMonitorTestGetMonitor(test), NULL) < 0) + goto cleanup; + + if (qemuMonitorGetStatus(qemuMonitorTestGetMonitor(test), + &running, &reason) < 0) + goto cleanup; + + if (!running) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + "Running was not true"); + goto cleanup; + } + + ret = 0; + +cleanup: + qemuMonitorTestFree(test); + return ret; +} static int mymain(void) @@ -977,6 +1032,7 @@ mymain(void) DO_TEST(GetObjectProperty); DO_TEST(SetObjectProperty); DO_TEST(GetDeviceAliases); + DO_TEST(CPU); virObjectUnref(xmlopt);