Signed-off-by: Roman Bogorodskiy <[email protected]>
---
.../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