[libvirt PATCH 5/7] tests: convert name-escape to use real caps

Ján Tomko jtomko at redhat.com
Tue Nov 2 15:27:56 UTC 2021


For later QEMUs than 2.11 we do FD passing for character devices.
Use both the latest capabilities and 2.11 capabilities, to catch
escaping of the chardev paths as well.

Signed-off-by: Ján Tomko <jtomko at redhat.com>
---
 ...pe.args => name-escape.x86_64-2.11.0.args} |  7 +--
 .../name-escape.x86_64-latest.args            | 50 +++++++++++++++++++
 tests/qemuxml2argvtest.c                      | 15 +-----
 3 files changed, 56 insertions(+), 16 deletions(-)
 rename tests/qemuxml2argvdata/{name-escape.args => name-escape.x86_64-2.11.0.args} (90%)
 create mode 100644 tests/qemuxml2argvdata/name-escape.x86_64-latest.args

diff --git a/tests/qemuxml2argvdata/name-escape.args b/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args
similarity index 90%
rename from tests/qemuxml2argvdata/name-escape.args
rename to tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args
index eb8d9ac10a..71770dc546 100644
--- a/tests/qemuxml2argvdata/name-escape.args
+++ b/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args
@@ -11,7 +11,7 @@ QEMU_AUDIO_DRV=spice \
 -name guest=foo=1,,bar=2,debug-threads=on \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-foo=1,,bar=2/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off \
+-machine pc-i440fx-2.11,accel=tcg,usb=off,dump-guest-core=off \
 -m 214 \
 -realtime mlock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
@@ -24,11 +24,11 @@ QEMU_AUDIO_DRV=spice \
 -no-shutdown \
 -no-acpi \
 -boot strict=on \
+-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x3 \
--usb \
 -device usb-ccid,id=ccid0,bus=usb.0,port=1 \
 -drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-ide0-0-0,cache=none,throttling.bps-total=5000,throttling.iops-total=6000,throttling.bps-total-max=10000,throttling.iops-total-max=11000,throttling.group=libvirt_iotune_group1,,foo \
--device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
+-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1,write-cache=on \
 -device ccid-card-emulated,backend=certificates,cert1=cert1,,foo,cert2=cert2,cert3=cert3,db=/etc/pki/nssdb,,foo,id=smartcard0,bus=ccid0.0 \
 -chardev tty,id=charserial0,path=/dev/ttyS2,,foo \
 -device isa-serial,chardev=charserial0,id=serial0 \
@@ -42,4 +42,5 @@ QEMU_AUDIO_DRV=spice \
 -drive file.driver=iscsi,file.portal=example.foo.org:3260,file.target=iqn.1992-01.com.example:my,,storage,file.lun=1,file.transport=tcp,if=none,format=raw,id=drive-hostdev0 \
 -device scsi-generic,drive=drive-hostdev0,id=hostdev0,bus=scsi0.0,channel=0,scsi-id=0,lun=4 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
 -msg timestamp=on
diff --git a/tests/qemuxml2argvdata/name-escape.x86_64-latest.args b/tests/qemuxml2argvdata/name-escape.x86_64-latest.args
new file mode 100644
index 0000000000..ceea515b17
--- /dev/null
+++ b/tests/qemuxml2argvdata/name-escape.x86_64-latest.args
@@ -0,0 +1,50 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/tmp/lib/domain--1-foo=1,bar=2 \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/tmp/lib/domain--1-foo=1,bar=2/.local/share \
+XDG_CACHE_HOME=/tmp/lib/domain--1-foo=1,bar=2/.cache \
+XDG_CONFIG_HOME=/tmp/lib/domain--1-foo=1,bar=2/.config \
+/usr/bin/qemu-system-i386 \
+-name guest=foo=1,,bar=2,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tmp/lib/domain--1-foo=1,bar=2/master-key.aes"}' \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-cpu qemu64 \
+-m 214 \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-no-acpi \
+-boot strict=on \
+-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
+-device '{"driver":"virtio-scsi-pci","id":"scsi0","bus":"pci.0","addr":"0x3"}' \
+-device '{"driver":"usb-ccid","id":"ccid0","bus":"usb.0","port":"1"}' \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","node-name":"libvirt-1-storage","cache":{"direct":true,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"cache":{"direct":true,"no-flush":false},"driver":"qcow2","file":"libvirt-1-storage"}' \
+-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-format","id":"ide0-0-0","bootindex":1,"write-cache":"on"}' \
+-device '{"driver":"ccid-card-emulated","backend":"certificates","cert1":"cert1,foo","cert2":"cert2","cert3":"cert3","db":"/etc/pki/nssdb,foo","id":"smartcard0","bus":"ccid0.0"}' \
+-chardev tty,id=charserial0,path=/dev/ttyS2,,foo \
+-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \
+-add-fd set=0,fd=5 \
+-chardev file,id=charserial1,path=/dev/fdset/0,append=on \
+-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \
+-chardev pipe,id=charchannel0,path=/tmp/guestfwd,,foo \
+-netdev user,guestfwd=tcp:10.0.2.1:4600-chardev:charchannel0,id=channel0 \
+-audiodev id=audio1,driver=spice \
+-vnc vnc=unix:/tmp/lib/domain--1-foo=1,,bar=2/vnc.sock,audiodev=audio1 \
+-spice unix,addr=/tmp/lib/domain--1-foo=1,,bar=2/spice.sock,gl=on,rendernode=/dev/dri/foo,,bar,seamless-migration=on \
+-device '{"driver":"cirrus-vga","id":"video0","bus":"pci.0","addr":"0x2"}' \
+-blockdev '{"driver":"iscsi","portal":"example.foo.org:3260","target":"iqn.1992-01.com.example:my,storage","lun":1,"transport":"tcp","node-name":"libvirt-2-backend","read-only":false}' \
+-device '{"driver":"scsi-generic","drive":"libvirt-2-backend","id":"hostdev0","bus":"scsi0.0","channel":0,"scsi-id":0,"lun":4}' \
+-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x4"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index dad5028380..804f01fb01 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -3180,19 +3180,8 @@ mymain(void)
                  ARG_PARSEFLAGS, VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE,
                  ARG_END);
 
-    DO_TEST("name-escape",
-            QEMU_CAPS_VNC,
-            QEMU_CAPS_DEVICE_CIRRUS_VGA,
-            QEMU_CAPS_SPICE,
-            QEMU_CAPS_SPICE_UNIX,
-            QEMU_CAPS_DEVICE_VIRTIO_GPU,
-            QEMU_CAPS_VIRTIO_GPU_VIRGL,
-            QEMU_CAPS_SPICE_GL,
-            QEMU_CAPS_SPICE_RENDERNODE,
-            QEMU_CAPS_DEVICE_ISA_SERIAL,
-            QEMU_CAPS_CHARDEV_FILE_APPEND,
-            QEMU_CAPS_CCID_EMULATED,
-            QEMU_CAPS_VIRTIO_SCSI);
+    DO_TEST_CAPS_VER("name-escape", "2.11.0");
+    DO_TEST_CAPS_LATEST("name-escape");
 
     DO_TEST_NOCAPS("master-key");
     DO_TEST("usb-long-port-path",
-- 
2.31.1




More information about the libvir-list mailing list