We can use real example configs to prove the support without the
need for using fake capabilities. Fix the recently added test cases.
The negative case for 'pc-i440fx-acpi-hotplug-bridge-disable' is removed
completely as there is no real qemu libvirt supports which wouldn't
have the capability.
Fixes: bef0f0d8be6
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
...pi-hotplug-bridge-disable.aarch64-latest.err | 1 +
.../aarch64-acpi-hotplug-bridge-disable.err | 1 -
...i-hotplug-bridge-disable.x86_64-latest.args} | 15 +++++++++------
.../q35-acpi-hotplug-bridge-disable.err | 1 -
...cpi-hotplug-bridge-disable.x86_64-6.0.0.err} | 0
...i-hotplug-bridge-disable.x86_64-latest.args} | 14 +++++++++-----
tests/qemuxml2argvtest.c | 17 ++++-------------
7 files changed, 23 insertions(+), 26 deletions(-)
create mode 100644 tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
delete mode 100644 tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err
rename tests/qemuxml2argvdata/{pc-i440fx-acpi-hotplug-bridge-disable.args => pc-i440fx-acpi-hotplug-bridge-disable.x86_64-latest.args} (55%)
delete mode 100644 tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.err
rename tests/qemuxml2argvdata/{pc-i440fx-acpi-hotplug-bridge-disable.err => q35-acpi-hotplug-bridge-disable.x86_64-6.0.0.err} (100%)
rename tests/qemuxml2argvdata/{q35-acpi-hotplug-bridge-disable.args => q35-acpi-hotplug-bridge-disable.x86_64-latest.args} (61%)
diff --git a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
new file mode 100644
index 0000000000..139591fce3
--- /dev/null
+++ b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
@@ -0,0 +1 @@
+XML error: The PCI controller with index='0' must be model='pcie-root' for this machine type, but model='pci-root' was found instead
diff --git a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err
deleted file mode 100644
index 9f0a88b826..0000000000
--- a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err
+++ /dev/null
@@ -1 +0,0 @@
-unsupported configuration: acpi-bridge-hotplug is not available for architecture 'aarch64'
diff --git a/tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.args b/tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.x86_64-latest.args
similarity index 55%
rename from tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.args
rename to tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.x86_64-latest.args
index a1e5dc85c7..26de6c81ec 100644
--- a/tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.args
+++ b/tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.x86_64-latest.args
@@ -6,26 +6,29 @@ LOGNAME=test \
XDG_DATA_HOME=/tmp/lib/domain--1-i440fx/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-i440fx/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-i440fx/.config \
-QEMU_AUDIO_DRV=none \
/usr/bin/qemu-system-x86_64 \
-name guest=i440fx,debug-threads=on \
-S \
--object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-i440fx/master-key.aes \
--machine pc-i440fx-2.5,accel=tcg,usb=off,dump-guest-core=off \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tmp/lib/domain--1-i440fx/master-key.aes"}' \
+-machine pc-i440fx-2.5,accel=tcg,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-cpu qemu64 \
-m 1024 \
--realtime mlock=off \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}' \
+-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
-uuid 56f5055c-1b8d-490c-844a-ad646a1caaaa \
-display none \
-no-user-config \
-nodefaults \
--chardev socket,id=charmonitor,path=/tmp/lib/domain--1-i440fx/monitor.sock,server=on,wait=off \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=utc \
-no-shutdown \
-no-acpi \
-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off \
-boot strict=on \
--usb \
+-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
+-audiodev id=audio1,driver=none \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
diff --git a/tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.err b/tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.err
deleted file mode 100644
index 8c09a3cd76..0000000000
--- a/tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.err
+++ /dev/null
@@ -1 +0,0 @@
-unsupported configuration: acpi-bridge-hotplug is not available with this QEMU binary
diff --git a/tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.err b/tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.x86_64-6.0.0.err
similarity index 100%
rename from tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.err
rename to tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.x86_64-6.0.0.err
diff --git a/tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.args b/tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.x86_64-latest.args
similarity index 61%
rename from tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.args
rename to tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.x86_64-latest.args
index 007c22c646..0c29f36738 100644
--- a/tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.args
+++ b/tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.x86_64-latest.args
@@ -6,20 +6,21 @@ LOGNAME=test \
XDG_DATA_HOME=/tmp/lib/domain--1-q35/.local/share \
XDG_CACHE_HOME=/tmp/lib/domain--1-q35/.cache \
XDG_CONFIG_HOME=/tmp/lib/domain--1-q35/.config \
-QEMU_AUDIO_DRV=none \
/usr/bin/qemu-system-x86_64 \
-name guest=q35,debug-threads=on \
-S \
--object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-q35/master-key.aes \
--machine pc-q35-2.5,accel=tcg,usb=off,dump-guest-core=off \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tmp/lib/domain--1-q35/master-key.aes"}' \
+-machine pc-q35-2.5,accel=tcg,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-cpu qemu64 \
-m 1024 \
--realtime mlock=off \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}' \
+-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
-uuid 56f5055c-1b8d-490c-844a-ad646a1caaaa \
-display none \
-no-user-config \
-nodefaults \
--chardev socket,id=charmonitor,path=/tmp/lib/domain--1-q35/monitor.sock,server=on,wait=off \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=utc \
-no-shutdown \
@@ -29,5 +30,8 @@ QEMU_AUDIO_DRV=none \
-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \
-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x0 \
-device ioh3420,port=0x8,chassis=3,id=pci.3,bus=pcie.0,addr=0x1 \
+-device qemu-xhci,id=usb,bus=pci.3,addr=0x0 \
+-audiodev id=audio1,driver=none \
-device virtio-balloon-pci,id=balloon0,bus=pci.2,addr=0x1 \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 0224bd1854..0fad076877 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -2561,22 +2561,13 @@ mymain(void)
QEMU_CAPS_PIIX_DISABLE_S3, QEMU_CAPS_PIIX_DISABLE_S4);
DO_TEST_CAPS_LATEST("pc-i440fx-acpi-root-hotplug-disable");
DO_TEST_CAPS_VER_PARSE_ERROR("pc-i440fx-acpi-root-hotplug-disable", "5.1.0");
- DO_TEST("q35-acpi-hotplug-bridge-disable",
- QEMU_CAPS_DEVICE_PCI_BRIDGE,
- QEMU_CAPS_DEVICE_IOH3420,
- QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_ICH9_AHCI,
- QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE);
- DO_TEST("pc-i440fx-acpi-hotplug-bridge-disable",
- QEMU_CAPS_DEVICE_PCI_BRIDGE,
- QEMU_CAPS_DEVICE_IOH3420,
- QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
- QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE);
- DO_TEST_PARSE_ERROR_NOCAPS("q35-acpi-hotplug-bridge-disable");
- DO_TEST_PARSE_ERROR_NOCAPS("pc-i440fx-acpi-hotplug-bridge-disable");
+ DO_TEST_CAPS_LATEST("q35-acpi-hotplug-bridge-disable");
+ DO_TEST_CAPS_LATEST("pc-i440fx-acpi-hotplug-bridge-disable");
+ DO_TEST_CAPS_VER_PARSE_ERROR("q35-acpi-hotplug-bridge-disable", "6.0.0");
/* verify that we fail when acpi-bridge-hotplug option is specified for
* archs other than x86
*/
- DO_TEST_PARSE_ERROR_NOCAPS("aarch64-acpi-hotplug-bridge-disable");
+ DO_TEST_CAPS_ARCH_LATEST_PARSE_ERROR("aarch64-acpi-hotplug-bridge-disable", "aarch64");
DO_TEST("q35-usb2",
QEMU_CAPS_DEVICE_PCI_BRIDGE,
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
--
2.31.1
On a Monday in 2021, Peter Krempa wrote:
>We can use real example configs to prove the support without the
>need for using fake capabilities. Fix the recently added test cases.
>
>The negative case for 'pc-i440fx-acpi-hotplug-bridge-disable' is removed
>completely as there is no real qemu libvirt supports which wouldn't
>have the capability.
>
>Fixes: bef0f0d8be6
>Signed-off-by: Peter Krempa <pkrempa@redhat.com>
>---
> ...pi-hotplug-bridge-disable.aarch64-latest.err | 1 +
> .../aarch64-acpi-hotplug-bridge-disable.err | 1 -
> ...i-hotplug-bridge-disable.x86_64-latest.args} | 15 +++++++++------
> .../q35-acpi-hotplug-bridge-disable.err | 1 -
> ...cpi-hotplug-bridge-disable.x86_64-6.0.0.err} | 0
> ...i-hotplug-bridge-disable.x86_64-latest.args} | 14 +++++++++-----
> tests/qemuxml2argvtest.c | 17 ++++-------------
> 7 files changed, 23 insertions(+), 26 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
> delete mode 100644 tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err
> rename tests/qemuxml2argvdata/{pc-i440fx-acpi-hotplug-bridge-disable.args => pc-i440fx-acpi-hotplug-bridge-disable.x86_64-latest.args} (55%)
> delete mode 100644 tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.err
> rename tests/qemuxml2argvdata/{pc-i440fx-acpi-hotplug-bridge-disable.err => q35-acpi-hotplug-bridge-disable.x86_64-6.0.0.err} (100%)
> rename tests/qemuxml2argvdata/{q35-acpi-hotplug-bridge-disable.args => q35-acpi-hotplug-bridge-disable.x86_64-latest.args} (61%)
>
>diff --git a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
>new file mode 100644
>index 0000000000..139591fce3
>--- /dev/null
>+++ b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
>@@ -0,0 +1 @@
>+XML error: The PCI controller with index='0' must be model='pcie-root' for this machine type, but model='pci-root' was found instead
This error is suspicious.
Looks like we only validate that the PCI controller is model pcie-root
if QEMU_CAPS_OBJECT_GPEX is present.
The following fixes it for me, but I have not verified that the
definition does not contain other errors.
diff --git a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
index 139591fce3..9f0a88b826 100644
--- a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
+++ b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
@@ -1 +1 @@
-XML error: The PCI controller with index='0' must be model='pcie-root' for this machine type, but model='pci-root' was found instead
+unsupported configuration: acpi-bridge-hotplug is not available for architecture 'aarch64'
diff --git a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.xml b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.xml
index 0d5f945bd7..757f7a6776 100644
--- a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.xml
+++ b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.xml
@@ -22,7 +22,7 @@
<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'/>
+ <controller type='pci' index='0' model='pcie-root'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='none'/>
>diff --git a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err
>deleted file mode 100644
>index 9f0a88b826..0000000000
>--- a/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err
>+++ /dev/null
>@@ -1 +0,0 @@
>-unsupported configuration: acpi-bridge-hotplug is not available for architecture 'aarch64'
Jano
On Mon, Oct 11, 2021 at 04:51:40PM +0200, Ján Tomko wrote:
> On a Monday in 2021, Peter Krempa wrote:
> > +++ b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err
> > @@ -0,0 +1 @@
> > +XML error: The PCI controller with index='0' must be model='pcie-root' for this machine type, but model='pci-root' was found instead
>
> This error is suspicious.
>
> Looks like we only validate that the PCI controller is model pcie-root
> if QEMU_CAPS_OBJECT_GPEX is present.
>
> The following fixes it for me, but I have not verified that the
> definition does not contain other errors.
>
> +++ b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.xml
> @@ -22,7 +22,7 @@
> <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'/>
> + <controller type='pci' index='0' model='pcie-root'/>
This change is correct.
> <input type='mouse' bus='ps2'/>
> <input type='keyboard' bus='ps2'/>
The PS/2 input devices, on the other hand, don't make a lot of sense
on Arm.
You could actually trim the input file down to
<domain type='qemu'>
<name>test</name>
<memory unit='KiB'>1048576</memory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='aarch64' machine='virt'>hvm</type>
</os>
<features>
<pci>
<acpi-bridge-hotplug state='off'/>
</pci>
</features>
</domain>
but that might be considered to be beyond the scope of this series.
--
Andrea Bolognani / Red Hat / Virtualization
On Mon, Oct 11, 2021 at 09:27:44 -0700, Andrea Bolognani wrote: > On Mon, Oct 11, 2021 at 04:51:40PM +0200, Ján Tomko wrote: > > On a Monday in 2021, Peter Krempa wrote: > > > +++ b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.aarch64-latest.err > > > @@ -0,0 +1 @@ > > > +XML error: The PCI controller with index='0' must be model='pcie-root' for this machine type, but model='pci-root' was found instead > > > > This error is suspicious. > > > > Looks like we only validate that the PCI controller is model pcie-root > > if QEMU_CAPS_OBJECT_GPEX is present. > > > > The following fixes it for me, but I have not verified that the > > definition does not contain other errors. > > > > +++ b/tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.xml > > @@ -22,7 +22,7 @@ > > <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'/> > > + <controller type='pci' index='0' model='pcie-root'/> > > This change is correct. > > > <input type='mouse' bus='ps2'/> > > <input type='keyboard' bus='ps2'/> > > The PS/2 input devices, on the other hand, don't make a lot of sense > on Arm. > > You could actually trim the input file down to > > <domain type='qemu'> > <name>test</name> > <memory unit='KiB'>1048576</memory> > <vcpu placement='static'>1</vcpu> > <os> > <type arch='aarch64' machine='virt'>hvm</type> > </os> > <features> > <pci> > <acpi-bridge-hotplug state='off'/> > </pci> > </features> > </domain> > > but that might be considered to be beyond the scope of this series. Let me try it this way. If the error message stays the same I'd say it is relevant to modify the source, as the result stays the same.
© 2016 - 2026 Red Hat, Inc.