From nobody Mon Feb 9 06:26:41 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1551261943284868.6096070480927; Wed, 27 Feb 2019 02:05:43 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8A1C0313433D; Wed, 27 Feb 2019 10:05:41 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 570E15D725; Wed, 27 Feb 2019 10:05:41 +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 1047B3FA4D; Wed, 27 Feb 2019 10:05:41 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x1RA5bSb032352 for ; Wed, 27 Feb 2019 05:05:37 -0500 Received: by smtp.corp.redhat.com (Postfix) id CEA411001DCC; Wed, 27 Feb 2019 10:05:37 +0000 (UTC) Received: from moe.brq.redhat.com (unknown [10.43.2.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 960E21001DD6; Wed, 27 Feb 2019 10:05:32 +0000 (UTC) From: Michal Privoznik To: libvir-list@redhat.com Date: Wed, 27 Feb 2019 11:04:42 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: lersek@redhat.com Subject: [libvirt] [PATCH v1 10/15] qemufirmwaretest: Test qemuFirmwareFetchConfigs() 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Wed, 27 Feb 2019 10:05:42 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Signed-off-by: Michal Privoznik --- tests/Makefile.am | 1 + .../etc/qemu/firmware/40-ovmf-sb.json | 1 + .../etc/qemu/firmware/60-ovmf.json | 0 .../user/.config/qemu/firmware/10-bios.json | 0 .../share/qemu/firmware}/40-bios.json | 0 .../share/qemu/firmware}/50-ovmf-sb.json | 0 .../share/qemu/firmware}/60-ovmf.json | 0 .../share/qemu/firmware}/70-aavmf.json | 0 tests/qemufirmwaretest.c | 69 +++++++++++++++++-- 9 files changed, 66 insertions(+), 5 deletions(-) create mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/40-ovmf-sb.json create mode 100644 tests/qemufirmwaredata/etc/qemu/firmware/60-ovmf.json create mode 100644 tests/qemufirmwaredata/home/user/.config/qemu/firmware/= 10-bios.json rename tests/qemufirmwaredata/{ =3D> usr/share/qemu/firmware}/40-bios.json= (100%) rename tests/qemufirmwaredata/{ =3D> usr/share/qemu/firmware}/50-ovmf-sb.j= son (100%) rename tests/qemufirmwaredata/{ =3D> usr/share/qemu/firmware}/60-ovmf.json= (100%) rename tests/qemufirmwaredata/{ =3D> usr/share/qemu/firmware}/70-aavmf.jso= n (100%) diff --git a/tests/Makefile.am b/tests/Makefile.am index d23a8c2812..aee078c41c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -703,6 +703,7 @@ qemusecuritytest_LDADD =3D $(qemu_LDADDS) $(LDADDS) qemufirmwaretest_SOURCES =3D \ qemufirmwaretest.c \ testutils.h testutils.c \ + virfilewrapper.c virfilewrapper.h \ $(NULL) qemufirmwaretest_LDADD =3D $(qemu_LDADDS) $(LDADDS) =20 diff --git a/tests/qemufirmwaredata/etc/qemu/firmware/40-ovmf-sb.json b/tes= ts/qemufirmwaredata/etc/qemu/firmware/40-ovmf-sb.json new file mode 120000 index 0000000000..30f65574f3 --- /dev/null +++ b/tests/qemufirmwaredata/etc/qemu/firmware/40-ovmf-sb.json @@ -0,0 +1 @@ +../../../usr/share/qemu/firmware/50-ovmf-sb.json \ No newline at end of file diff --git a/tests/qemufirmwaredata/etc/qemu/firmware/60-ovmf.json b/tests/= qemufirmwaredata/etc/qemu/firmware/60-ovmf.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/qemufirmwaredata/home/user/.config/qemu/firmware/10-bios= .json b/tests/qemufirmwaredata/home/user/.config/qemu/firmware/10-bios.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/qemufirmwaredata/40-bios.json b/tests/qemufirmwaredata/u= sr/share/qemu/firmware/40-bios.json similarity index 100% rename from tests/qemufirmwaredata/40-bios.json rename to tests/qemufirmwaredata/usr/share/qemu/firmware/40-bios.json diff --git a/tests/qemufirmwaredata/50-ovmf-sb.json b/tests/qemufirmwaredat= a/usr/share/qemu/firmware/50-ovmf-sb.json similarity index 100% rename from tests/qemufirmwaredata/50-ovmf-sb.json rename to tests/qemufirmwaredata/usr/share/qemu/firmware/50-ovmf-sb.json diff --git a/tests/qemufirmwaredata/60-ovmf.json b/tests/qemufirmwaredata/u= sr/share/qemu/firmware/60-ovmf.json similarity index 100% rename from tests/qemufirmwaredata/60-ovmf.json rename to tests/qemufirmwaredata/usr/share/qemu/firmware/60-ovmf.json diff --git a/tests/qemufirmwaredata/70-aavmf.json b/tests/qemufirmwaredata/= usr/share/qemu/firmware/70-aavmf.json similarity index 100% rename from tests/qemufirmwaredata/70-aavmf.json rename to tests/qemufirmwaredata/usr/share/qemu/firmware/70-aavmf.json diff --git a/tests/qemufirmwaretest.c b/tests/qemufirmwaretest.c index 0c5fb1e55a..a6c2577709 100644 --- a/tests/qemufirmwaretest.c +++ b/tests/qemufirmwaretest.c @@ -1,7 +1,9 @@ #include =20 #include "testutils.h" +#include "virfilewrapper.h" #include "qemu/qemu_firmware.h" +#include "configmake.h" =20 #define VIR_FROM_THIS VIR_FROM_QEMU =20 @@ -46,11 +48,65 @@ testParseFormatFW(const void *opaque) } =20 =20 +static int +testFWPrecedence(const void *opaque ATTRIBUTE_UNUSED) +{ + VIR_AUTOFREE(char *) fakehome =3D NULL; + VIR_AUTOPTR(virString) fwList =3D NULL; + size_t nfwList; + size_t i; + const char *expected[] =3D { + PREFIX "/share/qemu/firmware/40-bios.json", + SYSCONFDIR "/qemu/firmware/40-ovmf-sb.json", + PREFIX "/share/qemu/firmware/50-ovmf-sb.json", + PREFIX "/share/qemu/firmware/70-aavmf.json", + }; + + if (VIR_STRDUP(fakehome, abs_srcdir "/qemufirmwaredata/home/user/.conf= ig") < 0) + return -1; + + setenv("XDG_CONFIG_HOME", fakehome, 1); + + if (qemuFirmwareFetchConfigs(&fwList) < 0) + return -1; + + if (!fwList) { + fprintf(stderr, "Expected result, got nothing\n"); + return -1; + } + + nfwList =3D virStringListLength((const char **)fwList); + if (nfwList !=3D ARRAY_CARDINALITY(expected)) { + fprintf(stderr, "Expected %zu paths, got %zu\n", + ARRAY_CARDINALITY(expected), nfwList); + return -1; + } + + for (i =3D 0; i < ARRAY_CARDINALITY(expected); i++) { + if (STRNEQ_NULLABLE(expected[i], fwList[i])) { + fprintf(stderr, + "Unexpected path (i=3D%zu). Expected %s got %s \n", + i, expected[i], NULLSTR(fwList[i])); + return -1; + } + } + + return 0; +} + + static int mymain(void) { int ret =3D 0; =20 + virFileWrapperAddPrefix(SYSCONFDIR "/qemu/firmware", + abs_srcdir "/qemufirmwaredata/etc/qemu/firmwar= e"); + virFileWrapperAddPrefix(PREFIX "/share/qemu/firmware", + abs_srcdir "/qemufirmwaredata/usr/share/qemu/f= irmware"); + virFileWrapperAddPrefix("/home/user/.config/qemu/firmware", + abs_srcdir "/qemufirmwaredata/home/user/.confi= g/qemu/firmware"); + #define DO_PARSE_TEST(filename) \ do { \ if (virTestRun("QEMU FW " filename, \ @@ -58,13 +114,16 @@ mymain(void) ret =3D -1; \ } while (0) =20 - DO_PARSE_TEST("40-bios.json"); - DO_PARSE_TEST("50-ovmf-sb.json"); - DO_PARSE_TEST("60-ovmf.json"); - DO_PARSE_TEST("70-aavmf.json"); + DO_PARSE_TEST("usr/share/qemu/firmware/40-bios.json"); + DO_PARSE_TEST("usr/share/qemu/firmware/50-ovmf-sb.json"); + DO_PARSE_TEST("usr/share/qemu/firmware/60-ovmf.json"); + DO_PARSE_TEST("usr/share/qemu/firmware/70-aavmf.json"); + + if (virTestRun("QEMU FW precedence test", testFWPrecedence, NULL) < 0) + ret =3D -1; =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } =20 =20 -VIR_TEST_MAIN(mymain); +VIR_TEST_MAIN(mymain) --=20 2.19.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list