The input configurations set all existing options for all PCI
controllers, to see what ends up showing up in the output.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
.../i440fx-controllers-pciopts.args | 24 +++++++
.../i440fx-controllers-pciopts.xml | 36 ++++++++++
.../pseries-controllers-pciopts.args | 22 +++++++
.../pseries-controllers-pciopts.xml | 35 ++++++++++
.../qemuxml2argvdata/q35-controllers-pciopts.args | 28 ++++++++
tests/qemuxml2argvdata/q35-controllers-pciopts.xml | 60 +++++++++++++++++
tests/qemuxml2argvtest.c | 17 +++++
.../i440fx-controllers-pciopts.xml | 45 +++++++++++++
.../pseries-controllers-pciopts.xml | 43 ++++++++++++
.../qemuxml2xmloutdata/q35-controllers-pciopts.xml | 76 ++++++++++++++++++++++
tests/qemuxml2xmltest.c | 17 +++++
11 files changed, 403 insertions(+)
create mode 100644 tests/qemuxml2argvdata/i440fx-controllers-pciopts.args
create mode 100644 tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml
create mode 100644 tests/qemuxml2argvdata/pseries-controllers-pciopts.args
create mode 100644 tests/qemuxml2argvdata/pseries-controllers-pciopts.xml
create mode 100644 tests/qemuxml2argvdata/q35-controllers-pciopts.args
create mode 100644 tests/qemuxml2argvdata/q35-controllers-pciopts.xml
create mode 100644 tests/qemuxml2xmloutdata/i440fx-controllers-pciopts.xml
create mode 100644 tests/qemuxml2xmloutdata/pseries-controllers-pciopts.xml
create mode 100644 tests/qemuxml2xmloutdata/q35-controllers-pciopts.xml
diff --git a/tests/qemuxml2argvdata/i440fx-controllers-pciopts.args b/tests/qemuxml2argvdata/i440fx-controllers-pciopts.args
new file mode 100644
index 000000000..d85fae5c9
--- /dev/null
+++ b/tests/qemuxml2argvdata/i440fx-controllers-pciopts.args
@@ -0,0 +1,24 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-x86_64 \
+-name guest \
+-S \
+-M pc \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-numa node,nodeid=0,cpus=0,mem=1024 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c \
+-global i440FX-pcihost.pci-hole64-size=1024K \
+-device pci-bridge,chassis_nr=2,id=pci.1,bus=pci.0,addr=0x3 \
+-device pxb,bus_nr=3,id=pci.2,numa_node=0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml b/tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml
new file mode 100644
index 000000000..861a66589
--- /dev/null
+++ b/tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml
@@ -0,0 +1,36 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ </os>
+ <cpu>
+ <numa>
+ <cell id='0' cpus='0' memory='1048576' unit='KiB'/>
+ </numa>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='pci' index='0' model='pci-root'>
+ <!-- Only pcihole64 should be preserved -->
+ <target busNr='1' chassis='1' chassisNr='1' index='0' port='1'/>
+ <pcihole64 unit='KiB'>1024</pcihole64>
+ </controller>
+ <controller type='pci' index='1' model='pci-bridge'>
+ <!-- Only chassisNr should be preserved -->
+ <target busNr='2' chassis='2' chassisNr='2' index='2' port='2'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='pci' index='2' model='pci-expander-bus'>
+ <!-- Only busNr and numaNode should be preserved -->
+ <target busNr='3' chassis='3' chassisNr='3' index='3' port='3'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/pseries-controllers-pciopts.args b/tests/qemuxml2argvdata/pseries-controllers-pciopts.args
new file mode 100644
index 000000000..5f1edfc83
--- /dev/null
+++ b/tests/qemuxml2argvdata/pseries-controllers-pciopts.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-ppc64 \
+-name guest \
+-S \
+-M pseries \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-numa node,nodeid=0,cpus=0,mem=1024 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-boot c \
+-device spapr-pci-host-bridge,index=1,id=pci.1,numa_node=0 \
+-device pci-bridge,chassis_nr=3,id=pci.2,bus=pci.0,addr=0x1
diff --git a/tests/qemuxml2argvdata/pseries-controllers-pciopts.xml b/tests/qemuxml2argvdata/pseries-controllers-pciopts.xml
new file mode 100644
index 000000000..43353cba6
--- /dev/null
+++ b/tests/qemuxml2argvdata/pseries-controllers-pciopts.xml
@@ -0,0 +1,35 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ </os>
+ <cpu>
+ <numa>
+ <cell id='0' cpus='0' memory='1048576' unit='KiB'/>
+ </numa>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <controller type='pci' index='0' model='pci-root'>
+ <!-- Only targetIndex should be preserved -->
+ <target busNr='1' chassis='1' chassisNr='1' index='0' port='1'/>
+ </controller>
+ <controller type='pci' index='1' model='pci-root'>
+ <!-- Only numaNode and targetIndex should be preserved -->
+ <target busNr='2' chassis='2' chassisNr='2' index='1' port='2'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='pci' index='2' model='pci-bridge'>
+ <!-- Only chassisNr should be preserved -->
+ <target busNr='3' chassis='3' chassisNr='3' index='3' port='3'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/q35-controllers-pciopts.args b/tests/qemuxml2argvdata/q35-controllers-pciopts.args
new file mode 100644
index 000000000..44259f502
--- /dev/null
+++ b/tests/qemuxml2argvdata/q35-controllers-pciopts.args
@@ -0,0 +1,28 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-x86_64 \
+-name guest \
+-S \
+-M q35 \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-numa node,nodeid=0,cpus=0,mem=1024 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c \
+-global q35-pcihost.pci-hole64-size=1024K \
+-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \
+-device pci-bridge,chassis_nr=3,id=pci.2,bus=pci.1,addr=0x0 \
+-device pxb-pcie,bus_nr=4,id=pci.3,numa_node=0,bus=pcie.0,addr=0x2 \
+-device pcie-root-port,port=0x5,chassis=5,id=pci.4,bus=pcie.0,addr=0x3 \
+-device x3130-upstream,id=pci.5,bus=pci.4,addr=0x0 \
+-device xio3130-downstream,port=0x7,chassis=7,id=pci.6,bus=pci.5,addr=0x0
diff --git a/tests/qemuxml2argvdata/q35-controllers-pciopts.xml b/tests/qemuxml2argvdata/q35-controllers-pciopts.xml
new file mode 100644
index 000000000..40db83615
--- /dev/null
+++ b/tests/qemuxml2argvdata/q35-controllers-pciopts.xml
@@ -0,0 +1,60 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ </os>
+ <cpu>
+ <numa>
+ <cell id='0' cpus='0' memory='1048576' unit='KiB'/>
+ </numa>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='pci' index='0' model='pcie-root'>
+ <!-- Only pcihole64 should be preserved -->
+ <target busNr='1' chassis='1' chassisNr='1' index='0' port='1'/>
+ <pcihole64 unit='KiB'>1024</pcihole64>
+ </controller>
+ <controller type='pci' index='1' model='dmi-to-pci-bridge'>
+ <!-- No option should be preserved -->
+ <target busNr='2' chassis='2' chassisNr='2' index='2' port='2'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='pci' index='2' model='pci-bridge'>
+ <!-- Only chassisNr should be preserved -->
+ <target busNr='3' chassis='3' chassisNr='3' index='3' port='3'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='pci' index='3' model='pcie-expander-bus'>
+ <!-- Only busNr and numaNode should be preserved -->
+ <target busNr='4' chassis='4' chassisNr='4' index='4' port='4'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='pci' index='4' model='pcie-root-port'>
+ <!-- Only chassis and port should be preserved -->
+ <target busNr='5' chassis='5' chassisNr='5' index='5' port='5'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='pci' index='5' model='pcie-switch-upstream-port'>
+ <!-- No option should be preserved -->
+ <target busNr='6' chassis='6' chassisNr='6' index='6' port='6'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='pci' index='6' model='pcie-switch-downstream-port'>
+ <!-- Only chassis and port should be preserved -->
+ <target busNr='7' chassis='7' chassisNr='7' index='7' port='7'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index c8739909d..595b541d5 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -2436,6 +2436,23 @@ mymain(void)
QEMU_CAPS_DEVICE_IOH3420,
QEMU_CAPS_DEVICE_PXB_PCIE);
+ DO_TEST("i440fx-controllers-pciopts",
+ QEMU_CAPS_I440FX_PCI_HOLE64_SIZE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_DEVICE_PXB);
+ DO_TEST("q35-controllers-pciopts",
+ QEMU_CAPS_Q35_PCI_HOLE64_SIZE,
+ QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_DEVICE_PXB_PCIE,
+ QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
+ QEMU_CAPS_DEVICE_X3130_UPSTREAM,
+ QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM);
+ DO_TEST("pseries-controllers-pciopts",
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE);
+
DO_TEST("hostdev-scsi-lsi",
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
QEMU_CAPS_DEVICE_SCSI_GENERIC);
diff --git a/tests/qemuxml2xmloutdata/i440fx-controllers-pciopts.xml b/tests/qemuxml2xmloutdata/i440fx-controllers-pciopts.xml
new file mode 100644
index 000000000..d171d1370
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/i440fx-controllers-pciopts.xml
@@ -0,0 +1,45 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu>
+ <numa>
+ <cell id='0' cpus='0' memory='1048576' unit='KiB'/>
+ </numa>
+ </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='pci' index='0' model='pci-root'>
+ <target chassisNr='1' chassis='1' port='0x1' busNr='1' index='0'/>
+ <pcihole64 unit='KiB'>1024</pcihole64>
+ </controller>
+ <controller type='pci' index='1' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='2' chassis='2' port='0x2' busNr='2' index='2'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </controller>
+ <controller type='pci' index='2' model='pci-expander-bus'>
+ <model name='pxb'/>
+ <target chassisNr='3' chassis='3' port='0x3' busNr='3' index='3'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/pseries-controllers-pciopts.xml b/tests/qemuxml2xmloutdata/pseries-controllers-pciopts.xml
new file mode 100644
index 000000000..bbe360e25
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/pseries-controllers-pciopts.xml
@@ -0,0 +1,43 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu>
+ <numa>
+ <cell id='0' cpus='0' memory='1048576' unit='KiB'/>
+ </numa>
+ </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-ppc64</emulator>
+ <controller type='pci' index='0' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target chassisNr='1' chassis='1' port='0x1' busNr='1' index='0'/>
+ </controller>
+ <controller type='pci' index='1' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target chassisNr='2' chassis='2' port='0x2' busNr='2' index='1'>
+ <node>0</node>
+ </target>
+ </controller>
+ <controller type='pci' index='2' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='3' chassis='3' port='0x3' busNr='3' index='3'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <memballoon model='none'/>
+ <panic model='pseries'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/q35-controllers-pciopts.xml b/tests/qemuxml2xmloutdata/q35-controllers-pciopts.xml
new file mode 100644
index 000000000..5ef7aa564
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/q35-controllers-pciopts.xml
@@ -0,0 +1,76 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu>
+ <numa>
+ <cell id='0' cpus='0' memory='1048576' unit='KiB'/>
+ </numa>
+ </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='pci' index='0' model='pcie-root'>
+ <target chassisNr='1' chassis='1' port='0x1' busNr='1' index='0'/>
+ <pcihole64 unit='KiB'>1024</pcihole64>
+ </controller>
+ <controller type='pci' index='1' model='dmi-to-pci-bridge'>
+ <model name='i82801b11-bridge'/>
+ <target chassisNr='2' chassis='2' port='0x2' busNr='2' index='2'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
+ </controller>
+ <controller type='pci' index='2' model='pci-bridge'>
+ <model name='pci-bridge'/>
+ <target chassisNr='3' chassis='3' port='0x3' busNr='3' index='3'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
+ </controller>
+ <controller type='pci' index='3' model='pcie-expander-bus'>
+ <model name='pxb-pcie'/>
+ <target chassisNr='4' chassis='4' port='0x4' busNr='4' index='4'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </controller>
+ <controller type='pci' index='4' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassisNr='5' chassis='5' port='0x5' busNr='5' index='5'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </controller>
+ <controller type='pci' index='5' model='pcie-switch-upstream-port'>
+ <model name='x3130-upstream'/>
+ <target chassisNr='6' chassis='6' port='0x6' busNr='6' index='6'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
+ </controller>
+ <controller type='pci' index='6' model='pcie-switch-downstream-port'>
+ <model name='xio3130-downstream'/>
+ <target chassisNr='7' chassis='7' port='0x7' busNr='7' index='7'>
+ <node>0</node>
+ </target>
+ <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
+ </controller>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='sata' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
+ </controller>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index d3544a1ef..48d774856 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -1103,6 +1103,23 @@ mymain(void)
QEMU_CAPS_DEVICE_IOH3420,
QEMU_CAPS_HDA_DUPLEX);
+ DO_TEST("i440fx-controllers-pciopts",
+ QEMU_CAPS_I440FX_PCI_HOLE64_SIZE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_DEVICE_PXB);
+ DO_TEST("q35-controllers-pciopts",
+ QEMU_CAPS_Q35_PCI_HOLE64_SIZE,
+ QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_DEVICE_PXB_PCIE,
+ QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
+ QEMU_CAPS_DEVICE_X3130_UPSTREAM,
+ QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM);
+ DO_TEST("pseries-controllers-pciopts",
+ QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
+ QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE,
+ QEMU_CAPS_DEVICE_PCI_BRIDGE);
+
DO_TEST("hostdev-scsi-vhost-scsi-ccw",
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_DEVICE_VHOST_SCSI,
QEMU_CAPS_DEVICE_SCSI_GENERIC, QEMU_CAPS_VIRTIO_CCW);
--
2.14.3
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 02/05/2018 11:08 AM, Andrea Bolognani wrote: > The input configurations set all existing options for all PCI > controllers, to see what ends up showing up in the output. > > Signed-off-by: Andrea Bolognani <abologna@redhat.com> > --- > .../i440fx-controllers-pciopts.args | 24 +++++++ > .../i440fx-controllers-pciopts.xml | 36 ++++++++++ > .../pseries-controllers-pciopts.args | 22 +++++++ > .../pseries-controllers-pciopts.xml | 35 ++++++++++ > .../qemuxml2argvdata/q35-controllers-pciopts.args | 28 ++++++++ > tests/qemuxml2argvdata/q35-controllers-pciopts.xml | 60 +++++++++++++++++ > tests/qemuxml2argvtest.c | 17 +++++ > .../i440fx-controllers-pciopts.xml | 45 +++++++++++++ > .../pseries-controllers-pciopts.xml | 43 ++++++++++++ > .../qemuxml2xmloutdata/q35-controllers-pciopts.xml | 76 ++++++++++++++++++++++ > tests/qemuxml2xmltest.c | 17 +++++ > 11 files changed, 403 insertions(+) > create mode 100644 tests/qemuxml2argvdata/i440fx-controllers-pciopts.args > create mode 100644 tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml > create mode 100644 tests/qemuxml2argvdata/pseries-controllers-pciopts.args > create mode 100644 tests/qemuxml2argvdata/pseries-controllers-pciopts.xml > create mode 100644 tests/qemuxml2argvdata/q35-controllers-pciopts.args > create mode 100644 tests/qemuxml2argvdata/q35-controllers-pciopts.xml > create mode 100644 tests/qemuxml2xmloutdata/i440fx-controllers-pciopts.xml > create mode 100644 tests/qemuxml2xmloutdata/pseries-controllers-pciopts.xml > create mode 100644 tests/qemuxml2xmloutdata/q35-controllers-pciopts.xml > Not quite sure I understand the need. The only capability not currently used in some way is QEMU_CAPS_I440FX_PCI_HOLE64_SIZE. I guess there's nothing wrong with adding them other than test bloat. Still there's nothing to "force" someone that adds some new thing to update one of the three if some new option/capability is added. Ironically adding (for example) QEMU_CAPS_Q35_PCI_HOLE64_SIZE to i440fx-* doesn't cause any failure. I didn't try other ones. BTW: This is what led me to determine that the qemuxml2argv isn't being built any more and a response to Dan's series. I'm not opposed to this being added, but do you think we should add something does the opposite check? That the wrong PCI adapter on the wrong machine? The wrong option on the wrong adapter is a question for the next patch though... John > diff --git a/tests/qemuxml2argvdata/i440fx-controllers-pciopts.args b/tests/qemuxml2argvdata/i440fx-controllers-pciopts.args > new file mode 100644 > index 000000000..d85fae5c9 > --- /dev/null > +++ b/tests/qemuxml2argvdata/i440fx-controllers-pciopts.args > @@ -0,0 +1,24 @@ > +LC_ALL=C \ > +PATH=/bin \ > +HOME=/home/test \ > +USER=test \ > +LOGNAME=test \ > +QEMU_AUDIO_DRV=none \ > +/usr/bin/qemu-system-x86_64 \ > +-name guest \ > +-S \ > +-M pc \ > +-m 1024 \ > +-smp 1,sockets=1,cores=1,threads=1 \ > +-numa node,nodeid=0,cpus=0,mem=1024 \ > +-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \ > +-nographic \ > +-nodefaults \ > +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\ > +server,nowait \ > +-mon chardev=charmonitor,id=monitor,mode=readline \ > +-no-acpi \ > +-boot c \ > +-global i440FX-pcihost.pci-hole64-size=1024K \ > +-device pci-bridge,chassis_nr=2,id=pci.1,bus=pci.0,addr=0x3 \ > +-device pxb,bus_nr=3,id=pci.2,numa_node=0,bus=pci.0,addr=0x4 > diff --git a/tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml b/tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml > new file mode 100644 > index 000000000..861a66589 > --- /dev/null > +++ b/tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml > @@ -0,0 +1,36 @@ > +<domain type='qemu'> > + <name>guest</name> > + <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid> > + <memory unit='KiB'>1048576</memory> > + <vcpu placement='static'>1</vcpu> > + <os> > + <type arch='x86_64' machine='pc'>hvm</type> > + </os> > + <cpu> > + <numa> > + <cell id='0' cpus='0' memory='1048576' unit='KiB'/> > + </numa> > + </cpu> > + <devices> > + <emulator>/usr/bin/qemu-system-x86_64</emulator> > + <controller type='pci' index='0' model='pci-root'> > + <!-- Only pcihole64 should be preserved --> > + <target busNr='1' chassis='1' chassisNr='1' index='0' port='1'/> > + <pcihole64 unit='KiB'>1024</pcihole64> > + </controller> > + <controller type='pci' index='1' model='pci-bridge'> > + <!-- Only chassisNr should be preserved --> > + <target busNr='2' chassis='2' chassisNr='2' index='2' port='2'> > + <node>0</node> > + </target> > + </controller> > + <controller type='pci' index='2' model='pci-expander-bus'> > + <!-- Only busNr and numaNode should be preserved --> > + <target busNr='3' chassis='3' chassisNr='3' index='3' port='3'> > + <node>0</node> > + </target> > + </controller> > + <controller type='usb' index='0' model='none'/> > + <memballoon model='none'/> > + </devices> > +</domain> > diff --git a/tests/qemuxml2argvdata/pseries-controllers-pciopts.args b/tests/qemuxml2argvdata/pseries-controllers-pciopts.args > new file mode 100644 > index 000000000..5f1edfc83 > --- /dev/null > +++ b/tests/qemuxml2argvdata/pseries-controllers-pciopts.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-ppc64 \ > +-name guest \ > +-S \ > +-M pseries \ > +-m 1024 \ > +-smp 1,sockets=1,cores=1,threads=1 \ > +-numa node,nodeid=0,cpus=0,mem=1024 \ > +-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \ > +-nographic \ > +-nodefaults \ > +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\ > +server,nowait \ > +-mon chardev=charmonitor,id=monitor,mode=readline \ > +-boot c \ > +-device spapr-pci-host-bridge,index=1,id=pci.1,numa_node=0 \ > +-device pci-bridge,chassis_nr=3,id=pci.2,bus=pci.0,addr=0x1 > diff --git a/tests/qemuxml2argvdata/pseries-controllers-pciopts.xml b/tests/qemuxml2argvdata/pseries-controllers-pciopts.xml > new file mode 100644 > index 000000000..43353cba6 > --- /dev/null > +++ b/tests/qemuxml2argvdata/pseries-controllers-pciopts.xml > @@ -0,0 +1,35 @@ > +<domain type='qemu'> > + <name>guest</name> > + <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid> > + <memory unit='KiB'>1048576</memory> > + <vcpu placement='static'>1</vcpu> > + <os> > + <type arch='ppc64' machine='pseries'>hvm</type> > + </os> > + <cpu> > + <numa> > + <cell id='0' cpus='0' memory='1048576' unit='KiB'/> > + </numa> > + </cpu> > + <devices> > + <emulator>/usr/bin/qemu-system-ppc64</emulator> > + <controller type='pci' index='0' model='pci-root'> > + <!-- Only targetIndex should be preserved --> > + <target busNr='1' chassis='1' chassisNr='1' index='0' port='1'/> > + </controller> > + <controller type='pci' index='1' model='pci-root'> > + <!-- Only numaNode and targetIndex should be preserved --> > + <target busNr='2' chassis='2' chassisNr='2' index='1' port='2'> > + <node>0</node> > + </target> > + </controller> > + <controller type='pci' index='2' model='pci-bridge'> > + <!-- Only chassisNr should be preserved --> > + <target busNr='3' chassis='3' chassisNr='3' index='3' port='3'> > + <node>0</node> > + </target> > + </controller> > + <controller type='usb' index='0' model='none'/> > + <memballoon model='none'/> > + </devices> > +</domain> > diff --git a/tests/qemuxml2argvdata/q35-controllers-pciopts.args b/tests/qemuxml2argvdata/q35-controllers-pciopts.args > new file mode 100644 > index 000000000..44259f502 > --- /dev/null > +++ b/tests/qemuxml2argvdata/q35-controllers-pciopts.args > @@ -0,0 +1,28 @@ > +LC_ALL=C \ > +PATH=/bin \ > +HOME=/home/test \ > +USER=test \ > +LOGNAME=test \ > +QEMU_AUDIO_DRV=none \ > +/usr/bin/qemu-system-x86_64 \ > +-name guest \ > +-S \ > +-M q35 \ > +-m 1024 \ > +-smp 1,sockets=1,cores=1,threads=1 \ > +-numa node,nodeid=0,cpus=0,mem=1024 \ > +-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \ > +-nographic \ > +-nodefaults \ > +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-guest/monitor.sock,\ > +server,nowait \ > +-mon chardev=charmonitor,id=monitor,mode=readline \ > +-no-acpi \ > +-boot c \ > +-global q35-pcihost.pci-hole64-size=1024K \ > +-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \ > +-device pci-bridge,chassis_nr=3,id=pci.2,bus=pci.1,addr=0x0 \ > +-device pxb-pcie,bus_nr=4,id=pci.3,numa_node=0,bus=pcie.0,addr=0x2 \ > +-device pcie-root-port,port=0x5,chassis=5,id=pci.4,bus=pcie.0,addr=0x3 \ > +-device x3130-upstream,id=pci.5,bus=pci.4,addr=0x0 \ > +-device xio3130-downstream,port=0x7,chassis=7,id=pci.6,bus=pci.5,addr=0x0 > diff --git a/tests/qemuxml2argvdata/q35-controllers-pciopts.xml b/tests/qemuxml2argvdata/q35-controllers-pciopts.xml > new file mode 100644 > index 000000000..40db83615 > --- /dev/null > +++ b/tests/qemuxml2argvdata/q35-controllers-pciopts.xml > @@ -0,0 +1,60 @@ > +<domain type='qemu'> > + <name>guest</name> > + <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid> > + <memory unit='KiB'>1048576</memory> > + <vcpu placement='static'>1</vcpu> > + <os> > + <type arch='x86_64' machine='q35'>hvm</type> > + </os> > + <cpu> > + <numa> > + <cell id='0' cpus='0' memory='1048576' unit='KiB'/> > + </numa> > + </cpu> > + <devices> > + <emulator>/usr/bin/qemu-system-x86_64</emulator> > + <controller type='pci' index='0' model='pcie-root'> > + <!-- Only pcihole64 should be preserved --> > + <target busNr='1' chassis='1' chassisNr='1' index='0' port='1'/> > + <pcihole64 unit='KiB'>1024</pcihole64> > + </controller> > + <controller type='pci' index='1' model='dmi-to-pci-bridge'> > + <!-- No option should be preserved --> > + <target busNr='2' chassis='2' chassisNr='2' index='2' port='2'> > + <node>0</node> > + </target> > + </controller> > + <controller type='pci' index='2' model='pci-bridge'> > + <!-- Only chassisNr should be preserved --> > + <target busNr='3' chassis='3' chassisNr='3' index='3' port='3'> > + <node>0</node> > + </target> > + </controller> > + <controller type='pci' index='3' model='pcie-expander-bus'> > + <!-- Only busNr and numaNode should be preserved --> > + <target busNr='4' chassis='4' chassisNr='4' index='4' port='4'> > + <node>0</node> > + </target> > + </controller> > + <controller type='pci' index='4' model='pcie-root-port'> > + <!-- Only chassis and port should be preserved --> > + <target busNr='5' chassis='5' chassisNr='5' index='5' port='5'> > + <node>0</node> > + </target> > + </controller> > + <controller type='pci' index='5' model='pcie-switch-upstream-port'> > + <!-- No option should be preserved --> > + <target busNr='6' chassis='6' chassisNr='6' index='6' port='6'> > + <node>0</node> > + </target> > + </controller> > + <controller type='pci' index='6' model='pcie-switch-downstream-port'> > + <!-- Only chassis and port should be preserved --> > + <target busNr='7' chassis='7' chassisNr='7' index='7' port='7'> > + <node>0</node> > + </target> > + </controller> > + <controller type='usb' index='0' model='none'/> > + <memballoon model='none'/> > + </devices> > +</domain> > diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c > index c8739909d..595b541d5 100644 > --- a/tests/qemuxml2argvtest.c > +++ b/tests/qemuxml2argvtest.c > @@ -2436,6 +2436,23 @@ mymain(void) > QEMU_CAPS_DEVICE_IOH3420, > QEMU_CAPS_DEVICE_PXB_PCIE); > > + DO_TEST("i440fx-controllers-pciopts", > + QEMU_CAPS_I440FX_PCI_HOLE64_SIZE, > + QEMU_CAPS_DEVICE_PCI_BRIDGE, > + QEMU_CAPS_DEVICE_PXB); > + DO_TEST("q35-controllers-pciopts", > + QEMU_CAPS_Q35_PCI_HOLE64_SIZE, > + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, > + QEMU_CAPS_DEVICE_PCI_BRIDGE, > + QEMU_CAPS_DEVICE_PXB_PCIE, > + QEMU_CAPS_DEVICE_PCIE_ROOT_PORT, > + QEMU_CAPS_DEVICE_X3130_UPSTREAM, > + QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM); > + DO_TEST("pseries-controllers-pciopts", > + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, > + QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE, > + QEMU_CAPS_DEVICE_PCI_BRIDGE); > + > DO_TEST("hostdev-scsi-lsi", > QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI, > QEMU_CAPS_DEVICE_SCSI_GENERIC); > diff --git a/tests/qemuxml2xmloutdata/i440fx-controllers-pciopts.xml b/tests/qemuxml2xmloutdata/i440fx-controllers-pciopts.xml > new file mode 100644 > index 000000000..d171d1370 > --- /dev/null > +++ b/tests/qemuxml2xmloutdata/i440fx-controllers-pciopts.xml > @@ -0,0 +1,45 @@ > +<domain type='qemu'> > + <name>guest</name> > + <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid> > + <memory unit='KiB'>1048576</memory> > + <currentMemory unit='KiB'>1048576</currentMemory> > + <vcpu placement='static'>1</vcpu> > + <os> > + <type arch='x86_64' machine='pc'>hvm</type> > + <boot dev='hd'/> > + </os> > + <cpu> > + <numa> > + <cell id='0' cpus='0' memory='1048576' unit='KiB'/> > + </numa> > + </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='pci' index='0' model='pci-root'> > + <target chassisNr='1' chassis='1' port='0x1' busNr='1' index='0'/> > + <pcihole64 unit='KiB'>1024</pcihole64> > + </controller> > + <controller type='pci' index='1' model='pci-bridge'> > + <model name='pci-bridge'/> > + <target chassisNr='2' chassis='2' port='0x2' busNr='2' index='2'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> > + </controller> > + <controller type='pci' index='2' model='pci-expander-bus'> > + <model name='pxb'/> > + <target chassisNr='3' chassis='3' port='0x3' busNr='3' index='3'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> > + </controller> > + <controller type='usb' index='0' model='none'/> > + <input type='mouse' bus='ps2'/> > + <input type='keyboard' bus='ps2'/> > + <memballoon model='none'/> > + </devices> > +</domain> > diff --git a/tests/qemuxml2xmloutdata/pseries-controllers-pciopts.xml b/tests/qemuxml2xmloutdata/pseries-controllers-pciopts.xml > new file mode 100644 > index 000000000..bbe360e25 > --- /dev/null > +++ b/tests/qemuxml2xmloutdata/pseries-controllers-pciopts.xml > @@ -0,0 +1,43 @@ > +<domain type='qemu'> > + <name>guest</name> > + <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid> > + <memory unit='KiB'>1048576</memory> > + <currentMemory unit='KiB'>1048576</currentMemory> > + <vcpu placement='static'>1</vcpu> > + <os> > + <type arch='ppc64' machine='pseries'>hvm</type> > + <boot dev='hd'/> > + </os> > + <cpu> > + <numa> > + <cell id='0' cpus='0' memory='1048576' unit='KiB'/> > + </numa> > + </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-ppc64</emulator> > + <controller type='pci' index='0' model='pci-root'> > + <model name='spapr-pci-host-bridge'/> > + <target chassisNr='1' chassis='1' port='0x1' busNr='1' index='0'/> > + </controller> > + <controller type='pci' index='1' model='pci-root'> > + <model name='spapr-pci-host-bridge'/> > + <target chassisNr='2' chassis='2' port='0x2' busNr='2' index='1'> > + <node>0</node> > + </target> > + </controller> > + <controller type='pci' index='2' model='pci-bridge'> > + <model name='pci-bridge'/> > + <target chassisNr='3' chassis='3' port='0x3' busNr='3' index='3'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> > + </controller> > + <controller type='usb' index='0' model='none'/> > + <memballoon model='none'/> > + <panic model='pseries'/> > + </devices> > +</domain> > diff --git a/tests/qemuxml2xmloutdata/q35-controllers-pciopts.xml b/tests/qemuxml2xmloutdata/q35-controllers-pciopts.xml > new file mode 100644 > index 000000000..5ef7aa564 > --- /dev/null > +++ b/tests/qemuxml2xmloutdata/q35-controllers-pciopts.xml > @@ -0,0 +1,76 @@ > +<domain type='qemu'> > + <name>guest</name> > + <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid> > + <memory unit='KiB'>1048576</memory> > + <currentMemory unit='KiB'>1048576</currentMemory> > + <vcpu placement='static'>1</vcpu> > + <os> > + <type arch='x86_64' machine='q35'>hvm</type> > + <boot dev='hd'/> > + </os> > + <cpu> > + <numa> > + <cell id='0' cpus='0' memory='1048576' unit='KiB'/> > + </numa> > + </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='pci' index='0' model='pcie-root'> > + <target chassisNr='1' chassis='1' port='0x1' busNr='1' index='0'/> > + <pcihole64 unit='KiB'>1024</pcihole64> > + </controller> > + <controller type='pci' index='1' model='dmi-to-pci-bridge'> > + <model name='i82801b11-bridge'/> > + <target chassisNr='2' chassis='2' port='0x2' busNr='2' index='2'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> > + </controller> > + <controller type='pci' index='2' model='pci-bridge'> > + <model name='pci-bridge'/> > + <target chassisNr='3' chassis='3' port='0x3' busNr='3' index='3'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> > + </controller> > + <controller type='pci' index='3' model='pcie-expander-bus'> > + <model name='pxb-pcie'/> > + <target chassisNr='4' chassis='4' port='0x4' busNr='4' index='4'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> > + </controller> > + <controller type='pci' index='4' model='pcie-root-port'> > + <model name='pcie-root-port'/> > + <target chassisNr='5' chassis='5' port='0x5' busNr='5' index='5'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> > + </controller> > + <controller type='pci' index='5' model='pcie-switch-upstream-port'> > + <model name='x3130-upstream'/> > + <target chassisNr='6' chassis='6' port='0x6' busNr='6' index='6'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> > + </controller> > + <controller type='pci' index='6' model='pcie-switch-downstream-port'> > + <model name='xio3130-downstream'/> > + <target chassisNr='7' chassis='7' port='0x7' busNr='7' index='7'> > + <node>0</node> > + </target> > + <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> > + </controller> > + <controller type='usb' index='0' model='none'/> > + <controller type='sata' index='0'> > + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> > + </controller> > + <input type='mouse' bus='ps2'/> > + <input type='keyboard' bus='ps2'/> > + <memballoon model='none'/> > + </devices> > +</domain> > diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c > index d3544a1ef..48d774856 100644 > --- a/tests/qemuxml2xmltest.c > +++ b/tests/qemuxml2xmltest.c > @@ -1103,6 +1103,23 @@ mymain(void) > QEMU_CAPS_DEVICE_IOH3420, > QEMU_CAPS_HDA_DUPLEX); > > + DO_TEST("i440fx-controllers-pciopts", > + QEMU_CAPS_I440FX_PCI_HOLE64_SIZE, > + QEMU_CAPS_DEVICE_PCI_BRIDGE, > + QEMU_CAPS_DEVICE_PXB); > + DO_TEST("q35-controllers-pciopts", > + QEMU_CAPS_Q35_PCI_HOLE64_SIZE, > + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, > + QEMU_CAPS_DEVICE_PCI_BRIDGE, > + QEMU_CAPS_DEVICE_PXB_PCIE, > + QEMU_CAPS_DEVICE_PCIE_ROOT_PORT, > + QEMU_CAPS_DEVICE_X3130_UPSTREAM, > + QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM); > + DO_TEST("pseries-controllers-pciopts", > + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, > + QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE, > + QEMU_CAPS_DEVICE_PCI_BRIDGE); > + > DO_TEST("hostdev-scsi-vhost-scsi-ccw", > QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_DEVICE_VHOST_SCSI, > QEMU_CAPS_DEVICE_SCSI_GENERIC, QEMU_CAPS_VIRTIO_CCW); > -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On Sun, 2018-02-11 at 08:12 -0500, John Ferlan wrote: > On 02/05/2018 11:08 AM, Andrea Bolognani wrote: > > The input configurations set all existing options for all PCI > > controllers, to see what ends up showing up in the output. > > Not quite sure I understand the need. The only capability not currently > used in some way is QEMU_CAPS_I440FX_PCI_HOLE64_SIZE. The idea is that existing tests only cover valid PCI controller options being handled correctly, not what happens when you specify an option which is not relevant to the PCI controller at hand. > I guess there's nothing wrong with adding them other than test bloat. > Still there's nothing to "force" someone that adds some new thing to > update one of the three if some new option/capability is added. That's correct. Can you think of a way to make sure that happens? > Ironically adding (for example) QEMU_CAPS_Q35_PCI_HOLE64_SIZE to > i440fx-* doesn't cause any failure. I didn't try other ones. Of course it wouldn't: capabilities are a property of the QEMU binary, and the same QEMU binary is used to run both i440fx and q35 guests. Even for something entirely outlandish like adding a q35-specific capability to a pSeries test you shouldn't see any failure unless you actually attempt to use the QEMU feature the capability is tied to. > I'm not opposed to this being added, but do you think we should add > something does the opposite check? That the wrong PCI adapter on the > wrong machine? The wrong option on the wrong adapter is a question for > the next patch though... We should already have at least *some* coverage for that, eg. pseries-serial-invalid-machine and similar. I'm certainly not volunteering to go over all controller and device and machine types and write tests for all combinations :) -- Andrea Bolognani / Red Hat / Virtualization -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On 02/12/2018 04:32 AM, Andrea Bolognani wrote: > On Sun, 2018-02-11 at 08:12 -0500, John Ferlan wrote: >> On 02/05/2018 11:08 AM, Andrea Bolognani wrote: >>> The input configurations set all existing options for all PCI >>> controllers, to see what ends up showing up in the output. >> >> Not quite sure I understand the need. The only capability not currently >> used in some way is QEMU_CAPS_I440FX_PCI_HOLE64_SIZE. > > The idea is that existing tests only cover valid PCI controller > options being handled correctly, not what happens when you specify > an option which is not relevant to the PCI controller at hand. > Well I understood you're going for a put the stake in the ground in order to supply that valid list of options for the pci controllers on the related machines. >> I guess there's nothing wrong with adding them other than test bloat. >> Still there's nothing to "force" someone that adds some new thing to >> update one of the three if some new option/capability is added. > > That's correct. Can you think of a way to make sure that happens? > and of course that got me to wondering if it was possible in any way to have some way that the "i440fx" xml2{xml|argv} to know that it's "covering" all it's known and supported relative options. Secondarily to know when someone adds something to a machine that won't support it before they get to the point of actually running and things falling over dead because of the wrong configuration provided. Nothing sprang quickly to mind to try other than adding comments which we all know are ignored anyway ;-0... I'm not against this patch going in, but if someone has agita over a small about of test bloat to list everything "currently" possible for a machine type then they should speak up! >> Ironically adding (for example) QEMU_CAPS_Q35_PCI_HOLE64_SIZE to >> i440fx-* doesn't cause any failure. I didn't try other ones. > > Of course it wouldn't: capabilities are a property of the QEMU > binary, and the same QEMU binary is used to run both i440fx and > q35 guests. Even for something entirely outlandish like adding a > q35-specific capability to a pSeries test you shouldn't see any > failure unless you actually attempt to use the QEMU feature the > capability is tied to. > >> I'm not opposed to this being added, but do you think we should add >> something does the opposite check? That the wrong PCI adapter on the >> wrong machine? The wrong option on the wrong adapter is a question for >> the next patch though... > > We should already have at least *some* coverage for that, eg. > pseries-serial-invalid-machine and similar. I'm certainly not > volunteering to go over all controller and device and machine > types and write tests for all combinations :) > We have something - good... John -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2025 Red Hat, Inc.