Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com> --- .../bhyvexml2argv-uefi-unprivileged.args | 14 +++++++++++ tests/bhyvexml2argvtest.c | 23 +++++++++++++++---- 2 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-unprivileged.args diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-unprivileged.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-unprivileged.args new file mode 100644 index 0000000000..fd55fb4a76 --- /dev/null +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-unprivileged.args @@ -0,0 +1,14 @@ +bhyve \ +-M \ +-o rundir=/path/to/bhyve/run \ +-c 1 \ +-m 214 \ +-u \ +-H \ +-P \ +-s 0:0,hostbridge \ +-l bootrom,/path/to/test.fd \ +-s 1:0,lpc \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ +bhyve diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index f7676142af..8aae49643b 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -120,6 +120,7 @@ static int testCompareXMLToArgvFiles(const char *xml, struct testInfo { const char *name; + const char *argsSuffix; unsigned int flags; }; @@ -135,8 +136,8 @@ testCompareXMLToArgvHelper(const void *data) xml = g_strdup_printf("%s/bhyvexml2argvdata/%s/bhyvexml2argv-%s.xml", abs_srcdir, arch, info->name); - args = g_strdup_printf("%s/bhyvexml2argvdata/%s/bhyvexml2argv-%s.args", - abs_srcdir, arch, info->name); + args = g_strdup_printf("%s/bhyvexml2argvdata/%s/bhyvexml2argv-%s%s.args", + abs_srcdir, arch, info->name, info->argsSuffix); ldargs = g_strdup_printf("%s/bhyvexml2argvdata/%s/bhyvexml2argv-%s.ldargs", abs_srcdir, arch, info->name); dmargs = g_strdup_printf("%s/bhyvexml2argvdata/%s/bhyvexml2argv-%s.devmap", @@ -171,24 +172,29 @@ mymain(void) VIR_FREE(driver.config->firmwareDir); VIR_FREE(driver.config->nvramDir); VIR_FREE(driver.config->ubootPath); + VIR_FREE(driver.config->bhyveRunDir); driver.config->firmwareDir = g_steal_pointer(&fakefirmwaredir); driver.config->nvramDir = g_steal_pointer(&fakenvramdir); driver.config->ubootPath = g_steal_pointer(&fakeubootpath); + driver.config->bhyveRunDir = g_strdup("/path/to/bhyve/run"); driver.config->bhyveloadTimeout = 0; driver.config->bhyveloadTimeoutKill = 0; driver.privileged = true; -# define DO_TEST_FULL(name, flags) \ +# define DO_TEST_FULL_OUTPUT(name, suffix, flags) \ do { \ static struct testInfo info = { \ - name, (flags) \ + name, suffix, (flags) \ }; \ - if (virTestRun("BHYVE XML-2-ARGV " name, \ + if (virTestRun("BHYVE XML-2-ARGV " name suffix, \ testCompareXMLToArgvHelper, &info) < 0) \ ret = -1; \ } while (0) +# define DO_TEST_FULL(name, flags) \ + DO_TEST_FULL_OUTPUT(name, "", flags) + # define DO_TEST(name) \ DO_TEST_FULL(name, 0) @@ -198,6 +204,9 @@ mymain(void) # define DO_TEST_UNPRIVILEGED_FAILURE(name) \ DO_TEST_FULL(name, FLAG_EXPECT_FAILURE | FLAG_UNPRIVILEGED) +# define DO_TEST_UNPRIVILEGED(name) \ + DO_TEST_FULL_OUTPUT(name, "-unprivileged", FLAG_UNPRIVILEGED) + # define DO_TEST_PARSE_ERROR(name) \ DO_TEST_FULL(name, FLAG_EXPECT_PARSE_ERROR) @@ -213,6 +222,7 @@ mymain(void) BHYVE_CAP_NVME | BHYVE_CAP_NUMA; DO_TEST("base"); + DO_TEST_UNPRIVILEGED_FAILURE("base"); DO_TEST("wired"); DO_TEST("acpiapic"); driver.bhyvecaps &= ~BHYVE_CAP_ACPI; @@ -224,6 +234,7 @@ mymain(void) DO_TEST("console"); DO_TEST("console-master-slave-not-specified"); DO_TEST("grub-defaults"); + DO_TEST_UNPRIVILEGED_FAILURE("grub-defaults"); DO_TEST("grub-bootorder"); DO_TEST("grub-bootorder2"); DO_TEST("bhyveload-bootorder"); @@ -234,6 +245,7 @@ mymain(void) DO_TEST_FAILURE("bhyveload-bootorder4"); DO_TEST_PARSE_ERROR("bhyveload-bootorder5"); DO_TEST("custom-loader"); + DO_TEST_UNPRIVILEGED_FAILURE("custom-loader"); DO_TEST("disk-cdrom-grub"); DO_TEST("serial-grub"); DO_TEST("localtime"); @@ -241,6 +253,7 @@ mymain(void) DO_TEST("passthru"); DO_TEST("passthru-multiple-devs"); DO_TEST("uefi"); + DO_TEST_UNPRIVILEGED("uefi"); DO_TEST("uefi-nvram"); DO_TEST("uefi-nvram-template-set"); DO_TEST("uefi-nvram-template-and-source-set"); -- 2.55.0