]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: Use qemu:///embed to simplify fakerootdir management
authorAndrea Bolognani <abologna@redhat.com>
Wed, 6 May 2020 11:38:40 +0000 (13:38 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Thu, 7 May 2020 17:20:56 +0000 (19:20 +0200)
Now that the QEMU driver natively supports storing all its runtime
data inside an arbitrary directory, we can avoid having multiple
copies of the same logic in the test suite.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tests/qemuhotplugtest.c
tests/qemumemlocktest.c
tests/qemuxml2argvtest.c
tests/qemuxml2xmltest.c
tests/testutilsqemu.c

index cf87de187f152e4fab1c05f94068b2b2e0e1abaa..a67b6ce607997cd28175b65bf661462b6c57f103 100644 (file)
@@ -594,8 +594,6 @@ testQemuHotplugCpuIndividual(const void *opaque)
     return ret;
 }
 
-#define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
-
 
 static int
 mymain(void)
@@ -604,18 +602,8 @@ mymain(void)
     int ret = 0;
     struct qemuHotplugTestData data = {0};
     struct testQemuHotplugCpuParams cpudata;
-    g_autofree char *fakerootdir = NULL;
     g_autoptr(virQEMUDriverConfig) cfg = NULL;
 
-    fakerootdir = g_strdup(FAKEROOTDIRTEMPLATE);
-
-    if (!g_mkdtemp(fakerootdir)) {
-        fprintf(stderr, "Cannot create fakerootdir");
-        abort();
-    }
-
-    g_setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, TRUE);
-
     if (qemuTestDriverInit(&driver) < 0)
         return EXIT_FAILURE;
 
@@ -891,9 +879,6 @@ mymain(void)
     DO_TEST_CPU_INDIVIDUAL("ppc64-modern-individual", "16-22", true, true, true);
     DO_TEST_CPU_INDIVIDUAL("ppc64-modern-individual", "17", true, true, true);
 
-    if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
-        virFileDeleteTree(fakerootdir);
-
     qemuTestDriverFree(&driver);
     virObjectUnref(data.vm);
     return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
index 3f18fed1c33d970a7bbcca7f08673d7e4afb103c..4813c7beb046524ae42141ff91419745dc47d3a0 100644 (file)
@@ -51,28 +51,14 @@ testCompareMemLock(const void *data)
     return ret;
 }
 
-# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
-
 static int
 mymain(void)
 {
     int ret = 0;
-    char *fakerootdir;
     virQEMUCapsPtr qemuCaps = NULL;
 
-    fakerootdir = g_strdup(FAKEROOTDIRTEMPLATE);
-
-    if (!g_mkdtemp(fakerootdir)) {
-        fprintf(stderr, "Cannot create fakerootdir");
-        abort();
-    }
-
-    g_setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, TRUE);
-
-    if (qemuTestDriverInit(&driver) < 0) {
-        VIR_FREE(fakerootdir);
+    if (qemuTestDriverInit(&driver) < 0)
         return EXIT_FAILURE;
-    }
 
     driver.privileged = true;
 
@@ -150,11 +136,7 @@ mymain(void)
  cleanup:
     virObjectUnref(qemuCaps);
 
-    if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
-        virFileDeleteTree(fakerootdir);
-
     qemuTestDriverFree(&driver);
-    VIR_FREE(fakerootdir);
 
     return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 04febd1b0c70b17b62cd4a279ae8e06bdeacb14d..8bd6102d26ff5287038d88146b8237a86eee975b 100644 (file)
@@ -609,24 +609,12 @@ testInfoSetPaths(struct testQemuInfo *info,
                                     abs_srcdir, info->name, suffix ? suffix : "");
 }
 
-# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
-
 static int
 mymain(void)
 {
     int ret = 0;
-    char *fakerootdir;
     virHashTablePtr capslatest = NULL;
 
-    fakerootdir = g_strdup(FAKEROOTDIRTEMPLATE);
-
-    if (!g_mkdtemp(fakerootdir)) {
-        fprintf(stderr, "Cannot create fakerootdir");
-        abort();
-    }
-
-    g_setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, TRUE);
-
     /* Set the timezone because we are mocking the time() function.
      * If we don't do that, then localtime() may return unpredictable
      * results. In order to detect things that just work by a blind
@@ -3232,12 +3220,8 @@ mymain(void)
 
     DO_TEST_CAPS_LATEST("virtio-9p-multidevs");
 
-    if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
-        virFileDeleteTree(fakerootdir);
-
     VIR_FREE(driver.config->nbdTLSx509certdir);
     qemuTestDriverFree(&driver);
-    VIR_FREE(fakerootdir);
     virHashFree(capslatest);
     virFileWrapperClearPrefixes();
 
index 86f3d2c1f3b1307986580d176e2e982e4109eb5d..6a0adab6035587ef26af0a1bd65d5b765e6a581d 100644 (file)
@@ -126,13 +126,10 @@ testInfoSetStatusPaths(struct testQemuInfo *info)
 }
 
 
-# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
-
 static int
 mymain(void)
 {
     int ret = 0;
-    char *fakerootdir;
     virQEMUDriverConfigPtr cfg = NULL;
     virHashTablePtr capslatest = NULL;
 
@@ -140,15 +137,6 @@ mymain(void)
     if (!capslatest)
         return EXIT_FAILURE;
 
-    fakerootdir = g_strdup(FAKEROOTDIRTEMPLATE);
-
-    if (!g_mkdtemp(fakerootdir)) {
-        fprintf(stderr, "Cannot create fakerootdir");
-        abort();
-    }
-
-    g_setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, TRUE);
-
     /* Required for tpm-emulator tests
      */
     virFileWrapperAddPrefix(SYSCONFDIR "/qemu/firmware",
@@ -1478,12 +1466,8 @@ mymain(void)
 
     DO_TEST_CAPS_LATEST("virtio-9p-multidevs");
 
-    if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
-        virFileDeleteTree(fakerootdir);
-
     virHashFree(capslatest);
     qemuTestDriverFree(&driver);
-    VIR_FREE(fakerootdir);
     virFileWrapperClearPrefixes();
 
     return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
index 9f9eb4033c410019798570387fa4e984ae875ef0..c7983f0014dd4ca0a8a9c605bf74d2f21ff352b0 100644 (file)
@@ -307,11 +307,10 @@ qemuTestParseCapabilitiesArch(virArch arch,
 
 void qemuTestDriverFree(virQEMUDriver *driver)
 {
+    if (g_getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
+        virFileDeleteTree(driver->embeddedRoot);
+
     virMutexDestroy(&driver->lock);
-    if (driver->config) {
-        virFileDeleteTree(driver->config->stateDir);
-        virFileDeleteTree(driver->config->configDir);
-    }
     virObjectUnref(driver->qemuCapsCache);
     virObjectUnref(driver->xmlopt);
     virObjectUnref(driver->caps);
@@ -370,14 +369,21 @@ int qemuTestCapsCacheInsert(virFileCachePtr cache,
 }
 
 
-# define STATEDIRTEMPLATE abs_builddir "/qemustatedir-XXXXXX"
-# define CONFIGDIRTEMPLATE abs_builddir "/qemuconfigdir-XXXXXX"
+# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
 
 int qemuTestDriverInit(virQEMUDriver *driver)
 {
     virSecurityManagerPtr mgr = NULL;
-    char statedir[] = STATEDIRTEMPLATE;
-    char configdir[] = CONFIGDIRTEMPLATE;
+    g_autofree char *fakerootdir = NULL;
+
+    fakerootdir = g_strdup(FAKEROOTDIRTEMPLATE);
+
+    if (!g_mkdtemp(fakerootdir)) {
+        fprintf(stderr, "Cannot create fakerootdir");
+        abort();
+    }
+
+    g_setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, TRUE);
 
     memset(driver, 0, sizeof(*driver));
 
@@ -391,35 +397,16 @@ int qemuTestDriverInit(virQEMUDriver *driver)
         return -1;
 
     driver->hostarch = virArchFromHost();
-    driver->config = virQEMUDriverConfigNew(false, NULL);
+    driver->config = virQEMUDriverConfigNew(false, fakerootdir);
     if (!driver->config)
         goto error;
 
-    /* Do this early so that qemuTestDriverFree() doesn't see (unlink) the real
-     * dirs. */
-    VIR_FREE(driver->config->stateDir);
-    VIR_FREE(driver->config->configDir);
-
     /* Overwrite some default paths so it's consistent for tests. */
     VIR_FREE(driver->config->libDir);
     VIR_FREE(driver->config->channelTargetDir);
     driver->config->libDir = g_strdup("/tmp/lib");
     driver->config->channelTargetDir = g_strdup("/tmp/channel");
 
-    if (!g_mkdtemp(statedir)) {
-        fprintf(stderr, "Cannot create fake stateDir");
-        goto error;
-    }
-
-    driver->config->stateDir = g_strdup(statedir);
-
-    if (!g_mkdtemp(configdir)) {
-        fprintf(stderr, "Cannot create fake configDir");
-        goto error;
-    }
-
-    driver->config->configDir = g_strdup(configdir);
-
     driver->caps = testQemuCapsInit();
     if (!driver->caps)
         goto error;