---
.../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 | 60 +++++++++++++++++++---
8 files changed, 61 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..3ff6696 100644
--- a/tests/bhyvexml2argvtest.c
+++ b/tests/bhyvexml2argvtest.c
@@ -15,14 +15,16 @@
static bhyveConn driver;
static int testCompareXMLToArgvFiles(const char *xml,
- const char *cmdline)
+ const char *cmdline,
+ const char *ldcmdline,
+ const char *dmcmdline)
{
- char *expectargv = NULL;
+ char *expectargv = NULL, *expectld = NULL, *expectdm = NULL;
int len;
- char *actualargv = NULL;
+ char *actualargv = NULL, *actualld = NULL, *actualdm = NULL;
virDomainDefPtr vmdef = NULL;
virDomainObj vm;
- virCommandPtr cmd = NULL;
+ virCommandPtr cmd = NULL, ldcmd = NULL;
virConnectPtr conn;
int ret = -1;
@@ -42,6 +44,16 @@ static int testCompareXMLToArgvFiles(const char *xml,
if (!(actualargv = virCommandToString(cmd)))
goto out;
+ if (!(ldcmd = virBhyveProcessBuildLoadCmd(conn, vmdef,
"<device.map>",
+ &actualdm)))
+ goto out;
+
+ if (actualdm != NULL)
+ virTrimSpaces(actualdm, NULL);
+
+ if (!(actualld = virCommandToString(ldcmd)))
+ goto out;
+
len = virtTestLoadFile(cmdline, &expectargv);
if (len < 0)
goto out;
@@ -49,17 +61,49 @@ 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';
+
+ len = virFileReadAllQuiet(dmcmdline, 1000, &expectdm);
+ if (len < 0) {
+ if (actualdm != NULL) {
+ virtTestDifference(stderr, "", actualdm);
+ goto out;
+ }
+ } else if (len && expectdm[len - 1] == '\n') {
+ expectdm[len - 1] = '\0';
+ }
+
if (STRNEQ(expectargv, actualargv)) {
virtTestDifference(stderr, expectargv, actualargv);
goto out;
}
+ if (STRNEQ(expectld, actualld)) {
+ virtTestDifference(stderr, expectld, actualld);
+ goto out;
+ }
+
+ if (expectdm && STRNEQ(expectdm, actualdm)) {
+ virtTestDifference(stderr, expectdm, actualdm);
+ goto out;
+ }
+
ret = 0;
out:
VIR_FREE(expectargv);
+ VIR_FREE(expectld);
+ VIR_FREE(expectdm);
VIR_FREE(actualargv);
+ VIR_FREE(actualld);
+ VIR_FREE(actualdm);
virCommandFree(cmd);
+ virCommandFree(ldcmd);
virDomainDefFree(vmdef);
return ret;
}
@@ -70,15 +114,19 @@ testCompareXMLToArgvHelper(const void *data)
int ret = -1;
const char *name = data;
char *xml = NULL;
- char *args = NULL;
+ char *args = NULL, *ldargs = NULL, *dmargs = 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 ||
+ virAsprintf(&dmargs,
"%s/bhyvexml2argvdata/bhyvexml2argv-%s.devmap",
abs_srcdir, name) < 0)
goto cleanup;
- ret = testCompareXMLToArgvFiles(xml, args);
+ ret = testCompareXMLToArgvFiles(xml, args, ldargs, dmargs);
cleanup:
VIR_FREE(xml);
--
1.9.3