From 88a0894c4d68677a5a96a4e1fc0b64e21159be05 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 19 Nov 2013 16:30:28 +0100 Subject: [PATCH] qemumonitorjsontest: Introduce GetNonExistingCPUData test In the 730af8f2cd commit we are fixing broken qemu startup on systems with ancient qemu. This commit introduces the regression test for that specific case to make sure we don't break it again. Signed-off-by: Michal Privoznik --- tests/qemumonitorjsontest.c | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 4cdb938611..2152e4a421 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2038,6 +2038,49 @@ cleanup: return ret; } +static int +testQemuMonitorJSONGetNonExistingCPUData(const void *opaque) +{ + virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr) opaque; + qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt); + virCPUDataPtr cpuData = NULL; + int rv, ret = -1; + + if (!test) + return -1; + + if (qemuMonitorTestAddItem(test, "qom-list", + "{" + " \"id\": \"libvirt-7\"," + " \"error\": {" + " \"class\": \"CommandNotFound\"," + " \"desc\": \"The command qom-list has not been found\"" + " }" + "}") < 0) + goto cleanup; + + rv = qemuMonitorJSONGetGuestCPU(qemuMonitorTestGetMonitor(test), + VIR_ARCH_X86_64, + &cpuData); + if (rv != -2) { + virReportError(VIR_ERR_INTERNAL_ERROR, + "Unexpected return value %d, expecting -2", rv); + goto cleanup; + } + + if (cpuData) { + virReportError(VIR_ERR_INTERNAL_ERROR, + "Unexpected allocation of data = %p, expecting NULL", + cpuData); + goto cleanup; + } + + ret = 0; +cleanup: + qemuMonitorTestFree(test); + cpuDataFree(cpuData); + return ret; +} static int mymain(void) @@ -2094,6 +2137,7 @@ mymain(void) DO_TEST(SetObjectProperty); DO_TEST(GetDeviceAliases); DO_TEST(CPU); + DO_TEST(GetNonExistingCPUData); DO_TEST_SIMPLE("qmp_capabilities", qemuMonitorJSONSetCapabilities); DO_TEST_SIMPLE("system_powerdown", qemuMonitorJSONSystemPowerdown); DO_TEST_SIMPLE("system_reset", qemuMonitorJSONSystemReset);