[PATCH v2 08/17] tests: Add usb-legacy-device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This provides coverage for the scenario in which an attempt is
made to use a USB device together with the legacy USB controller.

Note that, while the test case passes, the configuration it
produces doesn't actually work:

  $ qemu-system-x86_64 -M pc -usb -device usb-tablet,bus=usb.0
  Bus 'usb.0' not found

This is because the bus created by the legacy USB controller is
automatically assigned ID "usb-bus.0", but libvirt doesn't take
this into consideration when assigning addresses to USB devices.

In other words, the legacy USB controller will only work as long
as no attempt is made to attach devices to it, which arguably
doesn't make for a very useful controller.

Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx>
---
 .../usb-legacy-device.x86_64-latest.args      | 33 +++++++++++++++++++
 .../usb-legacy-device.x86_64-latest.xml       | 30 +++++++++++++++++
 tests/qemuxmlconfdata/usb-legacy-device.xml   | 15 +++++++++
 tests/qemuxmlconftest.c                       |  5 +++
 4 files changed, 83 insertions(+)
 create mode 100644 tests/qemuxmlconfdata/usb-legacy-device.x86_64-latest.args
 create mode 100644 tests/qemuxmlconfdata/usb-legacy-device.x86_64-latest.xml
 create mode 100644 tests/qemuxmlconfdata/usb-legacy-device.xml

diff --git a/tests/qemuxmlconfdata/usb-legacy-device.x86_64-latest.args b/tests/qemuxmlconfdata/usb-legacy-device.x86_64-latest.args
new file mode 100644
index 0000000000..1ef9965cbd
--- /dev/null
+++ b/tests/qemuxmlconfdata/usb-legacy-device.x86_64-latest.args
@@ -0,0 +1,33 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-guest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
+/usr/bin/qemu-system-x86_64 \
+-name guest=guest,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-accel tcg \
+-cpu qemu64 \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-display none \
+-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 \
+-boot strict=on \
+-usb \
+-device '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/usb-legacy-device.x86_64-latest.xml b/tests/qemuxmlconfdata/usb-legacy-device.x86_64-latest.xml
new file mode 100644
index 0000000000..2204c03380
--- /dev/null
+++ b/tests/qemuxmlconfdata/usb-legacy-device.x86_64-latest.xml
@@ -0,0 +1,30 @@
+<domain type='qemu'>
+  <name>guest</name>
+  <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+  <memory unit='KiB'>4194304</memory>
+  <currentMemory unit='KiB'>4194304</currentMemory>
+  <vcpu placement='static'>4</vcpu>
+  <os>
+    <type arch='x86_64' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <cpu mode='custom' match='exact' check='none'>
+    <model fallback='forbid'>qemu64</model>
+  </cpu>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <emulator>/usr/bin/qemu-system-x86_64</emulator>
+    <controller type='usb' index='0'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+    </controller>
+    <controller type='pci' index='0' model='pci-root'/>
+    <input type='tablet' bus='usb'/>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+    <audio id='1' type='none'/>
+    <memballoon model='none'/>
+  </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/usb-legacy-device.xml b/tests/qemuxmlconfdata/usb-legacy-device.xml
new file mode 100644
index 0000000000..f85b293022
--- /dev/null
+++ b/tests/qemuxmlconfdata/usb-legacy-device.xml
@@ -0,0 +1,15 @@
+<domain type='qemu'>
+  <name>guest</name>
+  <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+  <memory>4194304</memory>
+  <vcpu>4</vcpu>
+  <os>
+    <type arch='x86_64' machine='pc'>hvm</type>
+  </os>
+  <devices>
+    <emulator>/usr/bin/qemu-system-x86_64</emulator>
+    <controller type='usb'/>
+    <input type='tablet' bus='usb'/>
+    <memballoon model='none'/>
+  </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index b9dcdb81b9..b7778975c3 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1876,6 +1876,11 @@ mymain(void)
                  ARG_FLAGS, FLAG_EXPECT_FAILURE,
                  ARG_QEMU_CAPS_DEL, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_LAST,
                  ARG_END);
+    DO_TEST_FULL("usb-legacy-device", ".x86_64-latest",
+                 ARG_CAPS_ARCH, "x86_64",
+                 ARG_CAPS_VER, "latest",
+                 ARG_QEMU_CAPS_DEL, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_LAST,
+                 ARG_END);
 
     DO_TEST_CAPS_LATEST("usb-none");
 
-- 
2.43.0
_______________________________________________
Devel mailing list -- devel@xxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux