mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
bhyvexml2argv: Add loader argv tests.
This commit is contained in:
parent
17722c169c
commit
f2ce9d3645
1
tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.ldargs
Normal file
1
tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.ldargs
Normal file
@ -0,0 +1 @@
|
||||
/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
|
1
tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs
Normal file
1
tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs
Normal file
@ -0,0 +1 @@
|
||||
/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
|
1
tests/bhyvexml2argvdata/bhyvexml2argv-console.ldargs
Normal file
1
tests/bhyvexml2argvdata/bhyvexml2argv-console.ldargs
Normal file
@ -0,0 +1 @@
|
||||
/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
|
1
tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.ldargs
Normal file
1
tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.ldargs
Normal file
@ -0,0 +1 @@
|
||||
/usr/sbin/bhyveload -m 214 -d /tmp/cdrom.iso bhyve
|
1
tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio.ldargs
Normal file
1
tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio.ldargs
Normal file
@ -0,0 +1 @@
|
||||
/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
|
1
tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs
Normal file
1
tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs
Normal file
@ -0,0 +1 @@
|
||||
/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
|
1
tests/bhyvexml2argvdata/bhyvexml2argv-serial.ldargs
Normal file
1
tests/bhyvexml2argvdata/bhyvexml2argv-serial.ldargs
Normal file
@ -0,0 +1 @@
|
||||
/usr/sbin/bhyveload -m 214 -d /tmp/freebsd.img bhyve
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user