diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args b/tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args
new file mode 100644
index 0000000000000000000000000000000000000000..43a5d5bb3e525bcc7ee172d32ae42a4b4de77d72
--- /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 0000000000000000000000000000000000000000..73dac668164884b408cba7a4f8e47441fa00db16
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect-invalid-timeout.xml
@@ -0,0 +1,23 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219136
+ 1
+
+ hvm
+
+
+
+ /usr/bin/qemu-system-i686
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.args b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.args
new file mode 100644
index 0000000000000000000000000000000000000000..133a2c60396e28449ebf910b2ee3107486ae3774
--- /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 0000000000000000000000000000000000000000..e0664b2a95320b5e947986b815014522fde79ef1
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.xml
@@ -0,0 +1,46 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219136
+ 1
+
+ hvm
+
+
+
+ /usr/bin/qemu-system-i686
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 5cdbc78eb808da5a29b6f68ef2b18422b33e4e39..39f8d66c04e1d7f313075bcebbfa111363d57430 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",