From nobody Thu May 2 15:20:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1588770192; cv=none; d=zohomail.com; s=zohoarc; b=nJdYGyMmhecq0j00koZUFRvY06svyeO5We3L0DQvK1zhhz0K9Q/b2Uz9IoutBW7s+OevrN6fj+4A46Rw7GqKqFKb4dEtRLU7QhCNFeVedNkk0oAByDCHqZe2vc1v9j/uARyFqJJZEadOP5mAHExNKFSq85o82ELkRa7CO/bSv4s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588770192; h=Content-Type:Content-Transfer-Encoding:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=XVzZ6k08N9rG69ygpoxi3AIMxhxvnQLxqLwd0y+/VSo=; b=P411JqZrbH31+uN5/3sYx0ZNyuvkB0TK7ysYEAcgihYaE35Gozjb5+i9hv0r+/wRYCDZYM7U3ARlwQjP/9XxDhLfv5oH0cmgSVazsL9NTWpcTwxVYDrsLreqwUUEQ0KiGW5jqN9v01kXNdCSHmBws3gzc6vj0n8sEQaPjlxRQgU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1588770192058583.4021684281921; Wed, 6 May 2020 06:03:12 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-5-xlhzmJ6JPW65YfjGyk_ZUw-1; Wed, 06 May 2020 09:03:03 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 83D582C20; Wed, 6 May 2020 13:02:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 62BD31002387; Wed, 6 May 2020 13:02:55 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F34B41809542; Wed, 6 May 2020 13:02:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 046D2p05001842 for ; Wed, 6 May 2020 09:02:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id 34CDD2D0A8; Wed, 6 May 2020 13:02:51 +0000 (UTC) Received: from kinshicho.usersys.redhat.com (unknown [10.40.194.206]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 15C7A6293D for ; Wed, 6 May 2020 13:02:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1588770190; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=XVzZ6k08N9rG69ygpoxi3AIMxhxvnQLxqLwd0y+/VSo=; b=H62nqceFjbPDff1AtUHWSug2d+swoCn6k+fqzyqVX+UL4vwk69RIkEluOr7UnDpyw3Sq3R TOPY0XSQ9vg0puPEiMK57ZO9xS6gaRp0RJMD4GW7o0X0MmMIoW4qHtJO+uQuxerICDYR19 DErMNBRlQ5RUl2eu//XeMjHahcFyBdI= X-MC-Unique: xlhzmJ6JPW65YfjGyk_ZUw-1 From: Andrea Bolognani To: libvir-list@redhat.com Subject: [libvirt PATCH] tests: Use qemu:///embed to simplify fakerootdir management Date: Wed, 6 May 2020 15:02:43 +0200 Message-Id: <20200506130243.599994-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Now that the QEMU driver natively supports storing all its runtime data inside an arbitrary directory, we can avoid having multiple copies of this same logic in the test suite. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- tests/qemuhotplugtest.c | 15 -------------- tests/qemumemlocktest.c | 17 ---------------- tests/qemuxml2argvtest.c | 16 --------------- tests/qemuxml2xmltest.c | 16 --------------- tests/testutilsqemu.c | 43 ++++++++++++++-------------------------- 5 files changed, 15 insertions(+), 92 deletions(-) diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 9a215ab303..e7443ff4b7 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -594,8 +594,6 @@ testQemuHotplugCpuIndividual(const void *opaque) return ret; } =20 -#define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX" - =20 static int mymain(void) @@ -604,18 +602,8 @@ mymain(void) int ret =3D 0; struct qemuHotplugTestData data =3D {0}; struct testQemuHotplugCpuParams cpudata; - g_autofree char *fakerootdir =3D NULL; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; =20 - fakerootdir =3D 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; =20 @@ -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, tr= ue); =20 - if (getenv("LIBVIRT_SKIP_CLEANUP") =3D=3D NULL) - virFileDeleteTree(fakerootdir); - qemuTestDriverFree(&driver); virObjectUnref(data.vm); return (ret =3D=3D 0) ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/qemumemlocktest.c b/tests/qemumemlocktest.c index 3f18fed1c3..0e254bb3ce 100644 --- a/tests/qemumemlocktest.c +++ b/tests/qemumemlocktest.c @@ -51,26 +51,13 @@ testCompareMemLock(const void *data) return ret; } =20 -# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX" - static int mymain(void) { int ret =3D 0; - char *fakerootdir; virQEMUCapsPtr qemuCaps =3D NULL; =20 - fakerootdir =3D 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); return EXIT_FAILURE; } =20 @@ -150,11 +137,7 @@ mymain(void) cleanup: virObjectUnref(qemuCaps); =20 - if (getenv("LIBVIRT_SKIP_CLEANUP") =3D=3D NULL) - virFileDeleteTree(fakerootdir); - qemuTestDriverFree(&driver); - VIR_FREE(fakerootdir); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 04febd1b0c..8bd6102d26 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -609,24 +609,12 @@ testInfoSetPaths(struct testQemuInfo *info, abs_srcdir, info->name, suffix ? suffi= x : ""); } =20 -# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX" - static int mymain(void) { int ret =3D 0; - char *fakerootdir; virHashTablePtr capslatest =3D NULL; =20 - fakerootdir =3D 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) =20 DO_TEST_CAPS_LATEST("virtio-9p-multidevs"); =20 - if (getenv("LIBVIRT_SKIP_CLEANUP") =3D=3D NULL) - virFileDeleteTree(fakerootdir); - VIR_FREE(driver.config->nbdTLSx509certdir); qemuTestDriverFree(&driver); - VIR_FREE(fakerootdir); virHashFree(capslatest); virFileWrapperClearPrefixes(); =20 diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 86f3d2c1f3..6a0adab603 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -126,13 +126,10 @@ testInfoSetStatusPaths(struct testQemuInfo *info) } =20 =20 -# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX" - static int mymain(void) { int ret =3D 0; - char *fakerootdir; virQEMUDriverConfigPtr cfg =3D NULL; virHashTablePtr capslatest =3D NULL; =20 @@ -140,15 +137,6 @@ mymain(void) if (!capslatest) return EXIT_FAILURE; =20 - fakerootdir =3D 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) =20 DO_TEST_CAPS_LATEST("virtio-9p-multidevs"); =20 - if (getenv("LIBVIRT_SKIP_CLEANUP") =3D=3D NULL) - virFileDeleteTree(fakerootdir); - virHashFree(capslatest); qemuTestDriverFree(&driver); - VIR_FREE(fakerootdir); virFileWrapperClearPrefixes(); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 9f9eb4033c..c7983f0014 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -307,11 +307,10 @@ qemuTestParseCapabilitiesArch(virArch arch, =20 void qemuTestDriverFree(virQEMUDriver *driver) { + if (g_getenv("LIBVIRT_SKIP_CLEANUP") =3D=3D 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, } =20 =20 -# define STATEDIRTEMPLATE abs_builddir "/qemustatedir-XXXXXX" -# define CONFIGDIRTEMPLATE abs_builddir "/qemuconfigdir-XXXXXX" +# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX" =20 int qemuTestDriverInit(virQEMUDriver *driver) { virSecurityManagerPtr mgr =3D NULL; - char statedir[] =3D STATEDIRTEMPLATE; - char configdir[] =3D CONFIGDIRTEMPLATE; + g_autofree char *fakerootdir =3D NULL; + + fakerootdir =3D g_strdup(FAKEROOTDIRTEMPLATE); + + if (!g_mkdtemp(fakerootdir)) { + fprintf(stderr, "Cannot create fakerootdir"); + abort(); + } + + g_setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, TRUE); =20 memset(driver, 0, sizeof(*driver)); =20 @@ -391,35 +397,16 @@ int qemuTestDriverInit(virQEMUDriver *driver) return -1; =20 driver->hostarch =3D virArchFromHost(); - driver->config =3D virQEMUDriverConfigNew(false, NULL); + driver->config =3D virQEMUDriverConfigNew(false, fakerootdir); if (!driver->config) goto error; =20 - /* 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 =3D g_strdup("/tmp/lib"); driver->config->channelTargetDir =3D g_strdup("/tmp/channel"); =20 - if (!g_mkdtemp(statedir)) { - fprintf(stderr, "Cannot create fake stateDir"); - goto error; - } - - driver->config->stateDir =3D g_strdup(statedir); - - if (!g_mkdtemp(configdir)) { - fprintf(stderr, "Cannot create fake configDir"); - goto error; - } - - driver->config->configDir =3D g_strdup(configdir); - driver->caps =3D testQemuCapsInit(); if (!driver->caps) goto error; --=20 2.25.4