mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 03:25:20 +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 \
|
||||
domainsnapshotxml2xmlout \
|
||||
fchostdata \
|
||||
genericxml2xmlindata \
|
||||
genericxml2xmloutdata \
|
||||
interfaceschemadata \
|
||||
lxcconf2xmldata \
|
||||
lxcxml2xmldata \
|
||||
@ -334,6 +336,8 @@ test_programs += metadatatest
|
||||
|
||||
test_programs += secretxml2xmltest
|
||||
|
||||
test_programs += genericxml2xmltest
|
||||
|
||||
if WITH_LINUX
|
||||
test_programs += virusbtest \
|
||||
virnetdevbandwidthtest \
|
||||
@ -800,6 +804,11 @@ secretxml2xmltest_SOURCES = \
|
||||
testutils.c testutils.h
|
||||
secretxml2xmltest_LDADD = $(LDADDS)
|
||||
|
||||
genericxml2xmltest_SOURCES = \
|
||||
genericxml2xmltest.c \
|
||||
testutils.c testutils.h
|
||||
genericxml2xmltest_LDADD = $(LDADDS)
|
||||
|
||||
|
||||
if WITH_STORAGE
|
||||
storagevolxml2argvtest_SOURCES = \
|
||||
|
@ -8,7 +8,7 @@ DIRS=""
|
||||
DIRS="$DIRS domainschemadata qemuxml2argvdata sexpr2xmldata"
|
||||
DIRS="$DIRS xmconfigdata xml2sexprdata qemuxml2xmloutdata"
|
||||
DIRS="$DIRS lxcxml2xmldata lxcxml2xmloutdata"
|
||||
DIRS="$DIRS bhyvexml2argvdata"
|
||||
DIRS="$DIRS bhyvexml2argvdata genericxml2xmlindata genericxml2xmloutdata"
|
||||
SCHEMA="domain.rng"
|
||||
|
||||
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