[libvirt] [PATCH 0/3] properly handle '=' in the VNC socket path

Pavel Hrdina (3): qemu: capabilities: introduce QEMU_CAPS_VNC_MULTI_SERVERS qemu: properly handle '=' in the VNC socket path tests: add test case for VNC unix path with '=' src/qemu/qemu_capabilities.c | 4 ++ src/qemu/qemu_capabilities.h | 3 ++ src/qemu/qemu_command.c | 5 ++- src/qemu/qemu_process.c | 51 ++++++++++++++++++++-- tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 + .../caps_2.6.0-gicv2.aarch64.xml | 1 + .../caps_2.6.0-gicv3.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 + ...muxml2argv-graphics-vnc-socket-new-cmdline.args | 22 ++++++++++ ...emuxml2argv-graphics-vnc-socket-new-cmdline.xml | 20 +++++++++ ...argv-graphics-vnc-socket-path-not-supported.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-name-escape.args | 2 +- tests/qemuxml2argvtest.c | 5 +++ 22 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.xml create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-path-not-supported.xml -- 2.13.3

Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_capabilities.c | 4 ++++ src/qemu/qemu_capabilities.h | 3 +++ tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 + 15 files changed, 20 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index c3f49a9754..e393b4ade6 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -431,7 +431,10 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, "virtio.ats", "loadparm", "spapr-pci-host-bridge", + + /* 265 */ "spapr-pci-host-bridge.numa_node", + "vnc-multi-servers" ); @@ -3221,6 +3224,7 @@ static struct virQEMUCapsCommandLineProps virQEMUCapsCommandLine[] = { { "spice", "rendernode", QEMU_CAPS_SPICE_RENDERNODE }, { "machine", "kernel_irqchip", QEMU_CAPS_MACHINE_KERNEL_IRQCHIP }, { "machine", "loadparm", QEMU_CAPS_LOADPARM }, + { "vnc", "vnc", QEMU_CAPS_VNC_MULTI_SERVERS }, }; static int diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 19f59a6d41..196ea3af87 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -417,7 +417,10 @@ typedef enum { QEMU_CAPS_VIRTIO_PCI_ATS, /* virtio-*-pci.ats */ QEMU_CAPS_LOADPARM, /* -machine loadparm */ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, /* -device spapr-pci-host-bridge */ + + /* 265 */ QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE, /* spapr-pci-host-bridge.numa_node= */ + QEMU_CAPS_VNC_MULTI_SERVERS, /* -vnc vnc=unix:/path */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml index b7ba2240aa..11c8765738 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml @@ -185,6 +185,7 @@ <flag name='block-write-threshold'/> <flag name='query-named-block-nodes'/> <flag name='kernel-irqchip'/> + <flag name='vnc-multi-servers'/> <version>2004000</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml index f3289df306..eee1ab24d9 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml @@ -191,6 +191,7 @@ <flag name='block-write-threshold'/> <flag name='query-named-block-nodes'/> <flag name='kernel-irqchip'/> + <flag name='vnc-multi-servers'/> <version>2005000</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml index af60bf6c6e..f8746f4c1e 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml @@ -169,6 +169,7 @@ <flag name='query-named-block-nodes'/> <flag name='kernel-irqchip'/> <flag name='kernel-irqchip.split'/> + <flag name='vnc-multi-servers'/> <version>2006000</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml index d4eb19102c..0ce1c8a333 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml @@ -169,6 +169,7 @@ <flag name='query-named-block-nodes'/> <flag name='kernel-irqchip'/> <flag name='kernel-irqchip.split'/> + <flag name='vnc-multi-servers'/> <version>2006000</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml index cd3c0b5aa6..92dba13b06 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml @@ -164,6 +164,7 @@ <flag name='kernel-irqchip'/> <flag name='kernel-irqchip.split'/> <flag name='spapr-pci-host-bridge'/> + <flag name='vnc-multi-servers'/> <version>2006000</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml index e4615c02ab..1937dc9c11 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml @@ -201,6 +201,7 @@ <flag name='query-named-block-nodes'/> <flag name='kernel-irqchip'/> <flag name='kernel-irqchip.split'/> + <flag name='vnc-multi-servers'/> <version>2006000</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml index ec79115cf1..1c1aab8dec 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml @@ -131,6 +131,7 @@ <flag name='query-named-block-nodes'/> <flag name='kernel-irqchip'/> <flag name='kernel-irqchip.split'/> + <flag name='vnc-multi-servers'/> <version>2007000</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml index 5f98db8d1a..b484411314 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml @@ -204,6 +204,7 @@ <flag name='kernel-irqchip'/> <flag name='kernel-irqchip.split'/> <flag name='intel-iommu.intremap'/> + <flag name='vnc-multi-servers'/> <version>2007000</version> <kvmVersion>0</kvmVersion> <package> (v2.7.0)</package> diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml index ac40ecc7fc..5a326d9881 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml @@ -133,6 +133,7 @@ <flag name='query-named-block-nodes'/> <flag name='kernel-irqchip'/> <flag name='kernel-irqchip.split'/> + <flag name='vnc-multi-servers'/> <version>2007093</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml index e42e47a8ee..e31abd4b8b 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -206,6 +206,7 @@ <flag name='kernel-irqchip.split'/> <flag name='intel-iommu.intremap'/> <flag name='intel-iommu.eim'/> + <flag name='vnc-multi-servers'/> <version>2008000</version> <kvmVersion>0</kvmVersion> <package> (v2.8.0)</package> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml index ba22878fe2..f80bfc434c 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml @@ -169,6 +169,7 @@ <flag name='virtio.ats'/> <flag name='spapr-pci-host-bridge'/> <flag name='spapr-pci-host-bridge.numa_node'/> + <flag name='vnc-multi-servers'/> <version>2009000</version> <kvmVersion>0</kvmVersion> <package> (v2.9.0)</package> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml index 0597924f1d..bed2c2da93 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml @@ -134,6 +134,7 @@ <flag name='kernel-irqchip.split'/> <flag name='virtio.iommu_platform'/> <flag name='virtio.ats'/> + <flag name='vnc-multi-servers'/> <version>2009000</version> <kvmVersion>0</kvmVersion> <package></package> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml index ae1530b5e6..2b406704a6 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -217,6 +217,7 @@ <flag name='intel-iommu.device-iotlb'/> <flag name='virtio.iommu_platform'/> <flag name='virtio.ats'/> + <flag name='vnc-multi-servers'/> <version>2009000</version> <kvmVersion>0</kvmVersion> <package> (v2.9.0)</package> -- 2.13.3

If a domain name contains a '=' and the unix socket path is auto-generated or socket path provided by user contains '=' QEMU is unable to properly parse the command line. In order to make it work we need to use the new command line syntax for VNC or we will fail to start/define such domain. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1352529 Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_command.c | 5 ++- src/qemu/qemu_process.c | 51 ++++++++++++++++++++-- .../qemuxml2argvdata/qemuxml2argv-name-escape.args | 2 +- tests/qemuxml2argvtest.c | 1 + 4 files changed, 54 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0ce5aa5906..a0394a00ae 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7802,7 +7802,10 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, switch (glisten->type) { case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET: - virBufferAddLit(&opt, "unix:"); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC_MULTI_SERVERS)) + virBufferAddLit(&opt, "vnc=unix:"); + else + virBufferAddLit(&opt, "unix:"); virQEMUBuildBufferEscapeComma(&opt, glisten->socket); break; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 525521aaf0..4e93420955 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4146,6 +4146,34 @@ qemuProcessGraphicsSetupNetworkAddress(virDomainGraphicsListenDefPtr glisten, return 0; } +static int +qemuProcessVncValidateUnixSocket(const char *socket, + virQEMUCapsPtr qemuCaps) +{ + if (!socket) + return 0; + + /* The way how QEMU process options disallow using '=' in the unix socket + * path. The reason is that the first option doesn't have to use its name + * and -vnc has it's first option without name. However when the parser + * finds first '=' in the option it always split it into key=value pair + * which blocks having '=' in the socket path. Since QEMU 2.3.0 it's possible + * to use "vnc" as a key for the first option so we can use a unix socket + * path with '='. */ + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC_MULTI_SERVERS)) + return 0; + + if (strchr(socket, '=')) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("QEMU does not support having '=' in the " + "VNC socket path '%s'."), socket); + return -1; + } + + return 0; +} + + static int qemuProcessGraphicsSetupListen(virQEMUDriverPtr driver, @@ -4192,6 +4220,9 @@ qemuProcessGraphicsSetupListen(virQEMUDriverPtr driver, if (virAsprintf(&glisten->socket, "%s/%s.sock", priv->libDir, type) < 0) goto cleanup; + if (qemuProcessVncValidateUnixSocket(glisten->socket, + priv->qemuCaps) < 0) + goto cleanup; glisten->fromConfig = true; glisten->type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET; } else if (listenAddr) { @@ -4216,6 +4247,9 @@ qemuProcessGraphicsSetupListen(virQEMUDriverPtr driver, if (virAsprintf(&glisten->socket, "%s/%s.sock", priv->libDir, type) < 0) goto cleanup; + if (qemuProcessVncValidateUnixSocket(glisten->socket, + priv->qemuCaps) < 0) + goto cleanup; glisten->autoGenerated = true; } break; @@ -4440,9 +4474,10 @@ qemuProcessStartWarnShmem(virDomainObjPtr vm) static int -qemuProcessStartValidateGraphics(virDomainObjPtr vm) +qemuProcessStartValidateGraphics(virDomainObjPtr vm, + virQEMUCapsPtr qemuCaps) { - size_t i; + size_t i, j; for (i = 0; i < vm->def->ngraphics; i++) { virDomainGraphicsDefPtr graphics = vm->def->graphics[i]; @@ -4464,6 +4499,16 @@ qemuProcessStartValidateGraphics(virDomainObjPtr vm) case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } + + if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) { + for (j = 0; j < graphics->nListens; j++) { + virDomainGraphicsListenDefPtr glisten = &graphics->listens[j]; + if (glisten->type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET && + qemuProcessVncValidateUnixSocket(glisten->socket, qemuCaps) < 0) { + return -1; + } + } + } } return 0; @@ -4633,7 +4678,7 @@ qemuProcessStartValidate(virQEMUDriverPtr driver, if (qemuProcessStartValidateXML(driver, vm, qemuCaps, caps, flags) < 0) return -1; - if (qemuProcessStartValidateGraphics(vm) < 0) + if (qemuProcessStartValidateGraphics(vm, qemuCaps) < 0) return -1; if (qemuProcessStartValidateVideo(vm, qemuCaps) < 0) diff --git a/tests/qemuxml2argvdata/qemuxml2argv-name-escape.args b/tests/qemuxml2argvdata/qemuxml2argv-name-escape.args index d94ab76312..dd0fc8dd05 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-name-escape.args +++ b/tests/qemuxml2argvdata/qemuxml2argv-name-escape.args @@ -20,7 +20,7 @@ bar=2/monitor.sock,server,nowait \ -no-acpi \ -boot c \ -usb \ --vnc unix:/tmp/lib/domain--1-foo=1,,bar=2/vnc.sock \ +-vnc vnc=unix:/tmp/lib/domain--1-foo=1,,bar=2/vnc.sock \ -spice unix,addr=/tmp/lib/domain--1-foo=1,,bar=2/spice.sock \ -vga cirrus \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 25cfedd9f8..7dc7e52d86 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2655,6 +2655,7 @@ mymain(void) QEMU_CAPS_NAME_DEBUG_THREADS, QEMU_CAPS_OBJECT_SECRET, QEMU_CAPS_VNC, + QEMU_CAPS_VNC_MULTI_SERVERS, QEMU_CAPS_NAME_GUEST, QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_SPICE, -- 2.13.3

Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- ...muxml2argv-graphics-vnc-socket-new-cmdline.args | 22 ++++++++++++++++++++++ ...emuxml2argv-graphics-vnc-socket-new-cmdline.xml | 20 ++++++++++++++++++++ ...argv-graphics-vnc-socket-path-not-supported.xml | 1 + tests/qemuxml2argvtest.c | 4 ++++ 4 files changed, 47 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.xml create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-path-not-supported.xml diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.args b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.args new file mode 100644 index 0000000000..862e96e066 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.args @@ -0,0 +1,22 @@ +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 \ +-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 \ +-usb \ +-vnc vnc=unix:/tmp/foo=bar.sock \ +-vga cirrus diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.xml new file mode 100644 index 0000000000..2b9758fecb --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-new-cmdline.xml @@ -0,0 +1,20 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + </os> + <devices> + <emulator>/usr/bin/qemu-system-i686</emulator> + <graphics type='vnc'> + <listen type='socket' socket='/tmp/foo=bar.sock'/> + </graphics> + <video> + <model type='cirrus' vram='16384' heads='1'/> + </video> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-path-not-supported.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-path-not-supported.xml new file mode 120000 index 0000000000..0102f50a76 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-socket-path-not-supported.xml @@ -0,0 +1 @@ +qemuxml2argv-graphics-vnc-socket-new-cmdline.xml \ No newline at end of file diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 7dc7e52d86..dfe23876d1 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1053,6 +1053,10 @@ mymain(void) DO_TEST("graphics-vnc-auto-socket", QEMU_CAPS_VNC, QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("graphics-vnc-none", QEMU_CAPS_VNC, QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-socket-new-cmdline", QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_VNC_MULTI_SERVERS); + DO_TEST_FAILURE("graphics-vnc-socket-path-not-supported", QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_CIRRUS_VGA); driver.config->vncSASL = 1; VIR_FREE(driver.config->vncSASLdir); -- 2.13.3

On Wed, Jul 26, 2017 at 03:41:13PM +0200, Ján Tomko wrote:
On Fri, Jul 21, 2017 at 08:11:28PM +0200, Pavel Hrdina wrote:
Pavel Hrdina (3): qemu: capabilities: introduce QEMU_CAPS_VNC_MULTI_SERVERS qemu: properly handle '=' in the VNC socket path tests: add test case for VNC unix path with '='
ACK series
Jan
Thanks, but I have to SNACK it. We can safely use the old syntax if QEMU_CAPS_VNC_MULTI_SERVERS is not available. I'll send a v2. Pavel
participants (2)
-
Ján Tomko
-
Pavel Hrdina