From 4005d83a9acbd536eae487fb18ac290a3ed6fd7a Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Tue, 5 Aug 2025 18:28:44 +0200 Subject: [PATCH] tests: Fix some usb-controller-*-unavailable cases MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit These tests are intended to show what happens when the device that libvirt would use by default is not available in QEMU by dropping the corresponding capabilities, but we're not doing that correctly at the moment and so we still get the default USB controller instead of a failure. Specifically, we should be dropping all capabilities related to devices that might be used as default or automatic USB controllers for the machine type so that libvirt will report an error, but for these few tests we are currently only listing a subset of the capabilities that we should be dropping. Note that the usb-controller-automatic-unavailable tests are still behaving the same despite dropping all the expected capabilities: the reason is that, for that scenario, we're not currently checking whether the device is available before using it. That's a separate issue that will be addressed in an upcoming commit. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik Reviewed-by: Peter Krempa Reviewed-by: Ján Tomko --- ...ault-unavailable-nousb.aarch64-latest.args | 32 ------------------- ...fault-unavailable-nousb.aarch64-latest.err | 1 + ...fault-unavailable-nousb.aarch64-latest.xml | 2 +- ...t-unavailable-realview.aarch64-latest.args | 31 ------------------ ...lt-unavailable-realview.aarch64-latest.err | 1 + ...lt-unavailable-realview.aarch64-latest.xml | 2 +- tests/qemuxmlconftest.c | 12 ++++--- 7 files changed, 11 insertions(+), 70 deletions(-) delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.args create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.err delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.args create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.err diff --git a/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.args b/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.args deleted file mode 100644 index 0fb2909dd2..0000000000 --- a/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.args +++ /dev/null @@ -1,32 +0,0 @@ -LC_ALL=C \ -PATH=/bin \ -HOME=/var/lib/libvirt/qemu/domain--1-aarch64test \ -USER=test \ -LOGNAME=test \ -XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.local/share \ -XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.cache \ -XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.config \ -/usr/bin/qemu-system-aarch64 \ --name guest=aarch64test,debug-threads=on \ --S \ --object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-aarch64test/master-key.aes"}' \ --machine collie,usb=off,dump-guest-core=off,memory-backend=strongarm.sdram \ --accel kvm \ --cpu host \ --m size=1048576k \ --object '{"qom-type":"memory-backend-ram","id":"strongarm.sdram","size":1073741824}' \ --overcommit mem-lock=off \ --smp 1,sockets=1,cores=1,threads=1 \ --uuid 6ba410c5-1e5c-4d57-bee7-2228e7ffa32f \ --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 \ --device '{"driver":"qemu-xhci","id":"usb"}' \ --audiodev '{"id":"audio1","driver":"none"}' \ --sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ --msg timestamp=on diff --git a/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.err b/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.err new file mode 100644 index 0000000000..cac4e8e760 --- /dev/null +++ b/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.err @@ -0,0 +1 @@ +internal error: Unable to determine model for USB controller idx=0 diff --git a/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.xml b/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.xml index fa258c5671..ac5f270a3a 100644 --- a/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.xml +++ b/tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.xml @@ -15,7 +15,7 @@ destroy /usr/bin/qemu-system-aarch64 - + diff --git a/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.args b/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.args deleted file mode 100644 index 446ca8aa42..0000000000 --- a/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.args +++ /dev/null @@ -1,31 +0,0 @@ -LC_ALL=C \ -PATH=/bin \ -HOME=/var/lib/libvirt/qemu/domain--1-aarch64test \ -USER=test \ -LOGNAME=test \ -XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.local/share \ -XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.cache \ -XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.config \ -/usr/bin/qemu-system-aarch64 \ --name guest=aarch64test,debug-threads=on \ --S \ --object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-aarch64test/master-key.aes"}' \ --machine realview-pbx-a9,usb=off,dump-guest-core=off \ --accel kvm \ --cpu host \ --m size=1048576k \ --overcommit mem-lock=off \ --smp 1,sockets=1,cores=1,threads=1 \ --uuid 6ba410c5-1e5c-4d57-bee7-2228e7ffa32f \ --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 \ --device '{"driver":"qemu-xhci","id":"usb"}' \ --audiodev '{"id":"audio1","driver":"none"}' \ --sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ --msg timestamp=on diff --git a/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.err b/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.err new file mode 100644 index 0000000000..cac4e8e760 --- /dev/null +++ b/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.err @@ -0,0 +1 @@ +internal error: Unable to determine model for USB controller idx=0 diff --git a/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.xml b/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.xml index f37501b769..dfa8ef8dbe 100644 --- a/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.xml +++ b/tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.xml @@ -15,7 +15,7 @@ destroy /usr/bin/qemu-system-aarch64 - + diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c index f00b5c537b..491ff4047a 100644 --- a/tests/qemuxmlconftest.c +++ b/tests/qemuxmlconftest.c @@ -2090,7 +2090,7 @@ mymain(void) ARG_CAPS_ARCH, "armv7l", ARG_CAPS_VER, "latest", ARG_FLAGS, FLAG_EXPECT_FAILURE, - ARG_QEMU_CAPS_DEL, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, + ARG_QEMU_CAPS_DEL, QEMU_CAPS_DEVICE_QEMU_XHCI, QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, ARG_END); DO_TEST_CAPS_ARCH_LATEST("usb-controller-automatic-realview", "aarch64"); @@ -2098,7 +2098,7 @@ mymain(void) ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest", ARG_FLAGS, FLAG_EXPECT_FAILURE, - ARG_QEMU_CAPS_DEL, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, + ARG_QEMU_CAPS_DEL, QEMU_CAPS_DEVICE_QEMU_XHCI, QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, ARG_END); DO_TEST_FULL("usb-controller-automatic-unavailable-pseries", ".ppc64-latest", @@ -2209,7 +2209,7 @@ mymain(void) ARG_CAPS_ARCH, "armv7l", ARG_CAPS_VER, "latest", ARG_FLAGS, FLAG_EXPECT_FAILURE, - ARG_QEMU_CAPS_DEL, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, + ARG_QEMU_CAPS_DEL, QEMU_CAPS_DEVICE_QEMU_XHCI, QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, ARG_END); DO_TEST_CAPS_ARCH_LATEST("usb-controller-default-realview", "aarch64"); @@ -2221,7 +2221,8 @@ mymain(void) DO_TEST_FULL("usb-controller-default-unavailable-realview", ".aarch64-latest", ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest", - ARG_QEMU_CAPS_DEL, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, + ARG_FLAGS, FLAG_EXPECT_FAILURE, + ARG_QEMU_CAPS_DEL, QEMU_CAPS_DEVICE_QEMU_XHCI, QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, ARG_END); /* The '-nousb' test case tests machine without a built-in USB controller */ @@ -2234,7 +2235,8 @@ mymain(void) DO_TEST_FULL("usb-controller-default-unavailable-nousb", ".aarch64-latest", ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest", - ARG_QEMU_CAPS_DEL, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, + ARG_FLAGS, FLAG_EXPECT_FAILURE, + ARG_QEMU_CAPS_DEL, QEMU_CAPS_DEVICE_QEMU_XHCI, QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_LAST, ARG_END); DO_TEST_FULL("usb-controller-default-fallback-g3beige", ".ppc64-latest", -- 2.47.3