Add tests to testing HVM default features (pae, acpi, apic)
conversion from xm config to libvirt xml. If no pae|acpi|apic
specified in xm config, after conversion, libvirt xml should
by default include:
<features>
<pae/>
<apic/>
<acpi/>
</features>
Signed-off-by: Chunyan Liu <cyliu(a)suse.com>
---
Changes to v1:
* add testcase to test HVM default features conversion from
xm config to xml.
* introduce DO_TEST_PARSE and DO_TEST_FORMAT to allow test
one direction only.
.../xmconfigdata/test-fullvirt-default-feature.cfg | 23 +++++++++++
.../xmconfigdata/test-fullvirt-default-feature.xml | 48 ++++++++++++++++++++++
tests/xmconfigtest.c | 20 ++++++++-
3 files changed, 89 insertions(+), 2 deletions(-)
create mode 100644 tests/xmconfigdata/test-fullvirt-default-feature.cfg
create mode 100644 tests/xmconfigdata/test-fullvirt-default-feature.xml
diff --git a/tests/xmconfigdata/test-fullvirt-default-feature.cfg
b/tests/xmconfigdata/test-fullvirt-default-feature.cfg
new file mode 100644
index 0000000..5ce234f
--- /dev/null
+++ b/tests/xmconfigdata/test-fullvirt-default-feature.cfg
@@ -0,0 +1,23 @@
+name = "XenGuest2"
+uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
+maxmem = 579
+memory = 394
+vcpus = 1
+builder = "hvm"
+kernel = "/usr/lib/xen/boot/hvmloader"
+boot = "d"
+hpet = 1
+localtime = 0
+on_poweroff = "destroy"
+on_reboot = "restart"
+on_crash = "restart"
+device_model = "/usr/lib/xen/bin/qemu-dm"
+sdl = 0
+vnc = 1
+vncunused = 1
+vnclisten = "127.0.0.1"
+vncpasswd = "123poi"
+vif = [
"mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000,type=ioemu"
]
+parallel = "none"
+serial = "none"
+disk = [ "phy:/dev/HostVG/XenGuest2,hda,w",
"file:/root/boot.iso,hdc:cdrom,r" ]
diff --git a/tests/xmconfigdata/test-fullvirt-default-feature.xml
b/tests/xmconfigdata/test-fullvirt-default-feature.xml
new file mode 100644
index 0000000..57a6531
--- /dev/null
+++ b/tests/xmconfigdata/test-fullvirt-default-feature.xml
@@ -0,0 +1,48 @@
+<domain type='xen'>
+ <name>XenGuest2</name>
+ <uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>592896</memory>
+ <currentMemory unit='KiB'>403456</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='xenfv'>hvm</type>
+ <loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
+ <boot dev='cdrom'/>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ </features>
+ <clock offset='utc' adjustment='reset'>
+ <timer name='hpet' present='yes'/>
+ </clock>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
+ <disk type='block' device='disk'>
+ <driver name='phy'/>
+ <source dev='/dev/HostVG/XenGuest2'/>
+ <target dev='hda' bus='ide'/>
+ </disk>
+ <disk type='file' device='cdrom'>
+ <driver name='file'/>
+ <source file='/root/boot.iso'/>
+ <target dev='hdc' bus='ide'/>
+ <readonly/>
+ </disk>
+ <interface type='bridge'>
+ <mac address='00:16:3e:66:92:9c'/>
+ <source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
+ <model type='e1000'/>
+ </interface>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <graphics type='vnc' port='-1' autoport='yes'
listen='127.0.0.1' passwd='123poi'>
+ <listen type='address' address='127.0.0.1'/>
+ </graphics>
+ </devices>
+</domain>
diff --git a/tests/xmconfigtest.c b/tests/xmconfigtest.c
index 0c6f803..8a49eb5 100644
--- a/tests/xmconfigtest.c
+++ b/tests/xmconfigtest.c
@@ -176,6 +176,7 @@ testCompareHelper(const void *data)
const struct testInfo *info = data;
char *xml = NULL;
char *cfg = NULL;
+ char *cfgout = NULL;
if (virAsprintf(&xml, "%s/xmconfigdata/test-%s.xml",
abs_srcdir, info->name) < 0 ||
@@ -191,6 +192,7 @@ testCompareHelper(const void *data)
cleanup:
VIR_FREE(xml);
VIR_FREE(cfg);
+ VIR_FREE(cfgout);
return result;
}
@@ -207,18 +209,30 @@ mymain(void)
if (!(xmlopt = xenDomainXMLConfInit()))
return EXIT_FAILURE;
-#define DO_TEST(name, version) \
+#define DO_TEST_PARSE(name, version) \
do { \
struct testInfo info0 = { name, version, 0 }; \
- struct testInfo info1 = { name, version, 1 }; \
if (virtTestRun("Xen XM-2-XML Parse " name, \
testCompareHelper, &info0) < 0) \
ret = -1; \
+ } while (0)
+
+
+#define DO_TEST_FORMAT(name, version) \
+ do { \
+ struct testInfo info1 = { name, version, 1 }; \
if (virtTestRun("Xen XM-2-XML Format " name, \
testCompareHelper, &info1) < 0) \
ret = -1; \
} while (0)
+
+#define DO_TEST(name, version) \
+ do { \
+ DO_TEST_PARSE(name, version); \
+ DO_TEST_FORMAT(name, version); \
+ } while (0)
+
DO_TEST("paravirt-old-pvfb", 1);
DO_TEST("paravirt-old-pvfb-vncdisplay", 1);
DO_TEST("paravirt-new-pvfb", 3);
@@ -254,6 +268,8 @@ mymain(void)
DO_TEST("fullvirt-net-ioemu", 2);
DO_TEST("fullvirt-net-netfront", 2);
+ DO_TEST_FORMAT("fullvirt-default-feature", 2);
+
DO_TEST("escape-paths", 2);
DO_TEST("no-source-cdrom", 2);
DO_TEST("pci-devs", 2);
--
1.8.4.5