[libvirt] [PATCH 3/6] bhyve: test cases for UEFI bhyvexml2argvtest

Roman Bogorodskiy bogorodskiy at gmail.com
Sun Feb 12 15:12:31 UTC 2017


From: Fabian Freyer <fabian.freyer at physik.tu-berlin.de>

Signed-off-by: Roman Bogorodskiy <bogorodskiy at gmail.com>
---
 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args   | 11 +++++++++++
 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.ldargs |  1 +
 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.xml    | 23 +++++++++++++++++++++++
 tests/bhyvexml2argvtest.c                         | 13 +++++++++++--
 4 files changed, 46 insertions(+), 2 deletions(-)
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.xml

diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args b/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args
new file mode 100644
index 000000000..8ff8673ed
--- /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 000000000..421376db9
--- /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 000000000..0b7d6bd27
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-uefi.xml
@@ -0,0 +1,23 @@
+<domain type='bhyve'>
+  <name>bhyve</name>
+  <uuid>df3be7e7-a104-11e3-aeb0-50e5492bd3dc</uuid>
+  <memory>219136</memory>
+  <vcpu>1</vcpu>
+  <os>
+    <type>hvm</type>
+    <loader readonly="yes" type="pflash">/path/to/test.fd</loader>
+  </os>
+  <devices>
+    <disk type='file'>
+      <driver name='file' type='raw'/>
+      <source file='/tmp/freebsd.img'/>
+      <target dev='hda' bus='sata'/>
+      <address type='drive' controller='0' bus='0' target='2' unit='0'/>
+    </disk>
+    <interface type='bridge'>
+      <model type='virtio'/>
+      <source bridge="virbr0"/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+    </interface>
+  </devices>
+</domain>
diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c
index fb404f9fb..8567ceeae 100644
--- a/tests/bhyvexml2argvtest.c
+++ b/tests/bhyvexml2argvtest.c
@@ -52,9 +52,13 @@ static int testCompareXMLToArgvFiles(const char *xml,
     conn->privateData = &driver;
 
     cmd = virBhyveProcessBuildBhyveCmd(conn, vmdef, false);
-    ldcmd = virBhyveProcessBuildLoadCmd(conn, vmdef, "<device.map>",
+    if (!vmdef->os.loader)
+            ldcmd = virBhyveProcessBuildLoadCmd(conn, vmdef, "<device.map>",
                                         &actualdm);
 
+    if ((ldcmd == NULL) && (vmdef->os.loader))
+        ldcmd = virCommandNew("dummy");
+
     if ((cmd == NULL) || (ldcmd == NULL)) {
         if (flags & FLAG_EXPECT_FAILURE) {
             ret = 0;
@@ -162,7 +166,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 +191,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 +214,9 @@ mymain(void)
 
     DO_TEST_FAILURE("net-e1000");
 
+    driver.bhyvecaps &= ~BHYVE_CAP_LPC_BOOTROM;
+    DO_TEST_FAILURE("uefi");
+
     virObjectUnref(driver.caps);
     virObjectUnref(driver.xmlopt);
 
-- 
2.11.0




More information about the libvir-list mailing list