#!/bin/sh # Exercise a bug whereby defining a valid domain could kill libvirtd. # The bug can also be exercised with a simple define/dumpxml pair to virsh. test -z "$srcdir" && srcdir=$(pwd) test -z "$abs_top_srcdir" && abs_top_srcdir=$(pwd)/.. test -z "$abs_top_builddir" && abs_top_builddir=$(pwd)/.. if test "$VERBOSE" = yes; then set -x $abs_top_builddir/tools/virsh --version fi . "$srcdir/test-lib.sh" fail=0 # Domain definition from Cole Robinson. cat <<\EOF > D.xml || fail=1 <domain type='test'> <name>D</name> <uuid>aaa3ae22-fed2-bfbd-ac02-3bea3bcfad82</uuid> <memory unit='KiB'>262144</memory> <currentMemory unit='KiB'>262144</currentMemory> <vcpu placement='static'>1</vcpu> <os> <type arch='i686' machine='pc'>hvm</type> <boot dev='cdrom'/> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <controller type='usb' index='0'/> <serial type='pty'> <target port='0'/> </serial> <serial type='pty'> <target port='1'/> </serial> <serial type='pty'> <target port='2'/> </serial> <parallel type='pty'> <target port='0'/> </parallel> <parallel type='pty'> <target port='1'/> </parallel> <parallel type='pty'> <target port='2'/> </parallel> <console type='pty'> <target type='serial' port='0'/> </console> <sound model='pcspk'/> <sound model='es1370'/> <memballoon model='virtio'/> </devices> </domain> EOF url=test:///default $abs_top_builddir/tools/virsh --connect "$url" 'define D.xml; dumpxml D' > out 2>&1 || fail=1 cat > exp <<EOF || fail=1 Domain D defined from D.xml $(cat D.xml) EOF compare exp out || fail=1 exit $fail