mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-05 04:25:19 +00:00
tests: add genericxml2xmltest
For testing hypervisor independent XML handling. Right now it's just populated with an example test case.
This commit is contained in:
parent
f8ce014319
commit
af3bd44fd6
@ -89,6 +89,8 @@ EXTRA_DIST = \
|
|||||||
domainsnapshotxml2xmlin \
|
domainsnapshotxml2xmlin \
|
||||||
domainsnapshotxml2xmlout \
|
domainsnapshotxml2xmlout \
|
||||||
fchostdata \
|
fchostdata \
|
||||||
|
genericxml2xmlindata \
|
||||||
|
genericxml2xmloutdata \
|
||||||
interfaceschemadata \
|
interfaceschemadata \
|
||||||
lxcconf2xmldata \
|
lxcconf2xmldata \
|
||||||
lxcxml2xmldata \
|
lxcxml2xmldata \
|
||||||
@ -334,6 +336,8 @@ test_programs += metadatatest
|
|||||||
|
|
||||||
test_programs += secretxml2xmltest
|
test_programs += secretxml2xmltest
|
||||||
|
|
||||||
|
test_programs += genericxml2xmltest
|
||||||
|
|
||||||
if WITH_LINUX
|
if WITH_LINUX
|
||||||
test_programs += virusbtest \
|
test_programs += virusbtest \
|
||||||
virnetdevbandwidthtest \
|
virnetdevbandwidthtest \
|
||||||
@ -800,6 +804,11 @@ secretxml2xmltest_SOURCES = \
|
|||||||
testutils.c testutils.h
|
testutils.c testutils.h
|
||||||
secretxml2xmltest_LDADD = $(LDADDS)
|
secretxml2xmltest_LDADD = $(LDADDS)
|
||||||
|
|
||||||
|
genericxml2xmltest_SOURCES = \
|
||||||
|
genericxml2xmltest.c \
|
||||||
|
testutils.c testutils.h
|
||||||
|
genericxml2xmltest_LDADD = $(LDADDS)
|
||||||
|
|
||||||
|
|
||||||
if WITH_STORAGE
|
if WITH_STORAGE
|
||||||
storagevolxml2argvtest_SOURCES = \
|
storagevolxml2argvtest_SOURCES = \
|
||||||
|
@ -8,7 +8,7 @@ DIRS=""
|
|||||||
DIRS="$DIRS domainschemadata qemuxml2argvdata sexpr2xmldata"
|
DIRS="$DIRS domainschemadata qemuxml2argvdata sexpr2xmldata"
|
||||||
DIRS="$DIRS xmconfigdata xml2sexprdata qemuxml2xmloutdata"
|
DIRS="$DIRS xmconfigdata xml2sexprdata qemuxml2xmloutdata"
|
||||||
DIRS="$DIRS lxcxml2xmldata lxcxml2xmloutdata"
|
DIRS="$DIRS lxcxml2xmldata lxcxml2xmloutdata"
|
||||||
DIRS="$DIRS bhyvexml2argvdata"
|
DIRS="$DIRS bhyvexml2argvdata genericxml2xmlindata genericxml2xmloutdata"
|
||||||
SCHEMA="domain.rng"
|
SCHEMA="domain.rng"
|
||||||
|
|
||||||
check_schema "$DIRS" "$SCHEMA"
|
check_schema "$DIRS" "$SCHEMA"
|
||||||
|
45
tests/genericxml2xmlindata/generic-disk-virtio.xml
Normal file
45
tests/genericxml2xmlindata/generic-disk-virtio.xml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<domain type='qemu'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219136</memory>
|
||||||
|
<currentMemory unit='KiB'>219136</currentMemory>
|
||||||
|
<vcpu placement='static'>1</vcpu>
|
||||||
|
<os>
|
||||||
|
<type arch='i686' machine='pc'>hvm</type>
|
||||||
|
<boot dev='hd'/>
|
||||||
|
</os>
|
||||||
|
<clock offset='utc'/>
|
||||||
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
<emulator>/usr/bin/qemu</emulator>
|
||||||
|
<disk type='block' device='disk'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source dev='/dev/HostVG/QEMUGuest1'/>
|
||||||
|
<target dev='hda' bus='ide'/>
|
||||||
|
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||||
|
</disk>
|
||||||
|
<disk type='block' device='cdrom'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source dev='/dev/HostVG/QEMUGuest2'/>
|
||||||
|
<target dev='hdc' bus='ide'/>
|
||||||
|
<readonly/>
|
||||||
|
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
|
||||||
|
</disk>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source file='/tmp/data.img'/>
|
||||||
|
<target dev='vda' bus='virtio'/>
|
||||||
|
</disk>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source file='/tmp/logs.img'/>
|
||||||
|
<target dev='vdb' bus='virtio'/>
|
||||||
|
</disk>
|
||||||
|
<controller type='usb' index='0'/>
|
||||||
|
<controller type='ide' index='0'/>
|
||||||
|
<controller type='pci' index='0' model='pci-root'/>
|
||||||
|
<memballoon model='none'/>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
45
tests/genericxml2xmloutdata/generic-disk-virtio.xml
Normal file
45
tests/genericxml2xmloutdata/generic-disk-virtio.xml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<domain type='qemu'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219136</memory>
|
||||||
|
<currentMemory unit='KiB'>219136</currentMemory>
|
||||||
|
<vcpu placement='static'>1</vcpu>
|
||||||
|
<os>
|
||||||
|
<type arch='i686' machine='pc'>hvm</type>
|
||||||
|
<boot dev='hd'/>
|
||||||
|
</os>
|
||||||
|
<clock offset='utc'/>
|
||||||
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
<emulator>/usr/bin/qemu</emulator>
|
||||||
|
<disk type='block' device='disk'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source dev='/dev/HostVG/QEMUGuest1'/>
|
||||||
|
<target dev='hda' bus='ide'/>
|
||||||
|
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||||
|
</disk>
|
||||||
|
<disk type='block' device='cdrom'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source dev='/dev/HostVG/QEMUGuest2'/>
|
||||||
|
<target dev='hdc' bus='ide'/>
|
||||||
|
<readonly/>
|
||||||
|
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
|
||||||
|
</disk>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source file='/tmp/data.img'/>
|
||||||
|
<target dev='vda' bus='virtio'/>
|
||||||
|
</disk>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source file='/tmp/logs.img'/>
|
||||||
|
<target dev='vdb' bus='virtio'/>
|
||||||
|
</disk>
|
||||||
|
<controller type='usb' index='0'/>
|
||||||
|
<controller type='ide' index='0'/>
|
||||||
|
<controller type='pci' index='0' model='pci-root'/>
|
||||||
|
<memballoon model='none'/>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
83
tests/genericxml2xmltest.c
Normal file
83
tests/genericxml2xmltest.c
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
#include "testutils.h"
|
||||||
|
#include "internal.h"
|
||||||
|
#include "virstring.h"
|
||||||
|
|
||||||
|
#define VIR_FROM_THIS VIR_FROM_NONE
|
||||||
|
|
||||||
|
static virCapsPtr caps;
|
||||||
|
static virDomainXMLOptionPtr xmlopt;
|
||||||
|
|
||||||
|
struct testInfo {
|
||||||
|
const char *name;
|
||||||
|
int different;
|
||||||
|
bool inactive_only;
|
||||||
|
};
|
||||||
|
|
||||||
|
static int
|
||||||
|
testCompareXMLToXMLHelper(const void *data)
|
||||||
|
{
|
||||||
|
const struct testInfo *info = data;
|
||||||
|
char *xml_in = NULL;
|
||||||
|
char *xml_out = NULL;
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
if (virAsprintf(&xml_in, "%s/genericxml2xmlindata/generic-%s.xml",
|
||||||
|
abs_srcdir, info->name) < 0 ||
|
||||||
|
virAsprintf(&xml_out, "%s/genericxml2xmloutdata/generic-%s.xml",
|
||||||
|
abs_srcdir, info->name) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
ret = testCompareDomXML2XMLFiles(caps, xmlopt, xml_in,
|
||||||
|
info->different ? xml_out : xml_in,
|
||||||
|
!info->inactive_only);
|
||||||
|
cleanup:
|
||||||
|
VIR_FREE(xml_in);
|
||||||
|
VIR_FREE(xml_out);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
mymain(void)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
if (!(caps = virTestGenericCapsInit()))
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
if (!(xmlopt = virTestGenericDomainXMLConfInit()))
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
#define DO_TEST_FULL(name, is_different, inactive) \
|
||||||
|
do { \
|
||||||
|
const struct testInfo info = {name, is_different, inactive}; \
|
||||||
|
if (virtTestRun("GENERIC XML-2-XML " name, \
|
||||||
|
testCompareXMLToXMLHelper, &info) < 0) \
|
||||||
|
ret = -1; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define DO_TEST(name) \
|
||||||
|
DO_TEST_FULL(name, 0, false)
|
||||||
|
|
||||||
|
#define DO_TEST_DIFFERENT(name) \
|
||||||
|
DO_TEST_FULL(name, 1, false)
|
||||||
|
|
||||||
|
DO_TEST_DIFFERENT("disk-virtio");
|
||||||
|
|
||||||
|
virObjectUnref(caps);
|
||||||
|
virObjectUnref(xmlopt);
|
||||||
|
|
||||||
|
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
VIRT_TEST_MAIN(mymain)
|
Loading…
Reference in New Issue
Block a user