[libvirt] [PATCH V2 2/2] Add tests to xmconfigtest

Chunyan Liu cyliu at suse.com
Tue Dec 23 06:36:05 UTC 2014


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 at 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




More information about the libvir-list mailing list