[libvirt] [PATCHv5 2/6] bhyvexml2argv: Add loader argv tests.

Conrad Meyer cse.cem at gmail.com
Mon Oct 27 14:37:37 UTC 2014


Sponsored by:  EMC / Isilon storage division

Signed-off-by: Conrad Meyer <conrad.meyer at isilon.com>
---
 .../bhyvexml2argv-acpiapic.ldargs                  |  1 +
 tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs  |  1 +
 .../bhyvexml2argvdata/bhyvexml2argv-console.ldargs |  1 +
 .../bhyvexml2argv-disk-cdrom.ldargs                |  1 +
 .../bhyvexml2argv-disk-virtio.ldargs               |  1 +
 .../bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs |  1 +
 .../bhyvexml2argvdata/bhyvexml2argv-serial.ldargs  |  1 +
 tests/bhyvexml2argvtest.c                          | 36 ++++++++++++++++++----
 8 files changed, 37 insertions(+), 6 deletions(-)
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-console.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial.ldargs

diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.ldargs
new file mode 100644
index 0000000..215d65f
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.ldargs
@@ -0,0 +1 @@
+/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs
new file mode 100644
index 0000000..215d65f
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs
@@ -0,0 +1 @@
+/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-console.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-console.ldargs
new file mode 100644
index 0000000..215d65f
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-console.ldargs
@@ -0,0 +1 @@
+/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.ldargs
new file mode 100644
index 0000000..0eb3cc9
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.ldargs
@@ -0,0 +1 @@
+/usr/sbin/bhyveload -m 214 -d /tmp/cdrom.iso bhyve
diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio.ldargs
new file mode 100644
index 0000000..215d65f
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio.ldargs
@@ -0,0 +1 @@
+/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs
new file mode 100644
index 0000000..215d65f
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs
@@ -0,0 +1 @@
+/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-serial.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-serial.ldargs
new file mode 100644
index 0000000..215d65f
--- /dev/null
+++ b/tests/bhyvexml2argvdata/bhyvexml2argv-serial.ldargs
@@ -0,0 +1 @@
+/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c
index b9be378..db45ae5 100644
--- a/tests/bhyvexml2argvtest.c
+++ b/tests/bhyvexml2argvtest.c
@@ -15,14 +15,15 @@
 static bhyveConn driver;
 
 static int testCompareXMLToArgvFiles(const char *xml,
-                                     const char *cmdline)
+                                     const char *cmdline,
+                                     const char *ldcmdline)
 {
-    char *expectargv = NULL;
+    char *expectargv = NULL, *expectld = NULL;
     int len;
-    char *actualargv = NULL;
+    char *actualargv = NULL, *actualld = NULL;
     virDomainDefPtr vmdef = NULL;
     virDomainObj vm;
-    virCommandPtr cmd = NULL;
+    virCommandPtr cmd = NULL, ldcmd = NULL;
     virConnectPtr conn;
     int ret = -1;
 
@@ -42,6 +43,12 @@ static int testCompareXMLToArgvFiles(const char *xml,
     if (!(actualargv = virCommandToString(cmd)))
         goto out;
 
+    if (!(ldcmd = virBhyveProcessBuildLoadCmd(conn, vmdef, NULL)))
+        goto out;
+
+    if (!(actualld = virCommandToString(ldcmd)))
+        goto out;
+
     len = virtTestLoadFile(cmdline, &expectargv);
     if (len < 0)
         goto out;
@@ -49,17 +56,32 @@ static int testCompareXMLToArgvFiles(const char *xml,
     if (len && expectargv[len - 1] == '\n')
         expectargv[len - 1] = '\0';
 
+    len = virtTestLoadFile(ldcmdline, &expectld);
+    if (len < 0)
+        goto out;
+
+    if (len && expectld[len - 1] == '\n')
+        expectld[len - 1] = '\0';
+
     if (STRNEQ(expectargv, actualargv)) {
         virtTestDifference(stderr, expectargv, actualargv);
         goto out;
     }
 
+    if (STRNEQ(expectld, actualld)) {
+        virtTestDifference(stderr, expectld, actualld);
+        goto out;
+    }
+
     ret = 0;
 
  out:
     VIR_FREE(expectargv);
+    VIR_FREE(expectld);
     VIR_FREE(actualargv);
+    VIR_FREE(actualld);
     virCommandFree(cmd);
+    virCommandFree(ldcmd);
     virDomainDefFree(vmdef);
     return ret;
 }
@@ -70,15 +92,17 @@ testCompareXMLToArgvHelper(const void *data)
     int ret = -1;
     const char *name = data;
     char *xml = NULL;
-    char *args = NULL;
+    char *args = NULL, *ldargs = NULL;
 
     if (virAsprintf(&xml, "%s/bhyvexml2argvdata/bhyvexml2argv-%s.xml",
                     abs_srcdir, name) < 0 ||
         virAsprintf(&args, "%s/bhyvexml2argvdata/bhyvexml2argv-%s.args",
+                    abs_srcdir, name) < 0 ||
+        virAsprintf(&ldargs, "%s/bhyvexml2argvdata/bhyvexml2argv-%s.ldargs",
                     abs_srcdir, name) < 0)
         goto cleanup;
 
-    ret = testCompareXMLToArgvFiles(xml, args);
+    ret = testCompareXMLToArgvFiles(xml, args, ldargs);
 
  cleanup:
     VIR_FREE(xml);
-- 
1.9.3




More information about the libvir-list mailing list