aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2011-10-10 18:22:44 +0200
committerGuido Günther <agx@sigxcpu.org>2011-10-10 22:58:04 +0200
commitdca1a6b46fecca57eac8914f30ad5a41a9f038fe (patch)
tree97bef3e765eabcf1c80ce417bad3cbc3251065d3 /tests
parentxen: add error handling to UUID parsing (diff)
downloadlibvirt-dca1a6b46fecca57eac8914f30ad5a41a9f038fe.tar.gz
libvirt-dca1a6b46fecca57eac8914f30ad5a41a9f038fe.tar.bz2
libvirt-dca1a6b46fecca57eac8914f30ad5a41a9f038fe.zip
xen_xs: Guard against set but empty kernel argument
On xen 4.1 I observed configurations that look like: (image (hvm (kernel '') (loader '/foo/bar') )) The kernel element is there but unset. This leads to an empty <kernel/> element in the XML and even worse makes us skip the boot order parsing and therefore not emit a <boot device='$dev>'/> element which breaks CD booting.
Diffstat (limited to 'tests')
-rw-r--r--tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.sexpr9
-rw-r--r--tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml41
-rw-r--r--tests/sexpr2xmltest.c2
3 files changed, 52 insertions, 0 deletions
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.sexpr b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.sexpr
new file mode 100644
index 000000000..ded668c70
--- /dev/null
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.sexpr
@@ -0,0 +1,9 @@
+(domain (domid 3)(name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)\
+(uuid 'b5d70dd275cdaca517769660b059d8bc')(on_poweroff 'destroy')\
+(on_reboot 'restart')(on_crash 'restart')\
+(image (hvm (loader /usr/lib/xen/boot/hvmloader)(kernel '')\
+(device_model '/usr/lib64/xen/bin/qemu-dm')(boot d)(cdrom '/root/boot.iso')\
+(acpi 1)(vnc 1)(keymap ja)))(device (vbd (dev 'ioemu:hda')\
+(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
+(script 'vif-bridge')(type ioemu))))
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
new file mode 100644
index 000000000..2c1c75683
--- /dev/null
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
@@ -0,0 +1,41 @@
+<domain type='xen' id='3'>
+ <name>fvtest</name>
+ <uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
+ <memory>409600</memory>
+ <currentMemory>409600</currentMemory>
+ <vcpu>1</vcpu>
+ <os>
+ <type>hvm</type>
+ <loader>/usr/lib/xen/boot/hvmloader</loader>
+ <boot dev='cdrom'/>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
+ <disk type='file' device='disk'>
+ <driver name='file'/>
+ <source file='/root/foo.img'/>
+ <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:1b:b1:47'/>
+ <source bridge='xenbr0'/>
+ <script path='vif-bridge'/>
+ <target dev='vif3.0'/>
+ </interface>
+ <input type='mouse' bus='ps2'/>
+ <graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
+ </devices>
+</domain>
diff --git a/tests/sexpr2xmltest.c b/tests/sexpr2xmltest.c
index 26a987dbc..126a78c57 100644
--- a/tests/sexpr2xmltest.c
+++ b/tests/sexpr2xmltest.c
@@ -180,6 +180,8 @@ mymain(void)
DO_TEST("fv-net-ioemu", "fv-net-ioemu", 1);
DO_TEST("fv-net-netfront", "fv-net-netfront", 1);
+ DO_TEST("fv-empty-kernel", "fv-empty-kernel", 1);
+
DO_TEST("boot-grub", "boot-grub", 1);
virCapabilitiesFree(caps);