Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
.../qemuxml2argv-channel-reconnect.args | 31 +++++++++++++++
...uxml2argv-chardev-reconnect-invalid-timeout.xml | 23 +++++++++++
.../qemuxml2argv-chardev-reconnect.args | 40 +++++++++++++++++++
.../qemuxml2argv-chardev-reconnect.xml | 46 ++++++++++++++++++++++
tests/qemuxml2argvtest.c | 11 ++++++
5 files changed, 151 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args
create mode 100644
tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect-invalid-timeout.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.xml
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args
b/tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args
new file mode 100644
index 0000000000..43a5d5bb3e
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args
@@ -0,0 +1,31 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-m 214 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c \
+-device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0xa \
+-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 \
+-usb \
+-chardev socket,id=charchannel0,host=localhost,port=1234,reconnect=10 \
+-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,\
+id=channel0,name=asdf \
+-chardev socket,id=charchannel1,path=/tmp/channel/domain--1-QEMUGuest1/fdsa,\
+server,nowait,reconnect=10 \
+-device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,\
+id=channel1,name=fdsa
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect-invalid-timeout.xml
b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect-invalid-timeout.xml
new file mode 100644
index 0000000000..73dac66816
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect-invalid-timeout.xml
@@ -0,0 +1,23 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i686</emulator>
+ <controller type='virtio-serial' index='1'>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x0a' function='0x0'/>
+ </controller>
+ <channel type='tcp'>
+ <source host='localhost' service='1234'>
+ <reconnect enabled='yes' timeout='0'/>
+ </source>
+ <target type='virtio' name='asdf'/>
+ </channel>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.args
b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.args
new file mode 100644
index 0000000000..133a2c6039
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.args
@@ -0,0 +1,40 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-m 214 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c \
+-device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0xa \
+-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 \
+-device usb-ccid,id=ccid0,bus=usb.0,port=1 \
+-usb \
+-chardev socket,id=charsmartcard0,path=/tmp/channel/domain-oldname/asdf,\
+reconnect=20 \
+-device ccid-card-passthru,chardev=charsmartcard0,id=smartcard0,bus=ccid0.0 \
+-chardev socket,id=charchannel0,host=localhost,port=1234,reconnect=10 \
+-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,\
+id=channel0,name=asdf \
+-chardev socket,id=charchannel1,path=/tmp/channel/domain--1-QEMUGuest1/fdsa,\
+server,nowait,reconnect=0 \
+-device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,\
+id=channel1,name=fdsa \
+-chardev socket,id=charredir0,host=localhost,port=3456,reconnect=15 \
+-device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 \
+-chardev socket,id=charrng0,host=localhost,port=2345,reconnect=5 \
+-object rng-egd,id=objrng0,chardev=charrng0 \
+-device virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.xml
b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.xml
new file mode 100644
index 0000000000..e0664b2a95
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.xml
@@ -0,0 +1,46 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i686</emulator>
+ <controller type='virtio-serial' index='1'>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x0a' function='0x0'/>
+ </controller>
+ <redirdev bus='usb' type='tcp'>
+ <source mode='connect' host='localhost'
service='3456'>
+ <reconnect enabled='yes' timeout='15'/>
+ </source>
+ </redirdev>
+ <smartcard mode='passthrough' type='unix'>
+ <source mode='connect'
path='/tmp/channel/domain-oldname/asdf'>
+ <reconnect enabled='yes' timeout='20'/>
+ </source>
+ </smartcard>
+ <channel type='tcp'>
+ <source mode='connect' host='localhost'
service='1234'>
+ <reconnect enabled='yes' timeout='10'/>
+ </source>
+ <target type='virtio' name='asdf'/>
+ </channel>
+ <channel type='unix'>
+ <source mode='connect'
path='/tmp/channel/domain-oldname/fdsa'>
+ <reconnect enabled='no'/>
+ </source>
+ <target type='virtio' name='fdsa'/>
+ </channel>
+ <memballoon model='none'/>
+ <rng model='virtio'>
+ <backend model='egd' type='tcp'>
+ <source mode='connect' host='localhost'
service='2345'>
+ <reconnect enabled='yes' timeout='5'/>
+ </source>
+ </backend>
+ </rng>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 5cdbc78eb8..39f8d66c04 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1341,6 +1341,17 @@ mymain(void)
QEMU_CAPS_NODEFCONFIG,
QEMU_CAPS_CCID_EMULATED);
+ DO_TEST("chardev-reconnect",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_CHARDEV_RECONNECT,
+ QEMU_CAPS_USB_REDIR,
+ QEMU_CAPS_DEVICE_VIRTIO_RNG,
+ QEMU_CAPS_OBJECT_RNG_EGD,
+ QEMU_CAPS_CCID_PASSTHRU);
+ DO_TEST_PARSE_ERROR("chardev-reconnect-invalid-timeout",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_CHARDEV_RECONNECT);
+
DO_TEST("usb-controller",
QEMU_CAPS_NODEFCONFIG);
DO_TEST("usb-piix3-controller",
--
2.13.5