diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args b/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args
new file mode 100644
index 0000000000..8ff8673ed4
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args
@@ -0,0 +1,11 @@
+/usr/sbin/bhyve \
+-c 1 \
+-m 214 \
+-u \
+-H \
+-P \
+-s 0:0,hostbridge \
+-l bootrom,/path/to/test.fd \
+-s 2:0,ahci,hd:/tmp/freebsd.img \
+-s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \
+-s 1,lpc bhyve
diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.ldargs
new file mode 100644
index 0000000000..421376db9e
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.ldargs
@@ -0,0 +1 @@
+dummy
diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.xml b/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.xml
new file mode 100644
index 0000000000..0b7d6bd275
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.xml
@@ -0,0 +1,23 @@
+
+ bhyve
+ df3be7e7-a104-11e3-aeb0-50e5492bd3dc
+ 219136
+ 1
+
+ hvm
+ /path/to/test.fd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c
index fb404f9fbc..61072963d2 100644
--- a/tests/bhyvexml2argvtest.c
+++ b/tests/bhyvexml2argvtest.c
@@ -52,8 +52,11 @@ static int testCompareXMLToArgvFiles(const char *xml,
conn->privateData = &driver;
cmd = virBhyveProcessBuildBhyveCmd(conn, vmdef, false);
- ldcmd = virBhyveProcessBuildLoadCmd(conn, vmdef, "",
- &actualdm);
+ if (vmdef->os.loader)
+ ldcmd = virCommandNew("dummy");
+ else
+ ldcmd = virBhyveProcessBuildLoadCmd(conn, vmdef, "",
+ &actualdm);
if ((cmd == NULL) || (ldcmd == NULL)) {
if (flags & FLAG_EXPECT_FAILURE) {
@@ -162,7 +165,8 @@ mymain(void)
DO_TEST_FULL(name, FLAG_EXPECT_PARSE_ERROR)
driver.grubcaps = BHYVE_GRUB_CAP_CONSDEV;
- driver.bhyvecaps = BHYVE_CAP_RTC_UTC | BHYVE_CAP_AHCI32SLOT | BHYVE_CAP_NET_E1000;
+ driver.bhyvecaps = BHYVE_CAP_RTC_UTC | BHYVE_CAP_AHCI32SLOT | \
+ BHYVE_CAP_NET_E1000 | BHYVE_CAP_LPC_BOOTROM;
DO_TEST("base");
DO_TEST("acpiapic");
@@ -186,6 +190,7 @@ mymain(void)
DO_TEST("serial-grub");
DO_TEST("localtime");
DO_TEST("net-e1000");
+ DO_TEST("uefi");
/* Address allocation tests */
DO_TEST("addr-single-sata-disk");
@@ -208,6 +213,9 @@ mymain(void)
DO_TEST_FAILURE("net-e1000");
+ driver.bhyvecaps &= ~BHYVE_CAP_LPC_BOOTROM;
+ DO_TEST_FAILURE("uefi");
+
virObjectUnref(driver.caps);
virObjectUnref(driver.xmlopt);