[libvirt] [PATCH v3 20/26] tests: Add baseline tests for automatic PHB usage
Laine Stump
laine at laine.org
Tue Jun 27 14:28:05 UTC 2017
On 06/23/2017 11:03 AM, Andrea Bolognani wrote:
> These tests demonstrate that, while it's now possible for the
> user to create PHB explicitly and manually assign devices to
> them, libvirt still defaults to extending the guest PCI
> topology using PCI bridges and making suboptimal device
> placement choices.
>
> The next few commits will improve on these behaviors and the
> tests outputs will automatically be updated to reflect this.
>
> Signed-off-by: Andrea Bolognani <abologna at redhat.com>
> ---
> .../qemuxml2argv-pseries-hostdevs-1.args | 23 ++++
> .../qemuxml2argv-pseries-hostdevs-1.xml | 38 +++++++
> .../qemuxml2argv-pseries-hostdevs-2.args | 24 ++++
> .../qemuxml2argv-pseries-hostdevs-2.xml | 37 ++++++
> .../qemuxml2argv-pseries-hostdevs-3.args | 24 ++++
> .../qemuxml2argv-pseries-hostdevs-3.xml | 31 +++++
> .../qemuxml2argv-pseries-many-buses-1.args | 22 ++++
> .../qemuxml2argv-pseries-many-buses-1.xml | 19 ++++
> .../qemuxml2argv-pseries-many-buses-2.args | 22 ++++
> .../qemuxml2argv-pseries-many-buses-2.xml | 18 +++
> .../qemuxml2argv-pseries-many-devices.args | 53 +++++++++
> .../qemuxml2argv-pseries-many-devices.xml | 48 ++++++++
> tests/qemuxml2argvtest.c | 36 ++++++
> .../qemuxml2xmlout-pseries-hostdevs-1.xml | 46 ++++++++
> .../qemuxml2xmlout-pseries-hostdevs-2.xml | 47 ++++++++
> .../qemuxml2xmlout-pseries-hostdevs-3.xml | 49 ++++++++
> .../qemuxml2xmlout-pseries-many-buses-1.xml | 33 ++++++
> .../qemuxml2xmlout-pseries-many-buses-2.xml | 34 ++++++
> .../qemuxml2xmlout-pseries-many-devices.xml | 126 +++++++++++++++++++++
> tests/qemuxml2xmltest.c | 36 ++++++
> 20 files changed, 766 insertions(+)
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-1.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-1.xml
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-2.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-2.xml
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-3.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-3.xml
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.xml
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-2.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-2.xml
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-1.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-2.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-3.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-1.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-2.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-devices.xml
>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-1.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-1.args
> new file mode 100644
> index 0000000..88eb081
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-1.args
> @@ -0,0 +1,23 @@
> +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 512 \
> +-smp 1,sockets=1,cores=1,threads=1 \
> +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
> +-nographic \
> +-nodefconfig \
> +-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 vfio-pci,host=0001:01:00.0,id=hostdev0,bus=pci.0,addr=0x1 \
> +-device vfio-pci,host=0005:90:01.0,id=hostdev1,bus=pci.0,addr=0x2 \
> +-device vfio-pci,host=0001:01:00.1,id=hostdev2,bus=pci.0,addr=0x3
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-1.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-1.xml
> new file mode 100644
> index 0000000..87fe145
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-1.xml
> @@ -0,0 +1,38 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + </os>
> + <devices>
> + <emulator>/usr/bin/qemu-system-ppc64</emulator>
> + <!-- This hostdev will cause a new PHB to be created because its
> + isolation group is 2 -->
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
> + </source>
> + </hostdev>
> + <!-- This hostdev can't share the PHB that was just created, because
> + its isolation group is 3 -->
I like the idea of putting comments in the test XML indicating exactly
what we're testing for!
Reviewed-by: Laine Stump <laine at laine.org>
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
> + </source>
> + </hostdev>
> + <!-- This hostdev will be placed on the first PHB, since its isolation
> + group is 2 just like the first hostdev -->
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
> + </source>
> + </hostdev>
> + <controller type='usb' model='none'/>
> + <memballoon model='none'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-2.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-2.args
> new file mode 100644
> index 0000000..c43e15d
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-2.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-ppc64 \
> +-name guest \
> +-S \
> +-M pseries \
> +-m 512 \
> +-smp 1,sockets=1,cores=1,threads=1 \
> +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
> +-nographic \
> +-nodefconfig \
> +-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 pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
> +-device virtio-scsi-pci,id=scsi0,bus=pci.1,addr=0x1 \
> +-device vfio-pci,host=0001:01:00.0,id=hostdev0,bus=pci.1,addr=0x2 \
> +-device vfio-pci,host=0005:90:01.0,id=hostdev1,bus=pci.0,addr=0x2
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-2.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-2.xml
> new file mode 100644
> index 0000000..551b588
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-2.xml
> @@ -0,0 +1,37 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + </os>
> + <devices>
> + <emulator>/usr/bin/qemu-system-ppc64</emulator>
> + <!-- This device will cause a new PHB to be created because of its
> + address -->
> + <controller type='scsi' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
> + </controller>
> + <!-- This hostdev will share the same PHB as the SCSI controller
> + despite being in a separate isolation group, because the
> + address has been requested explicitly by the user -->
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/>
> + </hostdev>
> + <!-- This hostdev can use neither the PHB that was just created, nor
> + the default one, because its isolation group is 3 -->
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
> + </source>
> + </hostdev>
> + <controller type='usb' model='none'/>
> + <memballoon model='none'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-3.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-3.args
> new file mode 100644
> index 0000000..99df2e7
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-3.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-ppc64 \
> +-name guest \
> +-S \
> +-M pseries \
> +-m 512 \
> +-smp 1,sockets=1,cores=1,threads=1 \
> +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
> +-nographic \
> +-nodefconfig \
> +-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 pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
> +-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.0,addr=0x2 \
> +-device vfio-pci,host=0001:01:00.0,id=hostdev0,bus=pci.2,addr=0x1 \
> +-device vfio-pci,host=0001:01:00.1,id=hostdev1,bus=pci.0,addr=0x3
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-3.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-3.xml
> new file mode 100644
> index 0000000..0e61a17
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-hostdevs-3.xml
> @@ -0,0 +1,31 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + </os>
> + <devices>
> + <emulator>/usr/bin/qemu-system-ppc64</emulator>
> + <!-- This hostdev will cause a new PHB to be created because its
> + isolation group is 2. It will be PHB 2 due to the address -->
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
> + </hostdev>
> + <!-- This hostdev will be placed on the same PHB, since its isolation
> + group is also 2 -->
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
> + </source>
> + </hostdev>
> + <controller type='usb' model='none'/>
> + <memballoon model='none'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.args
> new file mode 100644
> index 0000000..bf78fc1
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.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 512 \
> +-smp 1,sockets=1,cores=1,threads=1 \
> +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
> +-nographic \
> +-nodefconfig \
> +-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 pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
> +-device virtio-scsi-pci,id=scsi0,bus=pci.1,addr=0x1
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.xml
> new file mode 100644
> index 0000000..c52349d
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.xml
> @@ -0,0 +1,19 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + </os>
> + <devices>
> + <emulator>/usr/bin/qemu-system-ppc64</emulator>
> + <!-- The SCSI controller is plugged into PCI bus 1, but since said bus
> + is not present in the configuration libvirt will have to add it -->
> + <controller type='scsi' model='virtio-scsi'>
> + <address type='pci' bus='1' slot='1'/>
> + </controller>
> + <controller type='usb' model='none'/>
> + <memballoon model='none'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-2.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-2.args
> new file mode 100644
> index 0000000..1cb5831
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-2.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 512 \
> +-smp 1,sockets=1,cores=1,threads=1 \
> +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
> +-nographic \
> +-nodefconfig \
> +-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.2 \
> +-device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-2.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-2.xml
> new file mode 100644
> index 0000000..7065626
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-2.xml
> @@ -0,0 +1,18 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + </os>
> + <devices>
> + <emulator>/usr/bin/qemu-system-ppc64</emulator>
> + <!-- PCI buses 0 and 2 are present in the configuration, libvirt will
> + have to fill in the blanks and add bus 1 -->
> + <controller type='pci' index='0' model='pci-root'/>
> + <controller type='pci' index='2' model='pci-root'/>
> + <controller type='usb' model='none'/>
> + <memballoon model='none'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.args
> new file mode 100644
> index 0000000..1db4533
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.args
> @@ -0,0 +1,53 @@
> +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 512 \
> +-smp 1,sockets=1,cores=1,threads=1 \
> +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
> +-nographic \
> +-nodefconfig \
> +-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 pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
> +-device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x2 \
> +-device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x3 \
> +-device virtio-scsi-pci,id=scsi2,bus=pci.0,addr=0x4 \
> +-device virtio-scsi-pci,id=scsi3,bus=pci.0,addr=0x5 \
> +-device virtio-scsi-pci,id=scsi4,bus=pci.0,addr=0x6 \
> +-device virtio-scsi-pci,id=scsi5,bus=pci.0,addr=0x7 \
> +-device virtio-scsi-pci,id=scsi6,bus=pci.0,addr=0x8 \
> +-device virtio-scsi-pci,id=scsi7,bus=pci.0,addr=0x9 \
> +-device virtio-scsi-pci,id=scsi8,bus=pci.0,addr=0xa \
> +-device virtio-scsi-pci,id=scsi9,bus=pci.0,addr=0xb \
> +-device virtio-scsi-pci,id=scsi10,bus=pci.0,addr=0xc \
> +-device virtio-scsi-pci,id=scsi11,bus=pci.0,addr=0xd \
> +-device virtio-scsi-pci,id=scsi12,bus=pci.0,addr=0xe \
> +-device virtio-scsi-pci,id=scsi13,bus=pci.0,addr=0xf \
> +-device virtio-scsi-pci,id=scsi14,bus=pci.0,addr=0x10 \
> +-device virtio-scsi-pci,id=scsi15,bus=pci.0,addr=0x11 \
> +-device virtio-scsi-pci,id=scsi16,bus=pci.0,addr=0x12 \
> +-device virtio-scsi-pci,id=scsi17,bus=pci.0,addr=0x13 \
> +-device virtio-scsi-pci,id=scsi18,bus=pci.0,addr=0x14 \
> +-device virtio-scsi-pci,id=scsi19,bus=pci.0,addr=0x15 \
> +-device virtio-scsi-pci,id=scsi20,bus=pci.0,addr=0x16 \
> +-device virtio-scsi-pci,id=scsi21,bus=pci.0,addr=0x17 \
> +-device virtio-scsi-pci,id=scsi22,bus=pci.0,addr=0x18 \
> +-device virtio-scsi-pci,id=scsi23,bus=pci.0,addr=0x19 \
> +-device virtio-scsi-pci,id=scsi24,bus=pci.0,addr=0x1a \
> +-device virtio-scsi-pci,id=scsi25,bus=pci.0,addr=0x1b \
> +-device virtio-scsi-pci,id=scsi26,bus=pci.0,addr=0x1c \
> +-device virtio-scsi-pci,id=scsi27,bus=pci.0,addr=0x1d \
> +-device virtio-scsi-pci,id=scsi28,bus=pci.0,addr=0x1e \
> +-device virtio-scsi-pci,id=scsi29,bus=pci.0,addr=0x1f \
> +-device virtio-scsi-pci,id=scsi30,bus=pci.1,addr=0x1 \
> +-device virtio-scsi-pci,id=scsi31,bus=pci.1,addr=0x2
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.xml
> new file mode 100644
> index 0000000..f3daba4
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.xml
> @@ -0,0 +1,48 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + </os>
> + <devices>
> + <emulator>/usr/bin/qemu-system-ppc64</emulator>
> + <!-- pci-root has 31 slots and there are 32 SCSI controllers here, so
> + libvirt will automatically add at least one more PCI controller -->
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='scsi' model='virtio-scsi'/>
> + <controller type='usb' model='none'/>
> + <memballoon model='none'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index ff68884..137f59a 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -1717,6 +1717,42 @@ mymain(void)
> QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_CHARDEV,
> QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
>
> + DO_TEST("pseries-many-devices",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI);
> + DO_TEST("pseries-many-buses-1",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI);
> + DO_TEST("pseries-many-buses-2",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI);
> + DO_TEST("pseries-hostdevs-1",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
> + QEMU_CAPS_VIRTIO_SCSI,
> + QEMU_CAPS_DEVICE_VFIO_PCI);
> + DO_TEST("pseries-hostdevs-2",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI,
> + QEMU_CAPS_DEVICE_VFIO_PCI);
> + DO_TEST("pseries-hostdevs-3",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI,
> + QEMU_CAPS_DEVICE_VFIO_PCI);
> +
> DO_TEST("disk-ide-drive-split",
> QEMU_CAPS_NODEFCONFIG,
> QEMU_CAPS_IDE_CD);
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-1.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-1.xml
> new file mode 100644
> index 0000000..34defea
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-1.xml
> @@ -0,0 +1,46 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <currentMemory unit='KiB'>524288</currentMemory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + <boot dev='hd'/>
> + </os>
> + <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='usb' index='0' model='none'/>
> + <controller type='pci' index='0' model='pci-root'>
> + <model name='spapr-pci-host-bridge'/>
> + <target index='0'/>
> + </controller>
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
> + </hostdev>
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
> + </hostdev>
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
> + </hostdev>
> + <memballoon model='none'/>
> + <panic model='pseries'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-2.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-2.xml
> new file mode 100644
> index 0000000..62bead5
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-2.xml
> @@ -0,0 +1,47 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <currentMemory unit='KiB'>524288</currentMemory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + <boot dev='hd'/>
> + </os>
> + <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='scsi' index='0' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
> + </controller>
> + <controller type='usb' index='0' model='none'/>
> + <controller type='pci' index='0' model='pci-root'>
> + <model name='spapr-pci-host-bridge'/>
> + <target index='0'/>
> + </controller>
> + <controller type='pci' index='1' model='pci-bridge'>
> + <model name='pci-bridge'/>
> + <target chassisNr='1'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
> + </controller>
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/>
> + </hostdev>
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
> + </hostdev>
> + <memballoon model='none'/>
> + <panic model='pseries'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-3.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-3.xml
> new file mode 100644
> index 0000000..77c0909
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-hostdevs-3.xml
> @@ -0,0 +1,49 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <currentMemory unit='KiB'>524288</currentMemory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + <boot dev='hd'/>
> + </os>
> + <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='usb' index='0' model='none'/>
> + <controller type='pci' index='0' model='pci-root'>
> + <model name='spapr-pci-host-bridge'/>
> + <target index='0'/>
> + </controller>
> + <controller type='pci' index='1' model='pci-bridge'>
> + <model name='pci-bridge'/>
> + <target chassisNr='1'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
> + </controller>
> + <controller type='pci' index='2' model='pci-bridge'>
> + <model name='pci-bridge'/>
> + <target chassisNr='2'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
> + </controller>
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
> + </hostdev>
> + <hostdev mode='subsystem' type='pci' managed='yes'>
> + <driver name='vfio'/>
> + <source>
> + <address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
> + </source>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
> + </hostdev>
> + <memballoon model='none'/>
> + <panic model='pseries'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-1.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-1.xml
> new file mode 100644
> index 0000000..9044936
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-1.xml
> @@ -0,0 +1,33 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <currentMemory unit='KiB'>524288</currentMemory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + <boot dev='hd'/>
> + </os>
> + <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='scsi' index='0' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
> + </controller>
> + <controller type='usb' index='0' model='none'/>
> + <controller type='pci' index='0' model='pci-root'>
> + <model name='spapr-pci-host-bridge'/>
> + <target index='0'/>
> + </controller>
> + <controller type='pci' index='1' model='pci-bridge'>
> + <model name='pci-bridge'/>
> + <target chassisNr='1'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
> + </controller>
> + <memballoon model='none'/>
> + <panic model='pseries'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-2.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-2.xml
> new file mode 100644
> index 0000000..75dfabf
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-2.xml
> @@ -0,0 +1,34 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <currentMemory unit='KiB'>524288</currentMemory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + <boot dev='hd'/>
> + </os>
> + <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 index='0'/>
> + </controller>
> + <controller type='pci' index='2' model='pci-root'>
> + <model name='spapr-pci-host-bridge'/>
> + <target index='1'/>
> + </controller>
> + <controller type='usb' index='0' model='none'/>
> + <controller type='pci' index='1' model='pci-bridge'>
> + <model name='pci-bridge'/>
> + <target chassisNr='1'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
> + </controller>
> + <memballoon model='none'/>
> + <panic model='pseries'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-devices.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-devices.xml
> new file mode 100644
> index 0000000..b596fe6
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-devices.xml
> @@ -0,0 +1,126 @@
> +<domain type='qemu'>
> + <name>guest</name>
> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
> + <memory unit='KiB'>524288</memory>
> + <currentMemory unit='KiB'>524288</currentMemory>
> + <vcpu placement='static'>1</vcpu>
> + <os>
> + <type arch='ppc64' machine='pseries'>hvm</type>
> + <boot dev='hd'/>
> + </os>
> + <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='scsi' index='0' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='1' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='2' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='3' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='4' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='5' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='6' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='7' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='8' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='9' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='10' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='11' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='12' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='13' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0f' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='14' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='15' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x11' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='16' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='17' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x13' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='18' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x14' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='19' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x15' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='20' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x16' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='21' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x17' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='22' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x18' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='23' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x19' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='24' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='25' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='26' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1c' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='27' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='28' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='29' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='30' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
> + </controller>
> + <controller type='scsi' index='31' model='virtio-scsi'>
> + <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/>
> + </controller>
> + <controller type='usb' index='0' model='none'/>
> + <controller type='pci' index='0' model='pci-root'>
> + <model name='spapr-pci-host-bridge'/>
> + <target index='0'/>
> + </controller>
> + <controller type='pci' index='1' model='pci-bridge'>
> + <model name='pci-bridge'/>
> + <target chassisNr='1'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
> + </controller>
> + <memballoon model='none'/>
> + <panic model='pseries'/>
> + </devices>
> +</domain>
> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
> index a0a846c..312e2b1 100644
> --- a/tests/qemuxml2xmltest.c
> +++ b/tests/qemuxml2xmltest.c
> @@ -683,6 +683,42 @@ mymain(void)
> QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_CHARDEV,
> QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
>
> + DO_TEST("pseries-many-devices",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI);
> + DO_TEST("pseries-many-buses-1",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI);
> + DO_TEST("pseries-many-buses-2",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI);
> + DO_TEST("pseries-hostdevs-1",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
> + QEMU_CAPS_VIRTIO_SCSI,
> + QEMU_CAPS_DEVICE_VFIO_PCI);
> + DO_TEST("pseries-hostdevs-2",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI,
> + QEMU_CAPS_DEVICE_VFIO_PCI);
> + DO_TEST("pseries-hostdevs-3",
> + QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
> + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
> + QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
> + QEMU_CAPS_DEVICE_PCI_BRIDGE,
> + QEMU_CAPS_VIRTIO_SCSI,
> + QEMU_CAPS_DEVICE_VFIO_PCI);
> +
> DO_TEST("balloon-device-auto", NONE);
> DO_TEST("balloon-device-period", NONE);
> DO_TEST("channel-virtio-auto", NONE);
>
More information about the libvir-list
mailing list