From: Pavel Fedin
Date: Tue, 15 Sep 2015 06:16:02 +0000 (+0200)
Subject: tests: split out common qemu driver initialization
X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=5b7bf2087783a4156521d30c41f06e5a81870678;p=libvirt.git
tests: split out common qemu driver initialization
Two utility functions are introduced for proper initialization and
cleanup of the driver.
Signed-off-by: Pavel Fedin
Signed-off-by: Ján Tomko
---
diff --git a/tests/domainsnapshotxml2xmltest.c b/tests/domainsnapshotxml2xmltest.c
index 3955a19a30..cd91cfae48 100644
--- a/tests/domainsnapshotxml2xmltest.c
+++ b/tests/domainsnapshotxml2xmltest.c
@@ -152,13 +152,11 @@ mymain(void)
{
int ret = 0;
- if ((driver.caps = testQemuCapsInit()) == NULL)
+ if (qemuTestDriverInit(&driver) < 0)
return EXIT_FAILURE;
- if (!(driver.xmlopt = virQEMUDriverCreateXMLConf(&driver))) {
- virObjectUnref(driver.caps);
- return EXIT_FAILURE;
- }
+ /* TODO: test with format probing disabled too */
+ driver.config->allowDiskFormatProbing = true;
if (VIR_ALLOC(testSnapshotXMLVariableLineRegex) < 0)
goto cleanup;
@@ -227,8 +225,7 @@ mymain(void)
if (testSnapshotXMLVariableLineRegex)
regfree(testSnapshotXMLVariableLineRegex);
VIR_FREE(testSnapshotXMLVariableLineRegex);
- virObjectUnref(driver.caps);
- virObjectUnref(driver.xmlopt);
+ qemuTestDriverFree(&driver);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/tests/qemuagenttest.c b/tests/qemuagenttest.c
index 52cc8343bb..bd66fcb115 100644
--- a/tests/qemuagenttest.c
+++ b/tests/qemuagenttest.c
@@ -908,8 +908,8 @@ testQemuAgentGetInterfaces(const void *data)
static int
mymain(void)
{
+ virQEMUDriver driver;
int ret = 0;
- virDomainXMLOptionPtr xmlopt;
#if !WITH_YAJL
fputs("libvirt not compiled with yajl, skipping this test\n", stderr);
@@ -917,13 +917,13 @@ mymain(void)
#endif
if (virThreadInitialize() < 0 ||
- !(xmlopt = virQEMUDriverCreateXMLConf(NULL)))
+ qemuTestDriverInit(&driver) < 0)
return EXIT_FAILURE;
virEventRegisterDefaultImpl();
-#define DO_TEST(name) \
- if (virtTestRun(# name, testQemuAgent ## name, xmlopt) < 0) \
+#define DO_TEST(name) \
+ if (virtTestRun(# name, testQemuAgent ## name, driver.xmlopt) < 0) \
ret = -1
DO_TEST(FSFreeze);
@@ -938,7 +938,7 @@ mymain(void)
DO_TEST(Timeout); /* Timeout should always be called last */
- virObjectUnref(xmlopt);
+ qemuTestDriverFree(&driver);
return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c
index ea8591366b..96453e55f1 100644
--- a/tests/qemuargv2xmltest.c
+++ b/tests/qemuargv2xmltest.c
@@ -145,15 +145,9 @@ mymain(void)
{
int ret = 0;
- driver.config = virQEMUDriverConfigNew(false);
- if (driver.config == NULL)
+ if (qemuTestDriverInit(&driver) < 0)
return EXIT_FAILURE;
- if ((driver.caps = testQemuCapsInit()) == NULL)
- return EXIT_FAILURE;
-
- if (!(driver.xmlopt = virQEMUDriverCreateXMLConf(&driver)))
- return EXIT_FAILURE;
# define DO_TEST_FULL(name, flags) \
do { \
@@ -298,9 +292,7 @@ mymain(void)
DO_TEST("machine-deakeywrap-off-argv");
DO_TEST("machine-keywrap-none-argv");
- virObjectUnref(driver.config);
- virObjectUnref(driver.caps);
- virObjectUnref(driver.xmlopt);
+ qemuTestDriverFree(&driver);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index 48318bd78b..476dee8be5 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -338,14 +338,11 @@ mymain(void)
#endif
if (virThreadInitialize() < 0 ||
- !(driver.caps = testQemuCapsInit()) ||
- !(driver.xmlopt = virQEMUDriverCreateXMLConf(&driver)))
+ qemuTestDriverInit(&driver) < 0)
return EXIT_FAILURE;
virEventRegisterDefaultImpl();
- if (!(driver.config = virQEMUDriverConfigNew(false)))
- return EXIT_FAILURE;
VIR_FREE(driver.config->spiceListen);
VIR_FREE(driver.config->vncListen);
/* some dummy values from 'config file' */
@@ -486,9 +483,7 @@ mymain(void)
"device_del", QMP_DEVICE_DELETED("scsi0-0-0-5") QMP_OK,
"human-monitor-command", HMP(""));
- virObjectUnref(driver.caps);
- virObjectUnref(driver.xmlopt);
- virObjectUnref(driver.config);
+ qemuTestDriverFree(&driver);
return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index d4432df270..cd123560db 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -483,8 +483,7 @@ mymain(void)
return EXIT_FAILURE;
}
- driver.config = virQEMUDriverConfigNew(false);
- if (driver.config == NULL)
+ if (qemuTestDriverInit(&driver) < 0)
return EXIT_FAILURE;
driver.privileged = true;
@@ -499,10 +498,6 @@ mymain(void)
if (VIR_STRDUP_QUIET(driver.config->spiceTLSx509certdir, "/etc/pki/libvirt-spice") < 0)
return EXIT_FAILURE;
- if ((driver.caps = testQemuCapsInit()) == NULL)
- return EXIT_FAILURE;
- if (!(driver.xmlopt = virQEMUDriverCreateXMLConf(&driver)))
- return EXIT_FAILURE;
VIR_FREE(driver.config->stateDir);
if (VIR_STRDUP_QUIET(driver.config->stateDir, "/nowhere") < 0)
return EXIT_FAILURE;
@@ -1761,9 +1756,7 @@ mymain(void)
QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_DRIVE, QEMU_CAPS_VIRTIO_SCSI,
QEMU_CAPS_DEVICE, QEMU_CAPS_VIRTIO_CCW, QEMU_CAPS_VIRTIO_S390);
- virObjectUnref(driver.config);
- virObjectUnref(driver.caps);
- virObjectUnref(driver.xmlopt);
+ qemuTestDriverFree(&driver);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 5a20ebc152..243f1f16ff 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -302,11 +302,11 @@ mymain(void)
int ret = 0;
struct testInfo info;
- if ((driver.caps = testQemuCapsInit()) == NULL)
+ if (qemuTestDriverInit(&driver) < 0)
return EXIT_FAILURE;
- if (!(driver.xmlopt = virQEMUDriverCreateXMLConf(&driver)))
- return EXIT_FAILURE;
+ /* TODO: test with format probing disabled too */
+ driver.config->allowDiskFormatProbing = true;
# define DO_TEST_FULL(name, is_different, when) \
do { \
@@ -631,8 +631,7 @@ mymain(void)
DO_TEST("memory-hotplug-dimm");
DO_TEST("net-udp");
- virObjectUnref(driver.caps);
- virObjectUnref(driver.xmlopt);
+ qemuTestDriverFree(&driver);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/tests/qemuxmlnstest.c b/tests/qemuxmlnstest.c
index a68e762015..40e32dc519 100644
--- a/tests/qemuxmlnstest.c
+++ b/tests/qemuxmlnstest.c
@@ -201,15 +201,12 @@ mymain(void)
if (!abs_top_srcdir)
abs_top_srcdir = abs_srcdir "/..";
- if (!(driver.config = virQEMUDriverConfigNew(false)))
+ if (qemuTestDriverInit(&driver) < 0)
return EXIT_FAILURE;
+
VIR_FREE(driver.config->libDir);
if (VIR_STRDUP_QUIET(driver.config->libDir, "/tmp") < 0)
return EXIT_FAILURE;
- if ((driver.caps = testQemuCapsInit()) == NULL)
- return EXIT_FAILURE;
- if (!(driver.xmlopt = virQEMUDriverCreateXMLConf(&driver)))
- return EXIT_FAILURE;
# define DO_TEST_FULL(name, migrateFrom, migrateFd, expectError, ...) \
do { \
@@ -251,9 +248,7 @@ mymain(void)
DO_TEST("qemu-ns-commandline-ns0", false, NONE);
DO_TEST("qemu-ns-commandline-ns1", false, NONE);
- virObjectUnref(driver.config);
- virObjectUnref(driver.caps);
- virObjectUnref(driver.xmlopt);
+ qemuTestDriverFree(&driver);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index a2f429909a..e357c58069 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -526,4 +526,32 @@ qemuTestParseCapabilities(const char *capsFile)
xmlXPathFreeContext(ctxt);
return NULL;
}
+
+void qemuTestDriverFree(virQEMUDriver *driver)
+{
+ virObjectUnref(driver->xmlopt);
+ virObjectUnref(driver->caps);
+ virObjectUnref(driver->config);
+}
+
+int qemuTestDriverInit(virQEMUDriver *driver)
+{
+ driver->config = virQEMUDriverConfigNew(false);
+ if (!driver->config)
+ return -1;
+
+ driver->caps = testQemuCapsInit();
+ if (!driver->caps)
+ goto error;
+
+ driver->xmlopt = virQEMUDriverCreateXMLConf(driver);
+ if (!driver->xmlopt)
+ goto error;
+
+ return 0;
+
+ error:
+ qemuTestDriverFree(driver);
+ return -1;
+}
#endif
diff --git a/tests/testutilsqemu.h b/tests/testutilsqemu.h
index 0ec5dadd2f..6c2d3b5d2f 100644
--- a/tests/testutilsqemu.h
+++ b/tests/testutilsqemu.h
@@ -16,4 +16,6 @@ extern virCPUDefPtr cpuHaswell;
void testQemuCapsSetCPU(virCapsPtr caps,
virCPUDefPtr hostCPU);
+int qemuTestDriverInit(virQEMUDriver *driver);
+void qemuTestDriverFree(virQEMUDriver *driver);
#endif