... and consolidate the cmdline/extra/root parsing to facilitate doing so. The logic is the same as xl's parse_cmdline from the current xen.git master branch (e6f0e099d2c17de47fd86e817b1998db903cab61). On the formatting side switch to producing cmdline= instead of extra=. Update a few tests and add serveral more. - test-cmdline is added to test the exclusive use of cmdline. - test-fullvirt-direct-kernel-boot.cfg is updated due to the switch on the formatting side and now tests the exclusive use of cmdline=. - Tests are added for both paravirt and fullvirt where the .cfg uses extra= and (paravirt only) root=. These are format (xl->xml) only since the inverse will generate cmdline= hence is not a round trip (which was already true if using root=, which used to generate extra= on the way back). - Tests are added for both paravirt and fullvirt where the .cfg declares cmdline= as well as bogus extra= and (paravirt only) root= entries which should be ignored. Again these are format only tests since the inverse won't include the bogus lines. The last two bullets here required splitting the DO_TEST macro into two halves, as is done in the xmconfigtest.c case. In order to introduce a use of VIR_WARN for logging I had to add virerror.h and VIR_LOG_INIT. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- v2: Use VIR_INFO (adding necessary infra) Don't initialise things to NULL when there is no need. v3: I know know the answer re VIR_FROM_THIS, because Jim fixed it. Initialise cmdline to NULL, since neither I nor gcc were smart enough to spot the uninitialised path I did this in preference to adding the else case, since that apparently won't be masking the compiler's ability to spot uninitialised vars in this function. Add tests Addjust xenFormatXLOS to produce cmdline= instead of extra=. --- src/xenconfig/xen_xl.c | 70 +++++++++++++--------- ...est-fullvirt-direct-kernel-boot-bogus-extra.cfg | 31 ++++++++++ ...est-fullvirt-direct-kernel-boot-bogus-extra.xml | 51 ++++++++++++++++ .../test-fullvirt-direct-kernel-boot-extra.cfg | 30 ++++++++++ .../test-fullvirt-direct-kernel-boot-extra.xml | 51 ++++++++++++++++ .../test-fullvirt-direct-kernel-boot.cfg | 2 +- .../test-paravirt-cmdline-bogus-extra-root.cfg | 13 ++++ .../test-paravirt-cmdline-bogus-extra-root.xml | 32 ++++++++++ .../test-paravirt-cmdline-extra-root.cfg | 15 +++++ .../test-paravirt-cmdline-extra-root.xml | 32 ++++++++++ tests/xlconfigdata/test-paravirt-cmdline.cfg | 14 +++++ tests/xlconfigdata/test-paravirt-cmdline.xml | 32 ++++++++++ tests/xlconfigtest.c | 24 ++++++-- 13 files changed, 365 insertions(+), 32 deletions(-) create mode 100644 tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.cfg create mode 100644 tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.xml create mode 100644 tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.cfg create mode 100644 tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.xml create mode 100644 tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.cfg create mode 100644 tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.xml create mode 100644 tests/xlconfigdata/test-paravirt-cmdline-extra-root.cfg create mode 100644 tests/xlconfigdata/test-paravirt-cmdline-extra-root.xml create mode 100644 tests/xlconfigdata/test-paravirt-cmdline.cfg create mode 100644 tests/xlconfigdata/test-paravirt-cmdline.xml diff --git a/src/xenconfig/xen_xl.c b/src/xenconfig/xen_xl.c index 026cbcc..be194e3 100644 --- a/src/xenconfig/xen_xl.c +++ b/src/xenconfig/xen_xl.c @@ -27,6 +27,7 @@ #include "virconf.h" #include "virerror.h" +#include "virlog.h" #include "domain_conf.h" #include "viralloc.h" #include "virstring.h" @@ -35,6 +36,8 @@ #define VIR_FROM_THIS VIR_FROM_XENXL +VIR_LOG_INIT("xen.xen_xl"); + /* * Xen provides a libxl utility library, with several useful functions, * specifically xlu_disk_parse for parsing xl disk config strings. @@ -58,11 +61,46 @@ extern int xlu_disk_parse(XLU_Config *cfg, libxl_device_disk *disk); #endif +static int xenParseCmdline(virConfPtr conf, char **r_cmdline) +{ + char *cmdline = NULL; + const char *root, *extra, *buf; + + if (xenConfigGetString(conf, "cmdline", &buf, NULL) < 0) + return -1; + + if (xenConfigGetString(conf, "root", &root, NULL) < 0) + return -1; + + if (xenConfigGetString(conf, "extra", &extra, NULL) < 0) + return -1; + + if (buf) { + if (VIR_STRDUP(cmdline, buf) < 0) + return -1; + if (root || extra) + VIR_WARN("ignoring root= and extra= in favour of cmdline="); + } else { + if (root && extra) { + if (virAsprintf(&cmdline, "root=%s %s", root, extra) < 0) + return -1; + } else if (root) { + if (virAsprintf(&cmdline, "root=%s", root) < 0) + return -1; + } else if (extra) { + if (VIR_STRDUP(cmdline, extra) < 0) + return -1; + } + } + + *r_cmdline = cmdline; + return 0; +} + static int xenParseXLOS(virConfPtr conf, virDomainDefPtr def, virCapsPtr caps) { size_t i; - const char *extra, *root; if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) { const char *boot; @@ -84,19 +122,8 @@ xenParseXLOS(virConfPtr conf, virDomainDefPtr def, virCapsPtr caps) if (xenConfigCopyStringOpt(conf, "ramdisk", &def->os.initrd) < 0) return -1; - if (xenConfigGetString(conf, "extra", &extra, NULL) < 0) - return -1; - - if (xenConfigGetString(conf, "root", &root, NULL) < 0) + if (xenParseCmdline(conf, &def->os.cmdline) < 0) return -1; - - if (root) { - if (virAsprintf(&def->os.cmdline, "root=%s %s", root, extra) < 0) - return -1; - } else { - if (VIR_STRDUP(def->os.cmdline, extra) < 0) - return -1; - } #endif if (xenConfigGetString(conf, "boot", &boot, "c") < 0) @@ -132,19 +159,8 @@ xenParseXLOS(virConfPtr conf, virDomainDefPtr def, virCapsPtr caps) if (xenConfigCopyStringOpt(conf, "ramdisk", &def->os.initrd) < 0) return -1; - if (xenConfigGetString(conf, "extra", &extra, NULL) < 0) - return -1; - - if (xenConfigGetString(conf, "root", &root, NULL) < 0) + if (xenParseCmdline(conf, &def->os.cmdline) < 0) return -1; - - if (root) { - if (virAsprintf(&def->os.cmdline, "root=%s %s", root, extra) < 0) - return -1; - } else { - if (VIR_STRDUP(def->os.cmdline, extra) < 0) - return -1; - } } return 0; @@ -503,7 +519,7 @@ xenFormatXLOS(virConfPtr conf, virDomainDefPtr def) return -1; if (def->os.cmdline && - xenConfigSetString(conf, "extra", def->os.cmdline) < 0) + xenConfigSetString(conf, "cmdline", def->os.cmdline) < 0) return -1; #endif @@ -554,7 +570,7 @@ xenFormatXLOS(virConfPtr conf, virDomainDefPtr def) return -1; if (def->os.cmdline && - xenConfigSetString(conf, "extra", def->os.cmdline) < 0) + xenConfigSetString(conf, "cmdline", def->os.cmdline) < 0) return -1; } /* !hvm */ diff --git a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.cfg b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.cfg new file mode 100644 index 0000000..83ab975 --- /dev/null +++ b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.cfg @@ -0,0 +1,31 @@ +name = "XenGuest2" +uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809" +maxmem = 579 +memory = 394 +vcpus = 1 +pae = 1 +acpi = 1 +apic = 1 +hap = 0 +viridian = 0 +rtc_timeoffset = 0 +localtime = 0 +on_poweroff = "destroy" +on_reboot = "restart" +on_crash = "restart" +device_model = "/usr/lib/xen/bin/qemu-system-i386" +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" ] +parallel = "none" +serial = "none" +builder = "hvm" +kernel = "/tmp/vmlinuz" +ramdisk = "/tmp/initrd" +cmdline = "ignore_loglvl" +extra = "SHOULD BE IGNORED" +boot = "d" +disk = [ "/dev/HostVG/XenGuest2,raw,hda,w,backendtype=phy", "/root/boot.iso,raw,hdc,r,backendtype=qdisk,devtype=cdrom" ] diff --git a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.xml b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.xml new file mode 100644 index 0000000..f750e02 --- /dev/null +++ b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-bogus-extra.xml @@ -0,0 +1,51 @@ +<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='x86_64' machine='xenfv'>hvm</type> + <loader type='rom'>/usr/lib/xen/boot/hvmloader</loader> + <kernel>/tmp/vmlinuz</kernel> + <initrd>/tmp/initrd</initrd> + <cmdline>ignore_loglvl</cmdline> + <boot dev='cdrom'/> + </os> + <features> + <acpi/> + <apic/> + <pae/> + </features> + <clock offset='variable' adjustment='0' basis='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator> + <disk type='block' device='disk'> + <driver name='phy' type='raw'/> + <source dev='/dev/HostVG/XenGuest2'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <disk type='file' device='cdrom'> + <driver name='qemu' type='raw'/> + <source file='/root/boot.iso'/> + <target dev='hdc' bus='ide'/> + <readonly/> + <address type='drive' controller='0' bus='1' target='0' unit='0'/> + </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/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.cfg b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.cfg new file mode 100644 index 0000000..f452af6 --- /dev/null +++ b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.cfg @@ -0,0 +1,30 @@ +name = "XenGuest2" +uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809" +maxmem = 579 +memory = 394 +vcpus = 1 +pae = 1 +acpi = 1 +apic = 1 +hap = 0 +viridian = 0 +rtc_timeoffset = 0 +localtime = 0 +on_poweroff = "destroy" +on_reboot = "restart" +on_crash = "restart" +device_model = "/usr/lib/xen/bin/qemu-system-i386" +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" ] +parallel = "none" +serial = "none" +builder = "hvm" +kernel = "/tmp/vmlinuz" +ramdisk = "/tmp/initrd" +extra = "ignore_loglvl" +boot = "d" +disk = [ "/dev/HostVG/XenGuest2,raw,hda,w,backendtype=phy", "/root/boot.iso,raw,hdc,r,backendtype=qdisk,devtype=cdrom" ] diff --git a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.xml b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.xml new file mode 100644 index 0000000..f750e02 --- /dev/null +++ b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot-extra.xml @@ -0,0 +1,51 @@ +<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='x86_64' machine='xenfv'>hvm</type> + <loader type='rom'>/usr/lib/xen/boot/hvmloader</loader> + <kernel>/tmp/vmlinuz</kernel> + <initrd>/tmp/initrd</initrd> + <cmdline>ignore_loglvl</cmdline> + <boot dev='cdrom'/> + </os> + <features> + <acpi/> + <apic/> + <pae/> + </features> + <clock offset='variable' adjustment='0' basis='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator> + <disk type='block' device='disk'> + <driver name='phy' type='raw'/> + <source dev='/dev/HostVG/XenGuest2'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <disk type='file' device='cdrom'> + <driver name='qemu' type='raw'/> + <source file='/root/boot.iso'/> + <target dev='hdc' bus='ide'/> + <readonly/> + <address type='drive' controller='0' bus='1' target='0' unit='0'/> + </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/xlconfigdata/test-fullvirt-direct-kernel-boot.cfg b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot.cfg index f452af6..32b08e1 100644 --- a/tests/xlconfigdata/test-fullvirt-direct-kernel-boot.cfg +++ b/tests/xlconfigdata/test-fullvirt-direct-kernel-boot.cfg @@ -25,6 +25,6 @@ serial = "none" builder = "hvm" kernel = "/tmp/vmlinuz" ramdisk = "/tmp/initrd" -extra = "ignore_loglvl" +cmdline = "ignore_loglvl" boot = "d" disk = [ "/dev/HostVG/XenGuest2,raw,hda,w,backendtype=phy", "/root/boot.iso,raw,hdc,r,backendtype=qdisk,devtype=cdrom" ] diff --git a/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.cfg b/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.cfg new file mode 100644 index 0000000..c5b25af --- /dev/null +++ b/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.cfg @@ -0,0 +1,13 @@ +localtime = 0 +name = "XenGuest2" +uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809" +maxmem = 579 +memory = 394 +vcpus = 1 +vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge" ] +kernel = "/tmp/vmlinuz" +ramdisk = "/tmp/initrd" +cmdline = "root=/dev/xvda1 console=hvc0" +extra = "SHOULD BE IGNORED" +root = "SHOULD BE IGNORED" +disk = [ "/dev/HostVG/XenGuest2,raw,xvda,w" ] diff --git a/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.xml b/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.xml new file mode 100644 index 0000000..f4ab9e6 --- /dev/null +++ b/tests/xlconfigdata/test-paravirt-cmdline-bogus-extra-root.xml @@ -0,0 +1,32 @@ +<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='x86_64' machine='xenpv'>linux</type> + <kernel>/tmp/vmlinuz</kernel> + <initrd>/tmp/initrd</initrd> + <cmdline>root=/dev/xvda1 console=hvc0</cmdline> + </os> + <clock offset='utc' adjustment='reset'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/dev/HostVG/XenGuest2'/> + <target dev='xvda' bus='xen'/> + </disk> + <interface type='bridge'> + <mac address='00:16:3e:66:92:9c'/> + <source bridge='xenbr1'/> + <script path='vif-bridge'/> + </interface> + <console type='pty'> + <target type='xen' port='0'/> + </console> + </devices> +</domain> diff --git a/tests/xlconfigdata/test-paravirt-cmdline-extra-root.cfg b/tests/xlconfigdata/test-paravirt-cmdline-extra-root.cfg new file mode 100644 index 0000000..d0c503b --- /dev/null +++ b/tests/xlconfigdata/test-paravirt-cmdline-extra-root.cfg @@ -0,0 +1,15 @@ +name = "XenGuest2" +uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809" +maxmem = 579 +memory = 394 +vcpus = 1 +localtime = 0 +on_poweroff = "destroy" +on_reboot = "restart" +on_crash = "restart" +vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge" ] +kernel = "/tmp/vmlinuz" +ramdisk = "/tmp/initrd" +root = "/dev/xvda1" +extra = "console=hvc0" +disk = [ "/dev/HostVG/XenGuest2,raw,xvda,w,backendtype=qdisk" ] diff --git a/tests/xlconfigdata/test-paravirt-cmdline-extra-root.xml b/tests/xlconfigdata/test-paravirt-cmdline-extra-root.xml new file mode 100644 index 0000000..f4ab9e6 --- /dev/null +++ b/tests/xlconfigdata/test-paravirt-cmdline-extra-root.xml @@ -0,0 +1,32 @@ +<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='x86_64' machine='xenpv'>linux</type> + <kernel>/tmp/vmlinuz</kernel> + <initrd>/tmp/initrd</initrd> + <cmdline>root=/dev/xvda1 console=hvc0</cmdline> + </os> + <clock offset='utc' adjustment='reset'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/dev/HostVG/XenGuest2'/> + <target dev='xvda' bus='xen'/> + </disk> + <interface type='bridge'> + <mac address='00:16:3e:66:92:9c'/> + <source bridge='xenbr1'/> + <script path='vif-bridge'/> + </interface> + <console type='pty'> + <target type='xen' port='0'/> + </console> + </devices> +</domain> diff --git a/tests/xlconfigdata/test-paravirt-cmdline.cfg b/tests/xlconfigdata/test-paravirt-cmdline.cfg new file mode 100644 index 0000000..c512a05 --- /dev/null +++ b/tests/xlconfigdata/test-paravirt-cmdline.cfg @@ -0,0 +1,14 @@ +name = "XenGuest2" +uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809" +maxmem = 579 +memory = 394 +vcpus = 1 +localtime = 0 +on_poweroff = "destroy" +on_reboot = "restart" +on_crash = "restart" +vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge" ] +kernel = "/tmp/vmlinuz" +ramdisk = "/tmp/initrd" +cmdline = "root=/dev/xvda1 console=hvc0" +disk = [ "/dev/HostVG/XenGuest2,raw,xvda,w,backendtype=qdisk" ] diff --git a/tests/xlconfigdata/test-paravirt-cmdline.xml b/tests/xlconfigdata/test-paravirt-cmdline.xml new file mode 100644 index 0000000..f4ab9e6 --- /dev/null +++ b/tests/xlconfigdata/test-paravirt-cmdline.xml @@ -0,0 +1,32 @@ +<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='x86_64' machine='xenpv'>linux</type> + <kernel>/tmp/vmlinuz</kernel> + <initrd>/tmp/initrd</initrd> + <cmdline>root=/dev/xvda1 console=hvc0</cmdline> + </os> + <clock offset='utc' adjustment='reset'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/dev/HostVG/XenGuest2'/> + <target dev='xvda' bus='xen'/> + </disk> + <interface type='bridge'> + <mac address='00:16:3e:66:92:9c'/> + <source bridge='xenbr1'/> + <script path='vif-bridge'/> + </interface> + <console type='pty'> + <target type='xen' port='0'/> + </console> + </devices> +</domain> diff --git a/tests/xlconfigtest.c b/tests/xlconfigtest.c index e997009..bad69ca 100644 --- a/tests/xlconfigtest.c +++ b/tests/xlconfigtest.c @@ -180,29 +180,45 @@ mymain(void) if (!(xmlopt = libxlCreateXMLConf())) return EXIT_FAILURE; -#define DO_TEST(name) \ +#define DO_TEST_PARSE(name) \ do { \ struct testInfo info0 = { name, 0 }; \ - struct testInfo info1 = { name, 1 }; \ - if (virtTestRun("Xen XM-2-XML Parse " name, \ + if (virtTestRun("Xen XL-2-XML Parse " name, \ testCompareHelper, &info0) < 0) \ ret = -1; \ - if (virtTestRun("Xen XM-2-XML Format " name, \ + } while (0) + +#define DO_TEST_FORMAT(name) \ + do { \ + struct testInfo info1 = { name, 1 }; \ + if (virtTestRun("Xen XL-2-XML Format " name, \ testCompareHelper, &info1) < 0) \ ret = -1; \ } while (0) +#define DO_TEST(name) \ + do { \ + DO_TEST_PARSE(name); \ + DO_TEST_FORMAT(name); \ + } while (0) + DO_TEST("paravirt-maxvcpus"); DO_TEST("new-disk"); DO_TEST("spice"); DO_TEST("spice-features"); DO_TEST("vif-rate"); + DO_TEST("paravirt-cmdline"); + DO_TEST_FORMAT("paravirt-cmdline-extra-root"); + DO_TEST_FORMAT("paravirt-cmdline-bogus-extra-root"); + #ifdef LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST DO_TEST("fullvirt-multiusb"); #endif #ifdef LIBXL_HAVE_BUILDINFO_KERNEL DO_TEST("fullvirt-direct-kernel-boot"); + DO_TEST_FORMAT("fullvirt-direct-kernel-boot-extra"); + DO_TEST_FORMAT("fullvirt-direct-kernel-boot-bogus-extra"); #endif virObjectUnref(caps); -- 2.1.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list