[PATCH] qemumonitorjsontest: Introduce GetNonExistingCPUData test

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

 



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 <mprivozn@xxxxxxxxxx>
---
 tests/qemumonitorjsontest.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 4cdb938..2152e4a 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);
-- 
1.8.3.2

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]