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@xxxxxxxx> --- 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list