[libvirt] [PATCH REBASE 1/2] tests: Add some tests for PCI controller options

John Ferlan jferlan at redhat.com
Sun Feb 11 13:12:48 UTC 2018



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 at 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);
> 




More information about the libvir-list mailing list