[libvirt] [PATCH v2 0/2] tests: Reduce QEMU_CAPS_DEVICE_{DMI_TO_, }PCI_BRIDGE usage

Changes from v1: * don't drop capabilities for a bunch of test cases, so that potential regressions will be still caught. Andrea Bolognani (2): tests: Sync tests between qemuxml2argv and qemuxml2xml tests: Reduce QEMU_CAPS_DEVICE_{DMI_TO_, }PCI_BRIDGE usage .../qemuxml2argvdata/qemuxml2argv-pci-bridge.args | 90 +++++++++ tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml | 97 +++------- .../qemuxml2argv-vcpu-placement-static.args | 20 ++ tests/qemuxml2argvtest.c | 109 +++++------ .../qemuxml2xmlout-boot-floppy-q35.xml | 32 +++ .../qemuxml2xmlout-bootindex-floppy-q35.xml | 32 +++ .../qemuxml2xmlout-intel-iommu-machine.xml | 26 +++ .../qemuxml2xmlout-pci-bridge.xml | 98 ++++------ .../qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml | 214 +++++++++++++++++++++ ...qemuxml2xmlout-video-device-pciaddr-default.xml | 51 +++++ tests/qemuxml2xmltest.c | 130 +++++++++---- 11 files changed, 665 insertions(+), 234 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml -- 2.7.4

In some cases, only one of the two transformations was checked; in other cases, the capabilities set differed. --- Note that the input file for the "pci-bridge" test case had to be changed to make it usable for qemuxml2argv. .../qemuxml2argvdata/qemuxml2argv-pci-bridge.args | 90 +++++++++ tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml | 97 +++------- .../qemuxml2argv-vcpu-placement-static.args | 20 ++ tests/qemuxml2argvtest.c | 74 ++++--- .../qemuxml2xmlout-boot-floppy-q35.xml | 32 +++ .../qemuxml2xmlout-bootindex-floppy-q35.xml | 32 +++ .../qemuxml2xmlout-intel-iommu-machine.xml | 26 +++ .../qemuxml2xmlout-pci-bridge.xml | 98 ++++------ .../qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml | 214 +++++++++++++++++++++ ...qemuxml2xmlout-video-device-pciaddr-default.xml | 51 +++++ tests/qemuxml2xmltest.c | 154 +++++++++++---- 11 files changed, 697 insertions(+), 191 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args b/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args new file mode 100644 index 0000000..d1d51b3 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args @@ -0,0 +1,90 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/libexec/qemu-kvm \ +-name fdr-br \ +-S \ +-M pc-1.2 \ +-m 2048 \ +-smp 2,sockets=2,cores=1,threads=1 \ +-uuid 3ec6cbe1-b5a2-4515-b800-31a61855df41 \ +-nodefaults \ +-monitor unix:/tmp/lib/domain--1-fdr-br/monitor.sock,server,nowait \ +-boot c \ +-device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x3 \ +-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.0,addr=0x4 \ +-usb \ +-drive file=/var/iso/f18kde.iso,format=raw,if=none,media=cdrom,\ +id=drive-ide0-1-0,readonly=on \ +-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \ +-device rtl8139,vlan=0,id=net0,mac=52:54:00:f1:95:51,bus=pci.0,addr=0x5 \ +-net user,vlan=0,name=hostnet0 \ +-device e1000,vlan=1,id=net1,mac=52:54:00:5c:c6:1a,bus=pci.0,addr=0x7 \ +-net user,vlan=1,name=hostnet1 \ +-device e1000,vlan=2,id=net2,mac=52:54:00:39:97:ac,bus=pci.0,addr=0x8 \ +-net user,vlan=2,name=hostnet2 \ +-device e1000,vlan=3,id=net3,mac=52:54:00:45:28:cb,bus=pci.0,addr=0x9 \ +-net user,vlan=3,name=hostnet3 \ +-device e1000,vlan=4,id=net4,mac=52:54:00:ee:b9:a8,bus=pci.0,addr=0xa \ +-net user,vlan=4,name=hostnet4 \ +-device e1000,vlan=5,id=net5,mac=52:54:00:a9:f7:17,bus=pci.0,addr=0xb \ +-net user,vlan=5,name=hostnet5 \ +-device e1000,vlan=6,id=net6,mac=52:54:00:df:2b:f3,bus=pci.0,addr=0xc \ +-net user,vlan=6,name=hostnet6 \ +-device e1000,vlan=7,id=net7,mac=52:54:00:78:94:b4,bus=pci.0,addr=0xd \ +-net user,vlan=7,name=hostnet7 \ +-device e1000,vlan=8,id=net8,mac=52:54:00:6b:9b:06,bus=pci.0,addr=0xe \ +-net user,vlan=8,name=hostnet8 \ +-device e1000,vlan=9,id=net9,mac=52:54:00:17:df:bc,bus=pci.0,addr=0xf \ +-net user,vlan=9,name=hostnet9 \ +-device rtl8139,vlan=10,id=net10,mac=52:54:00:3b:d0:51,bus=pci.0,addr=0x10 \ +-net user,vlan=10,name=hostnet10 \ +-device e1000,vlan=11,id=net11,mac=52:54:00:8d:2d:17,bus=pci.0,addr=0x11 \ +-net user,vlan=11,name=hostnet11 \ +-device e1000,vlan=12,id=net12,mac=52:54:00:a7:66:af,bus=pci.0,addr=0x12 \ +-net user,vlan=12,name=hostnet12 \ +-device e1000,vlan=13,id=net13,mac=52:54:00:54:ab:d7,bus=pci.0,addr=0x13 \ +-net user,vlan=13,name=hostnet13 \ +-device e1000,vlan=14,id=net14,mac=52:54:00:1f:99:90,bus=pci.0,addr=0x14 \ +-net user,vlan=14,name=hostnet14 \ +-device e1000,vlan=15,id=net15,mac=52:54:00:c8:43:87,bus=pci.0,addr=0x15 \ +-net user,vlan=15,name=hostnet15 \ +-device e1000,vlan=16,id=net16,mac=52:54:00:df:22:b2,bus=pci.0,addr=0x16 \ +-net user,vlan=16,name=hostnet16 \ +-device e1000,vlan=17,id=net17,mac=52:54:00:d2:9a:47,bus=pci.0,addr=0x17 \ +-net user,vlan=17,name=hostnet17 \ +-device e1000,vlan=18,id=net18,mac=52:54:00:86:05:e2,bus=pci.0,addr=0x18 \ +-net user,vlan=18,name=hostnet18 \ +-device e1000,vlan=19,id=net19,mac=52:54:00:8c:1c:c2,bus=pci.0,addr=0x19 \ +-net user,vlan=19,name=hostnet19 \ +-device e1000,vlan=20,id=net20,mac=52:54:00:48:58:92,bus=pci.0,addr=0x1a \ +-net user,vlan=20,name=hostnet20 \ +-device e1000,vlan=21,id=net21,mac=52:54:00:99:e5:bf,bus=pci.0,addr=0x1b \ +-net user,vlan=21,name=hostnet21 \ +-device e1000,vlan=22,id=net22,mac=52:54:00:b1:8c:25,bus=pci.0,addr=0x1c \ +-net user,vlan=22,name=hostnet22 \ +-device e1000,vlan=23,id=net23,mac=52:54:00:60:e0:d0,bus=pci.0,addr=0x1d \ +-net user,vlan=23,name=hostnet23 \ +-device e1000,vlan=24,id=net24,mac=52:54:00:37:00:6a,bus=pci.0,addr=0x1e \ +-net user,vlan=24,name=hostnet24 \ +-device e1000,vlan=25,id=net25,mac=52:54:00:c7:c8:ad,bus=pci.0,addr=0x1f \ +-net user,vlan=25,name=hostnet25 \ +-device e1000,vlan=26,id=net26,mac=52:54:00:4e:a7:cf,bus=pci.1,addr=0x1 \ +-net user,vlan=26,name=hostnet26 \ +-device e1000,vlan=27,id=net27,mac=52:54:00:00:79:69,bus=pci.1,addr=0x2 \ +-net user,vlan=27,name=hostnet27 \ +-device e1000,vlan=28,id=net28,mac=52:54:00:47:00:6f,bus=pci.1,addr=0x3 \ +-net user,vlan=28,name=hostnet28 \ +-device e1000,vlan=29,id=net29,mac=52:54:00:2a:8c:8b,bus=pci.1,addr=0x4 \ +-net user,vlan=29,name=hostnet29 \ +-device e1000,vlan=30,id=net30,mac=52:54:00:ec:d5:e3,bus=pci.1,addr=0x5 \ +-net user,vlan=30,name=hostnet30 \ +-device e1000,vlan=31,id=net31,mac=52:54:00:7e:6e:c8,bus=pci.1,addr=0x6 \ +-net user,vlan=31,name=hostnet31 \ +-vnc 127.0.0.1:0 \ +-k en-us \ +-vga cirrus \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml b/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml index 683c269..2e8f539 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml @@ -35,164 +35,131 @@ <controller type='pci' index='0' model='pci-root'/> <controller type='pci' index='1' model='pci-bridge'/> <controller type='pci' index='2' model='pci-bridge'/> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:f1:95:51'/> - <source network='default'/> <model type='rtl8139'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:5c:c6:1a'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:39:97:ac'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:45:28:cb'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:ee:b9:a8'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:a9:f7:17'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:df:2b:f3'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:78:94:b4'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:6b:9b:06'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:17:df:bc'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:3b:d0:51'/> - <source network='default'/> - <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:8d:2d:17'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:a7:66:af'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:54:ab:d7'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:1f:99:90'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:c8:43:87'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:df:22:b2'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:d2:9a:47'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:86:05:e2'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:8c:1c:c2'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:48:58:92'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:99:e5:bf'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:b1:8c:25'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:60:e0:d0'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:37:00:6a'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:c7:c8:ad'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:4e:a7:cf'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:00:79:69'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:47:00:6f'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:2a:8c:8b'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:ec:d5:e3'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:7e:6e:c8'/> - <source network='default'/> <model type='e1000'/> </interface> <input type='mouse' bus='ps2'/> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args b/tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args new file mode 100644 index 0000000..387ffd2 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args @@ -0,0 +1,20 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name dummy2 \ +-S \ +-M pc-q35-2.3 \ +-m 128 \ +-smp 2,maxcpus=6,sockets=6,cores=1,threads=1 \ +-object iothread,id=iothread1 \ +-object iothread,id=iothread2 \ +-uuid 4d92ec27-9ebf-400b-ae91-20c71c647c19 \ +-nographic \ +-nodefaults \ +-monitor unix:/tmp/lib/domain--1-dummy2/monitor.sock,server,nowait \ +-no-acpi \ +-boot c diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index f55b04b..1298ac6 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1393,23 +1393,29 @@ mymain(void) QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG); DO_TEST("usb-controller-default-q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, - QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_NEC_USB_XHCI); DO_TEST_FAILURE("usb-controller-default-unavailable-q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PCI_OHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST("usb-controller-explicit-q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, - QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_NEC_USB_XHCI); DO_TEST_FAILURE("usb-controller-explicit-unavailable-q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI); DO_TEST("usb-controller-xhci", QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_PIIX3_USB_UHCI, @@ -1572,6 +1578,10 @@ mymain(void) QEMU_CAPS_OBJECT_IOTHREAD, QEMU_CAPS_OBJECT_MEMORY_RAM, QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("vcpu-placement-static", + QEMU_CAPS_KVM, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_OBJECT_IOTHREAD); DO_TEST("numatune-memory", NONE); DO_TEST_PARSE_ERROR("numatune-memory-invalid-nodeset", NONE); @@ -1682,10 +1692,11 @@ mymain(void) QEMU_CAPS_IDE_CD, QEMU_CAPS_BLOCKIO); DO_TEST("video-device-pciaddr-default", - QEMU_CAPS_KVM, QEMU_CAPS_VNC, + QEMU_CAPS_KVM, + QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, - QEMU_CAPS_DEVICE_QXL, - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_DEVICE_QXL); DO_TEST("video-vga-nodevice", QEMU_CAPS_DEVICE_VGA); DO_TEST("video-vga-device", QEMU_CAPS_DEVICE_VGA, QEMU_CAPS_DEVICE_VIDEO_PRIMARY); @@ -1785,9 +1796,15 @@ mymain(void) DO_TEST_PARSE_ERROR("pci-slot-invalid", NONE); DO_TEST_PARSE_ERROR("pci-function-invalid", NONE); - DO_TEST("pci-autoadd-addr", QEMU_CAPS_DEVICE_PCI_BRIDGE, + DO_TEST("pci-bridge", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("pci-autoadd-addr", + QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("pci-autoadd-idx", QEMU_CAPS_DEVICE_PCI_BRIDGE, + DO_TEST("pci-autoadd-idx", + QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-autofill-addr", QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-many", @@ -1796,16 +1813,19 @@ mymain(void) DO_TEST("pci-bridge-many-disks", QEMU_CAPS_DEVICE_PCI_BRIDGE); DO_TEST("pcie-root", - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420); + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_DEVICE_QXL); DO_TEST("q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST_PARSE_ERROR("q35-dmi-bad-address1", @@ -1832,7 +1852,8 @@ mymain(void) QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2-multi", @@ -1840,7 +1861,8 @@ mymain(void) QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2-reorder", @@ -1848,7 +1870,8 @@ mymain(void) QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); /* verify that devices with pcie capability are assigned to a pcie slot */ @@ -2020,7 +2043,8 @@ mymain(void) QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_NEC_USB_XHCI); /* Make sure the user can always override libvirt's default device * placement policy by providing an explicit PCI address */ @@ -2190,7 +2214,8 @@ mymain(void) QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420); + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_VIRTIO_SCSI); DO_TEST("aarch64-virt-2.6-virtio-pci-default", QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB, QEMU_CAPS_DEVICE_VIRTIO_MMIO, @@ -2466,12 +2491,15 @@ mymain(void) QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_USB_HUB); DO_TEST("acpi-table", NONE); - DO_TEST("intel-iommu", QEMU_CAPS_DEVICE_PCI_BRIDGE, + DO_TEST("intel-iommu", + QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_INTEL_IOMMU); - DO_TEST("intel-iommu-machine", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_MACHINE_OPT, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_MACHINE_IOMMU); + DO_TEST("intel-iommu-machine", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_MACHINE_OPT, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_MACHINE_IOMMU); DO_TEST("cpu-hotplug-startup", QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS); diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml new file mode 100644 index 0000000..b94ad85 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml @@ -0,0 +1,32 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='pc-q35-2.4'>hvm</type> + <boot dev='fd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='file' device='floppy'> + <driver name='qemu' type='raw'/> + <source file='/tmp/firmware.img'/> + <target dev='fda' bus='fdc'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> + </controller> + <controller type='pci' index='0' model='pcie-root'/> + <controller type='fdc' index='0'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml new file mode 100644 index 0000000..b94ad85 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml @@ -0,0 +1,32 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='pc-q35-2.4'>hvm</type> + <boot dev='fd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='file' device='floppy'> + <driver name='qemu' type='raw'/> + <source file='/tmp/firmware.img'/> + <target dev='fda' bus='fdc'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> + </controller> + <controller type='pci' index='0' model='pcie-root'/> + <controller type='fdc' index='0'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml new file mode 100644 index 0000000..de921f6 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml @@ -0,0 +1,26 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='q35'>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</emulator> + <controller type='pci' index='0' model='pcie-root'/> + <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'/> + <iommu model='intel'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge.xml index 61de009..6769bac 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge.xml @@ -43,195 +43,163 @@ <target chassisNr='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:f1:95:51'/> - <source network='default'/> <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:5c:c6:1a'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:39:97:ac'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:45:28:cb'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:ee:b9:a8'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:a9:f7:17'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:df:2b:f3'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:78:94:b4'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:6b:9b:06'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:17:df:bc'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0f' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:3b:d0:51'/> - <source network='default'/> - <model type='e1000'/> + <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:8d:2d:17'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x11' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:a7:66:af'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:54:ab:d7'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x13' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:1f:99:90'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x14' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:c8:43:87'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x15' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:df:22:b2'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x16' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:d2:9a:47'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x17' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:86:05:e2'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x18' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:8c:1c:c2'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x19' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:48:58:92'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:99:e5:bf'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:b1:8c:25'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1c' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:60:e0:d0'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:37:00:6a'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:c7:c8:ad'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:4e:a7:cf'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:00:79:69'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:47:00:6f'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x03' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:2a:8c:8b'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x04' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:ec:d5:e3'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x05' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:7e:6e:c8'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x06' function='0x0'/> </interface> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml new file mode 100644 index 0000000..375ff14 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml @@ -0,0 +1,214 @@ +<domain type='qemu'> + <name>fdr-br</name> + <uuid>3ec6cbe1-b5a2-4515-b800-31a61855df41</uuid> + <memory unit='KiB'>2097152</memory> + <currentMemory unit='KiB'>2097152</currentMemory> + <vcpu placement='static' cpuset='0-1'>2</vcpu> + <os> + <type arch='x86_64' machine='pc-1.2'>hvm</type> + <boot dev='hd'/> + </os> + <features> + <acpi/> + <apic/> + <pae/> + </features> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <emulator>/usr/libexec/qemu-kvm</emulator> + <disk type='file' device='cdrom'> + <driver name='qemu' type='raw'/> + <source file='/var/iso/f18kde.iso'/> + <target dev='hdc' bus='ide'/> + <readonly/> + <address type='drive' controller='0' bus='1' target='0' unit='0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/test.img'/> + <target dev='vda' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/test1.img'/> + <target dev='vdb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-a-a.img'/> + <target dev='vdaa' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-a-b.img'/> + <target dev='vdab' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-a-c.img'/> + <target dev='vdac' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-a-d.img'/> + <target dev='vdad' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-b-a.img'/> + <target dev='vdba' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-b-b.img'/> + <target dev='vdbb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-b-c.img'/> + <target dev='vdbc' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-b-d.img'/> + <target dev='vdbd' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-c-a.img'/> + <target dev='vdca' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-c-b.img'/> + <target dev='vdcb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0f' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-c-c.img'/> + <target dev='vdcc' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-c-d.img'/> + <target dev='vdcd' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x11' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-d-a.img'/> + <target dev='vdda' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-d-b.img'/> + <target dev='vddb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x13' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-d-c.img'/> + <target dev='vddc' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x14' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-d-d.img'/> + <target dev='vddd' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x15' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-e-a.img'/> + <target dev='vdea' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x16' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-e-b.img'/> + <target dev='vdeb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x17' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-e-c.img'/> + <target dev='vdec' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x18' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-e-d.img'/> + <target dev='vded' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x19' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-f-a.img'/> + <target dev='vdfa' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-f-b.img'/> + <target dev='vdfb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-f-c.img'/> + <target dev='vdfc' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1c' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-f-d.img'/> + <target dev='vdfd' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-g-a.img'/> + <target dev='vdga' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-g-b.img'/> + <target dev='vdgb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x0'/> + </disk> + <controller type='usb' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> + </controller> + <controller type='ide' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> + </controller> + <controller type='pci' index='0' model='pci-root'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <video> + <model type='cirrus' vram='16384' heads='1' primary='yes'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </video> + <memballoon model='virtio'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> + </memballoon> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml new file mode 100644 index 0000000..9dbeaf3 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml @@ -0,0 +1,51 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>cdbebdfa-1d6d-65c3-be0f-fd74b978a773</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='pc-0.15'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='file' device='disk'> + <driver name='qemu' type='qcow2' cache='none'/> + <source file='/var/lib/libvirt/images/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> + </controller> + <controller type='ide' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> + </controller> + <controller type='pci' index='0' model='pci-root'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'> + <listen type='address' address='127.0.0.1'/> + </graphics> + <video> + <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> + </video> + <video> + <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> + </video> + <video> + <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> + </video> + <memballoon model='virtio'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </memballoon> + </devices> +</domain> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 0702f58..225f999 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -371,6 +371,17 @@ mymain(void) DO_TEST("boot-cdrom", NONE); DO_TEST("boot-network", NONE); DO_TEST("boot-floppy", NONE); + DO_TEST("boot-floppy-q35", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI); + DO_TEST("bootindex-floppy-q35", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_BOOT_MENU, + QEMU_CAPS_BOOTINDEX); DO_TEST("boot-multi", NONE); DO_TEST("boot-menu-enable-with-timeout", NONE); DO_TEST("boot-menu-disable", NONE); @@ -566,7 +577,9 @@ mymain(void) DO_TEST("cputune-iothreadsched-zeropriority", NONE); DO_TEST("cputune-numatune", NONE); DO_TEST("vcpu-placement-static", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_KVM, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_OBJECT_IOTHREAD); DO_TEST("smp", NONE); DO_TEST("iothreads", NONE); @@ -593,14 +606,18 @@ mymain(void) DO_TEST("usb-piix3-controller", QEMU_CAPS_PIIX3_USB_UHCI); DO_TEST("usb-controller-default-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST("usb-controller-explicit-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST("ppc64-usb-controller", QEMU_CAPS_PCI_OHCI); @@ -669,45 +686,63 @@ mymain(void) DO_TEST("metadata-duplicate", NONE); DO_TEST("pci-bridge", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("pci-many", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-bridge-many-disks", QEMU_CAPS_DEVICE_PCI_BRIDGE); DO_TEST("pci-autoadd-addr", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-autoadd-idx", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-autofill-addr", NONE); DO_TEST("q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, - QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2-multi", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, - QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2-reorder", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, - QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-pcie", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM, + QEMU_CAPS_NETDEV, QEMU_CAPS_DEVICE_VIRTIO_NET, QEMU_CAPS_DEVICE_VIRTIO_GPU, QEMU_CAPS_VIRTIO_GPU_VIRGL, @@ -731,6 +766,7 @@ mymain(void) DO_TEST("q35-virtio-pci", QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM, + QEMU_CAPS_NETDEV, QEMU_CAPS_DEVICE_VIRTIO_NET, QEMU_CAPS_DEVICE_VIRTIO_GPU, QEMU_CAPS_VIRTIO_GPU_VIRGL, @@ -820,6 +856,11 @@ mymain(void) QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY); DO_TEST("q35-virt-manager-basic", + QEMU_CAPS_KVM, + QEMU_CAPS_RTC, + QEMU_CAPS_NO_KVM_PIT, + QEMU_CAPS_ICH9_DISABLE_S3, + QEMU_CAPS_ICH9_DISABLE_S4, QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM, @@ -842,40 +883,64 @@ mymain(void) QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_DEVICE_ICH9_INTEL_HDA, - QEMU_CAPS_DEVICE_VIDEO_PRIMARY); + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_SPICE, + QEMU_CAPS_CHARDEV_SPICEVMC, + QEMU_CAPS_DEVICE_QXL, + QEMU_CAPS_HDA_DUPLEX, + QEMU_CAPS_USB_REDIR); DO_TEST("pcie-root", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-root-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-switch-upstream-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_DEVICE_X3130_UPSTREAM, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-switch-downstream-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_DEVICE_X3130_UPSTREAM, + QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pci-expander-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_PXB); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PXB); DO_TEST("pcie-expander-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, - QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, QEMU_CAPS_DEVICE_PXB_PCIE); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_DEVICE_X3130_UPSTREAM, + QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, + QEMU_CAPS_DEVICE_PXB_PCIE); DO_TEST("autoindex", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, - QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_DEVICE_X3130_UPSTREAM, + QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_NEC_USB_XHCI); /* Make sure the user can always override libvirt's default device * placement policy by providing an explicit PCI address */ @@ -944,9 +1009,11 @@ mymain(void) DO_TEST("pcihole64-gib", NONE); DO_TEST("pcihole64-none", NONE); DO_TEST("pcihole64-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL, QEMU_CAPS_Q35_PCI_HOLE64_SIZE); @@ -1049,6 +1116,12 @@ mymain(void) DO_TEST("acpi-table", NONE); + DO_TEST("video-device-pciaddr-default", + QEMU_CAPS_KVM, + QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_DEVICE_QXL); DO_TEST("video-qxl-heads", NONE); DO_TEST("video-qxl-noheads", NONE); DO_TEST("video-virtio-gpu-secondary", NONE); @@ -1056,7 +1129,12 @@ mymain(void) DO_TEST("intel-iommu", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420); + QEMU_CAPS_DEVICE_INTEL_IOMMU); + DO_TEST("intel-iommu-machine", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_MACHINE_OPT, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_MACHINE_IOMMU); qemuTestDriverFree(&driver); -- 2.7.4

+42 for doing this :-) ACK to the patch, because I don't have the intestinal fortitude to connect reconcile single change, but I'm assuming you had some methodology to the way that you added/removed things (and I'd like to subscribe to your newsletter on the topic). (Seriously, I tried diffing qemuxml2xmltest.c and qemuxml2argvtest.c, and it showed a lot of differences in the region of the test invocations. Maybe in the future we could handle this by making both .c's reference a common file (not that *I'm* going to do this, or even that I expect you to. It would be nice though if there was a single place to put new tests that should be in both xml2argv and xml2xml tests). On 02/23/2017 01:39 PM, Andrea Bolognani wrote:
In some cases, only one of the two transformations was checked; in other cases, the capabilities set differed. --- Note that the input file for the "pci-bridge" test case had to be changed to make it usable for qemuxml2argv.
.../qemuxml2argvdata/qemuxml2argv-pci-bridge.args | 90 +++++++++ tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml | 97 +++------- .../qemuxml2argv-vcpu-placement-static.args | 20 ++ tests/qemuxml2argvtest.c | 74 ++++--- .../qemuxml2xmlout-boot-floppy-q35.xml | 32 +++ .../qemuxml2xmlout-bootindex-floppy-q35.xml | 32 +++ .../qemuxml2xmlout-intel-iommu-machine.xml | 26 +++ .../qemuxml2xmlout-pci-bridge.xml | 98 ++++------ .../qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml | 214 +++++++++++++++++++++ ...qemuxml2xmlout-video-device-pciaddr-default.xml | 51 +++++ tests/qemuxml2xmltest.c | 154 +++++++++++---- 11 files changed, 697 insertions(+), 191 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args b/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args new file mode 100644 index 0000000..d1d51b3 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args @@ -0,0 +1,90 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/libexec/qemu-kvm \ +-name fdr-br \ +-S \ +-M pc-1.2 \ +-m 2048 \ +-smp 2,sockets=2,cores=1,threads=1 \ +-uuid 3ec6cbe1-b5a2-4515-b800-31a61855df41 \ +-nodefaults \ +-monitor unix:/tmp/lib/domain--1-fdr-br/monitor.sock,server,nowait \ +-boot c \ +-device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x3 \ +-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.0,addr=0x4 \ +-usb \ +-drive file=/var/iso/f18kde.iso,format=raw,if=none,media=cdrom,\ +id=drive-ide0-1-0,readonly=on \ +-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \ +-device rtl8139,vlan=0,id=net0,mac=52:54:00:f1:95:51,bus=pci.0,addr=0x5 \ +-net user,vlan=0,name=hostnet0 \ +-device e1000,vlan=1,id=net1,mac=52:54:00:5c:c6:1a,bus=pci.0,addr=0x7 \ +-net user,vlan=1,name=hostnet1 \ +-device e1000,vlan=2,id=net2,mac=52:54:00:39:97:ac,bus=pci.0,addr=0x8 \ +-net user,vlan=2,name=hostnet2 \ +-device e1000,vlan=3,id=net3,mac=52:54:00:45:28:cb,bus=pci.0,addr=0x9 \ +-net user,vlan=3,name=hostnet3 \ +-device e1000,vlan=4,id=net4,mac=52:54:00:ee:b9:a8,bus=pci.0,addr=0xa \ +-net user,vlan=4,name=hostnet4 \ +-device e1000,vlan=5,id=net5,mac=52:54:00:a9:f7:17,bus=pci.0,addr=0xb \ +-net user,vlan=5,name=hostnet5 \ +-device e1000,vlan=6,id=net6,mac=52:54:00:df:2b:f3,bus=pci.0,addr=0xc \ +-net user,vlan=6,name=hostnet6 \ +-device e1000,vlan=7,id=net7,mac=52:54:00:78:94:b4,bus=pci.0,addr=0xd \ +-net user,vlan=7,name=hostnet7 \ +-device e1000,vlan=8,id=net8,mac=52:54:00:6b:9b:06,bus=pci.0,addr=0xe \ +-net user,vlan=8,name=hostnet8 \ +-device e1000,vlan=9,id=net9,mac=52:54:00:17:df:bc,bus=pci.0,addr=0xf \ +-net user,vlan=9,name=hostnet9 \ +-device rtl8139,vlan=10,id=net10,mac=52:54:00:3b:d0:51,bus=pci.0,addr=0x10 \ +-net user,vlan=10,name=hostnet10 \ +-device e1000,vlan=11,id=net11,mac=52:54:00:8d:2d:17,bus=pci.0,addr=0x11 \ +-net user,vlan=11,name=hostnet11 \ +-device e1000,vlan=12,id=net12,mac=52:54:00:a7:66:af,bus=pci.0,addr=0x12 \ +-net user,vlan=12,name=hostnet12 \ +-device e1000,vlan=13,id=net13,mac=52:54:00:54:ab:d7,bus=pci.0,addr=0x13 \ +-net user,vlan=13,name=hostnet13 \ +-device e1000,vlan=14,id=net14,mac=52:54:00:1f:99:90,bus=pci.0,addr=0x14 \ +-net user,vlan=14,name=hostnet14 \ +-device e1000,vlan=15,id=net15,mac=52:54:00:c8:43:87,bus=pci.0,addr=0x15 \ +-net user,vlan=15,name=hostnet15 \ +-device e1000,vlan=16,id=net16,mac=52:54:00:df:22:b2,bus=pci.0,addr=0x16 \ +-net user,vlan=16,name=hostnet16 \ +-device e1000,vlan=17,id=net17,mac=52:54:00:d2:9a:47,bus=pci.0,addr=0x17 \ +-net user,vlan=17,name=hostnet17 \ +-device e1000,vlan=18,id=net18,mac=52:54:00:86:05:e2,bus=pci.0,addr=0x18 \ +-net user,vlan=18,name=hostnet18 \ +-device e1000,vlan=19,id=net19,mac=52:54:00:8c:1c:c2,bus=pci.0,addr=0x19 \ +-net user,vlan=19,name=hostnet19 \ +-device e1000,vlan=20,id=net20,mac=52:54:00:48:58:92,bus=pci.0,addr=0x1a \ +-net user,vlan=20,name=hostnet20 \ +-device e1000,vlan=21,id=net21,mac=52:54:00:99:e5:bf,bus=pci.0,addr=0x1b \ +-net user,vlan=21,name=hostnet21 \ +-device e1000,vlan=22,id=net22,mac=52:54:00:b1:8c:25,bus=pci.0,addr=0x1c \ +-net user,vlan=22,name=hostnet22 \ +-device e1000,vlan=23,id=net23,mac=52:54:00:60:e0:d0,bus=pci.0,addr=0x1d \ +-net user,vlan=23,name=hostnet23 \ +-device e1000,vlan=24,id=net24,mac=52:54:00:37:00:6a,bus=pci.0,addr=0x1e \ +-net user,vlan=24,name=hostnet24 \ +-device e1000,vlan=25,id=net25,mac=52:54:00:c7:c8:ad,bus=pci.0,addr=0x1f \ +-net user,vlan=25,name=hostnet25 \ +-device e1000,vlan=26,id=net26,mac=52:54:00:4e:a7:cf,bus=pci.1,addr=0x1 \ +-net user,vlan=26,name=hostnet26 \ +-device e1000,vlan=27,id=net27,mac=52:54:00:00:79:69,bus=pci.1,addr=0x2 \ +-net user,vlan=27,name=hostnet27 \ +-device e1000,vlan=28,id=net28,mac=52:54:00:47:00:6f,bus=pci.1,addr=0x3 \ +-net user,vlan=28,name=hostnet28 \ +-device e1000,vlan=29,id=net29,mac=52:54:00:2a:8c:8b,bus=pci.1,addr=0x4 \ +-net user,vlan=29,name=hostnet29 \ +-device e1000,vlan=30,id=net30,mac=52:54:00:ec:d5:e3,bus=pci.1,addr=0x5 \ +-net user,vlan=30,name=hostnet30 \ +-device e1000,vlan=31,id=net31,mac=52:54:00:7e:6e:c8,bus=pci.1,addr=0x6 \ +-net user,vlan=31,name=hostnet31 \ +-vnc 127.0.0.1:0 \ +-k en-us \ +-vga cirrus \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml b/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml index 683c269..2e8f539 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml @@ -35,164 +35,131 @@ <controller type='pci' index='0' model='pci-root'/> <controller type='pci' index='1' model='pci-bridge'/> <controller type='pci' index='2' model='pci-bridge'/> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:f1:95:51'/> - <source network='default'/> <model type='rtl8139'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:5c:c6:1a'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:39:97:ac'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:45:28:cb'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:ee:b9:a8'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:a9:f7:17'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:df:2b:f3'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:78:94:b4'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:6b:9b:06'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:17:df:bc'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:3b:d0:51'/> - <source network='default'/> - <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:8d:2d:17'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:a7:66:af'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:54:ab:d7'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:1f:99:90'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:c8:43:87'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:df:22:b2'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:d2:9a:47'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:86:05:e2'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:8c:1c:c2'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:48:58:92'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:99:e5:bf'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:b1:8c:25'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:60:e0:d0'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:37:00:6a'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:c7:c8:ad'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:4e:a7:cf'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:00:79:69'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:47:00:6f'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:2a:8c:8b'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:ec:d5:e3'/> - <source network='default'/> <model type='e1000'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:7e:6e:c8'/> - <source network='default'/> <model type='e1000'/> </interface> <input type='mouse' bus='ps2'/> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args b/tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args new file mode 100644 index 0000000..387ffd2 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args @@ -0,0 +1,20 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name dummy2 \ +-S \ +-M pc-q35-2.3 \ +-m 128 \ +-smp 2,maxcpus=6,sockets=6,cores=1,threads=1 \ +-object iothread,id=iothread1 \ +-object iothread,id=iothread2 \ +-uuid 4d92ec27-9ebf-400b-ae91-20c71c647c19 \ +-nographic \ +-nodefaults \ +-monitor unix:/tmp/lib/domain--1-dummy2/monitor.sock,server,nowait \ +-no-acpi \ +-boot c diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index f55b04b..1298ac6 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1393,23 +1393,29 @@ mymain(void) QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG); DO_TEST("usb-controller-default-q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, - QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_NEC_USB_XHCI); DO_TEST_FAILURE("usb-controller-default-unavailable-q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PCI_OHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST("usb-controller-explicit-q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, - QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_NEC_USB_XHCI); DO_TEST_FAILURE("usb-controller-explicit-unavailable-q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI); DO_TEST("usb-controller-xhci", QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_PIIX3_USB_UHCI, @@ -1572,6 +1578,10 @@ mymain(void) QEMU_CAPS_OBJECT_IOTHREAD, QEMU_CAPS_OBJECT_MEMORY_RAM, QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("vcpu-placement-static", + QEMU_CAPS_KVM, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_OBJECT_IOTHREAD);
DO_TEST("numatune-memory", NONE); DO_TEST_PARSE_ERROR("numatune-memory-invalid-nodeset", NONE); @@ -1682,10 +1692,11 @@ mymain(void) QEMU_CAPS_IDE_CD, QEMU_CAPS_BLOCKIO);
DO_TEST("video-device-pciaddr-default", - QEMU_CAPS_KVM, QEMU_CAPS_VNC, + QEMU_CAPS_KVM, + QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, - QEMU_CAPS_DEVICE_QXL, - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_DEVICE_QXL); DO_TEST("video-vga-nodevice", QEMU_CAPS_DEVICE_VGA); DO_TEST("video-vga-device", QEMU_CAPS_DEVICE_VGA, QEMU_CAPS_DEVICE_VIDEO_PRIMARY); @@ -1785,9 +1796,15 @@ mymain(void) DO_TEST_PARSE_ERROR("pci-slot-invalid", NONE); DO_TEST_PARSE_ERROR("pci-function-invalid", NONE);
- DO_TEST("pci-autoadd-addr", QEMU_CAPS_DEVICE_PCI_BRIDGE, + DO_TEST("pci-bridge", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("pci-autoadd-addr", + QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("pci-autoadd-idx", QEMU_CAPS_DEVICE_PCI_BRIDGE, + DO_TEST("pci-autoadd-idx", + QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-autofill-addr", QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-many", @@ -1796,16 +1813,19 @@ mymain(void) DO_TEST("pci-bridge-many-disks", QEMU_CAPS_DEVICE_PCI_BRIDGE); DO_TEST("pcie-root", - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420); + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_DEVICE_QXL); DO_TEST("q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST_PARSE_ERROR("q35-dmi-bad-address1", @@ -1832,7 +1852,8 @@ mymain(void) QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2-multi", @@ -1840,7 +1861,8 @@ mymain(void) QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2-reorder", @@ -1848,7 +1870,8 @@ mymain(void) QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); /* verify that devices with pcie capability are assigned to a pcie slot */ @@ -2020,7 +2043,8 @@ mymain(void) QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_NEC_USB_XHCI); /* Make sure the user can always override libvirt's default device * placement policy by providing an explicit PCI address */ @@ -2190,7 +2214,8 @@ mymain(void) QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420); + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_VIRTIO_SCSI); DO_TEST("aarch64-virt-2.6-virtio-pci-default", QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB, QEMU_CAPS_DEVICE_VIRTIO_MMIO, @@ -2466,12 +2491,15 @@ mymain(void) QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_USB_HUB);
DO_TEST("acpi-table", NONE); - DO_TEST("intel-iommu", QEMU_CAPS_DEVICE_PCI_BRIDGE, + DO_TEST("intel-iommu", + QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_INTEL_IOMMU); - DO_TEST("intel-iommu-machine", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_MACHINE_OPT, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_MACHINE_IOMMU); + DO_TEST("intel-iommu-machine", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_MACHINE_OPT, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_MACHINE_IOMMU);
DO_TEST("cpu-hotplug-startup", QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS);
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml new file mode 100644 index 0000000..b94ad85 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml @@ -0,0 +1,32 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='pc-q35-2.4'>hvm</type> + <boot dev='fd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='file' device='floppy'> + <driver name='qemu' type='raw'/> + <source file='/tmp/firmware.img'/> + <target dev='fda' bus='fdc'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> + </controller> + <controller type='pci' index='0' model='pcie-root'/> + <controller type='fdc' index='0'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml new file mode 100644 index 0000000..b94ad85 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml @@ -0,0 +1,32 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='pc-q35-2.4'>hvm</type> + <boot dev='fd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='file' device='floppy'> + <driver name='qemu' type='raw'/> + <source file='/tmp/firmware.img'/> + <target dev='fda' bus='fdc'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> + </controller> + <controller type='pci' index='0' model='pcie-root'/> + <controller type='fdc' index='0'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml new file mode 100644 index 0000000..de921f6 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml @@ -0,0 +1,26 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='q35'>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</emulator> + <controller type='pci' index='0' model='pcie-root'/> + <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'/> + <iommu model='intel'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge.xml index 61de009..6769bac 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge.xml @@ -43,195 +43,163 @@ <target chassisNr='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:f1:95:51'/> - <source network='default'/> <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:5c:c6:1a'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:39:97:ac'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:45:28:cb'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:ee:b9:a8'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:a9:f7:17'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:df:2b:f3'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:78:94:b4'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:6b:9b:06'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:17:df:bc'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0f' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:3b:d0:51'/> - <source network='default'/> - <model type='e1000'/> + <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:8d:2d:17'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x11' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:a7:66:af'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:54:ab:d7'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x13' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:1f:99:90'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x14' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:c8:43:87'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x15' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:df:22:b2'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x16' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:d2:9a:47'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x17' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:86:05:e2'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x18' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:8c:1c:c2'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x19' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:48:58:92'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:99:e5:bf'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:b1:8c:25'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1c' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:60:e0:d0'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:37:00:6a'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:c7:c8:ad'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:4e:a7:cf'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:00:79:69'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:47:00:6f'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x03' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:2a:8c:8b'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x04' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:ec:d5:e3'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x05' function='0x0'/> </interface> - <interface type='network'> + <interface type='user'> <mac address='52:54:00:7e:6e:c8'/> - <source network='default'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x06' function='0x0'/> </interface> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml new file mode 100644 index 0000000..375ff14 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml @@ -0,0 +1,214 @@ +<domain type='qemu'> + <name>fdr-br</name> + <uuid>3ec6cbe1-b5a2-4515-b800-31a61855df41</uuid> + <memory unit='KiB'>2097152</memory> + <currentMemory unit='KiB'>2097152</currentMemory> + <vcpu placement='static' cpuset='0-1'>2</vcpu> + <os> + <type arch='x86_64' machine='pc-1.2'>hvm</type> + <boot dev='hd'/> + </os> + <features> + <acpi/> + <apic/> + <pae/> + </features> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <emulator>/usr/libexec/qemu-kvm</emulator> + <disk type='file' device='cdrom'> + <driver name='qemu' type='raw'/> + <source file='/var/iso/f18kde.iso'/> + <target dev='hdc' bus='ide'/> + <readonly/> + <address type='drive' controller='0' bus='1' target='0' unit='0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/test.img'/> + <target dev='vda' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/test1.img'/> + <target dev='vdb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-a-a.img'/> + <target dev='vdaa' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-a-b.img'/> + <target dev='vdab' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-a-c.img'/> + <target dev='vdac' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-a-d.img'/> + <target dev='vdad' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-b-a.img'/> + <target dev='vdba' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-b-b.img'/> + <target dev='vdbb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-b-c.img'/> + <target dev='vdbc' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-b-d.img'/> + <target dev='vdbd' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-c-a.img'/> + <target dev='vdca' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-c-b.img'/> + <target dev='vdcb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0f' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-c-c.img'/> + <target dev='vdcc' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-c-d.img'/> + <target dev='vdcd' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x11' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-d-a.img'/> + <target dev='vdda' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-d-b.img'/> + <target dev='vddb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x13' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-d-c.img'/> + <target dev='vddc' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x14' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-d-d.img'/> + <target dev='vddd' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x15' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-e-a.img'/> + <target dev='vdea' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x16' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-e-b.img'/> + <target dev='vdeb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x17' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-e-c.img'/> + <target dev='vdec' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x18' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-e-d.img'/> + <target dev='vded' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x19' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-f-a.img'/> + <target dev='vdfa' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-f-b.img'/> + <target dev='vdfb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-f-c.img'/> + <target dev='vdfc' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1c' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-f-d.img'/> + <target dev='vdfd' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-g-a.img'/> + <target dev='vdga' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> + </disk> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/var/lib/libvirt/images/disk-g-b.img'/> + <target dev='vdgb' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x0'/> + </disk> + <controller type='usb' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> + </controller> + <controller type='ide' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> + </controller> + <controller type='pci' index='0' model='pci-root'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <video> + <model type='cirrus' vram='16384' heads='1' primary='yes'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </video> + <memballoon model='virtio'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> + </memballoon> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml new file mode 100644 index 0000000..9dbeaf3 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml @@ -0,0 +1,51 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>cdbebdfa-1d6d-65c3-be0f-fd74b978a773</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='pc-0.15'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='file' device='disk'> + <driver name='qemu' type='qcow2' cache='none'/> + <source file='/var/lib/libvirt/images/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> + </controller> + <controller type='ide' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> + </controller> + <controller type='pci' index='0' model='pci-root'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'> + <listen type='address' address='127.0.0.1'/> + </graphics> + <video> + <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> + </video> + <video> + <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> + </video> + <video> + <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> + </video> + <memballoon model='virtio'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </memballoon> + </devices> +</domain> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 0702f58..225f999 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -371,6 +371,17 @@ mymain(void) DO_TEST("boot-cdrom", NONE); DO_TEST("boot-network", NONE); DO_TEST("boot-floppy", NONE); + DO_TEST("boot-floppy-q35", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI); + DO_TEST("bootindex-floppy-q35", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_BOOT_MENU, + QEMU_CAPS_BOOTINDEX); DO_TEST("boot-multi", NONE); DO_TEST("boot-menu-enable-with-timeout", NONE); DO_TEST("boot-menu-disable", NONE); @@ -566,7 +577,9 @@ mymain(void) DO_TEST("cputune-iothreadsched-zeropriority", NONE); DO_TEST("cputune-numatune", NONE); DO_TEST("vcpu-placement-static", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_KVM, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_OBJECT_IOTHREAD);
DO_TEST("smp", NONE); DO_TEST("iothreads", NONE); @@ -593,14 +606,18 @@ mymain(void) DO_TEST("usb-piix3-controller", QEMU_CAPS_PIIX3_USB_UHCI); DO_TEST("usb-controller-default-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST("usb-controller-explicit-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI, + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST("ppc64-usb-controller", QEMU_CAPS_PCI_OHCI); @@ -669,45 +686,63 @@ mymain(void) DO_TEST("metadata-duplicate", NONE);
DO_TEST("pci-bridge", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("pci-many", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-bridge-many-disks", QEMU_CAPS_DEVICE_PCI_BRIDGE); DO_TEST("pci-autoadd-addr", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-autoadd-idx", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-autofill-addr", NONE);
DO_TEST("q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, - QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2-multi", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, - QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-usb2-reorder", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, - QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("q35-pcie", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM, + QEMU_CAPS_NETDEV, QEMU_CAPS_DEVICE_VIRTIO_NET, QEMU_CAPS_DEVICE_VIRTIO_GPU, QEMU_CAPS_VIRTIO_GPU_VIRGL, @@ -731,6 +766,7 @@ mymain(void) DO_TEST("q35-virtio-pci", QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM, + QEMU_CAPS_NETDEV, QEMU_CAPS_DEVICE_VIRTIO_NET, QEMU_CAPS_DEVICE_VIRTIO_GPU, QEMU_CAPS_VIRTIO_GPU_VIRGL, @@ -820,6 +856,11 @@ mymain(void) QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY); DO_TEST("q35-virt-manager-basic", + QEMU_CAPS_KVM, + QEMU_CAPS_RTC, + QEMU_CAPS_NO_KVM_PIT, + QEMU_CAPS_ICH9_DISABLE_S3, + QEMU_CAPS_ICH9_DISABLE_S4, QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM, @@ -842,40 +883,64 @@ mymain(void) QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_DEVICE_ICH9_INTEL_HDA, - QEMU_CAPS_DEVICE_VIDEO_PRIMARY); + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_SPICE, + QEMU_CAPS_CHARDEV_SPICEVMC, + QEMU_CAPS_DEVICE_QXL, + QEMU_CAPS_HDA_DUPLEX, + QEMU_CAPS_USB_REDIR); DO_TEST("pcie-root", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-root-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-switch-upstream-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_DEVICE_X3130_UPSTREAM, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-switch-downstream-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_DEVICE_X3130_UPSTREAM, + QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, + QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pci-expander-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_PXB); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PXB); DO_TEST("pcie-expander-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, - QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, QEMU_CAPS_DEVICE_PXB_PCIE); + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_DEVICE_X3130_UPSTREAM, + QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, + QEMU_CAPS_DEVICE_PXB_PCIE); DO_TEST("autoindex", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, - QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, QEMU_CAPS_ICH9_AHCI, - QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_IOH3420, + QEMU_CAPS_DEVICE_X3130_UPSTREAM, + QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_PCI_MULTIFUNCTION, + QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_NEC_USB_XHCI); /* Make sure the user can always override libvirt's default device * placement policy by providing an explicit PCI address */ @@ -944,9 +1009,11 @@ mymain(void) DO_TEST("pcihole64-gib", NONE); DO_TEST("pcihole64-none", NONE); DO_TEST("pcihole64-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_ICH9_AHCI, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL, QEMU_CAPS_Q35_PCI_HOLE64_SIZE);
@@ -1049,6 +1116,12 @@ mymain(void)
DO_TEST("acpi-table", NONE);
+ DO_TEST("video-device-pciaddr-default", + QEMU_CAPS_KVM, + QEMU_CAPS_VNC, + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY, + QEMU_CAPS_DEVICE_QXL); DO_TEST("video-qxl-heads", NONE); DO_TEST("video-qxl-noheads", NONE); DO_TEST("video-virtio-gpu-secondary", NONE); @@ -1056,7 +1129,12 @@ mymain(void) DO_TEST("intel-iommu", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, - QEMU_CAPS_DEVICE_IOH3420); + QEMU_CAPS_DEVICE_INTEL_IOMMU); + DO_TEST("intel-iommu-machine", + QEMU_CAPS_DEVICE_PCI_BRIDGE, + QEMU_CAPS_MACHINE_OPT, + QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, + QEMU_CAPS_MACHINE_IOMMU);
qemuTestDriverFree(&driver);

Now that QEMU_CAPS_DEVICE_PCI_BRIDGE is no longer checked unless a pci-bridge is really part of the configuration, and most uses of the legacy PCI controller combo have been dropped from tests that use PCIe machine types, we can drop the corresponding capabilities from a lot of test cases. --- tests/qemuxml2argvtest.c | 55 ++++-------------------------------------------- tests/qemuxml2xmltest.c | 28 ------------------------ 2 files changed, 4 insertions(+), 79 deletions(-) diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 1298ac6..6bae502 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -702,13 +702,9 @@ mymain(void) DO_TEST("boot-network", NONE); DO_TEST("boot-floppy", NONE); DO_TEST("boot-floppy-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI); DO_TEST("bootindex-floppy-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_BOOT_MENU, QEMU_CAPS_BOOTINDEX); @@ -1392,29 +1388,21 @@ mymain(void) DO_TEST_PARSE_ERROR("usb-none-usbtablet", QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG); DO_TEST("usb-controller-default-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST_FAILURE("usb-controller-default-unavailable-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST("usb-controller-explicit-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST_FAILURE("usb-controller-explicit-unavailable-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI); DO_TEST("usb-controller-xhci", @@ -1580,7 +1568,6 @@ mymain(void) QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("vcpu-placement-static", QEMU_CAPS_KVM, - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_OBJECT_IOTHREAD); DO_TEST("numatune-memory", NONE); @@ -1694,7 +1681,6 @@ mymain(void) DO_TEST("video-device-pciaddr-default", QEMU_CAPS_KVM, QEMU_CAPS_VNC, - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("video-vga-nodevice", QEMU_CAPS_DEVICE_VGA); @@ -1808,13 +1794,10 @@ mymain(void) QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-autofill-addr", QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-many", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-bridge-many-disks", QEMU_CAPS_DEVICE_PCI_BRIDGE); DO_TEST("pcie-root", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, @@ -2029,8 +2012,6 @@ mymain(void) QEMU_CAPS_HDA_DUPLEX, QEMU_CAPS_USB_REDIR); DO_TEST("pcie-root-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, @@ -2055,8 +2036,6 @@ mymain(void) QEMU_CAPS_HDA_DUPLEX); DO_TEST_PARSE_ERROR("q35-wrong-root", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1, @@ -2065,16 +2044,12 @@ mymain(void) DO_TEST_PARSE_ERROR("440fx-wrong-root", NONE); DO_TEST_PARSE_ERROR("pcie-root-port-too-many", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-switch-upstream-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_ICH9_AHCI, @@ -2082,8 +2057,6 @@ mymain(void) QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-switch-downstream-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, @@ -2092,35 +2065,25 @@ mymain(void) QEMU_CAPS_DEVICE_QXL); DO_TEST("pci-expander-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_PXB); DO_TEST_PARSE_ERROR("pci-expander-bus-bad-node", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_PXB); DO_TEST_PARSE_ERROR("pci-expander-bus-bad-machine", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_PXB); DO_TEST_PARSE_ERROR("pci-expander-bus-bad-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_PXB); DO_TEST("pcie-expander-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, QEMU_CAPS_DEVICE_PXB_PCIE); DO_TEST_PARSE_ERROR("pcie-expander-bus-bad-machine", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, QEMU_CAPS_DEVICE_PXB_PCIE); DO_TEST_PARSE_ERROR("pcie-expander-bus-bad-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_PXB_PCIE); @@ -2161,14 +2124,10 @@ mymain(void) DO_TEST("mlock-off", QEMU_CAPS_REALTIME_MLOCK); DO_TEST("mlock-unsupported", NONE); - DO_TEST_PARSE_ERROR("pci-bridge-negative-index-invalid", - QEMU_CAPS_DEVICE_PCI_BRIDGE); - DO_TEST_PARSE_ERROR("pci-bridge-duplicate-index", - QEMU_CAPS_DEVICE_PCI_BRIDGE); - DO_TEST_PARSE_ERROR("pci-root-nonzero-index", - QEMU_CAPS_DEVICE_PCI_BRIDGE); - DO_TEST_PARSE_ERROR("pci-root-address", - QEMU_CAPS_DEVICE_PCI_BRIDGE); + DO_TEST_PARSE_ERROR("pci-bridge-negative-index-invalid", NONE); + DO_TEST_PARSE_ERROR("pci-bridge-duplicate-index", NONE); + DO_TEST_PARSE_ERROR("pci-root-nonzero-index", NONE); + DO_TEST_PARSE_ERROR("pci-root-address", NONE); DO_TEST("hotplug-base", QEMU_CAPS_KVM, QEMU_CAPS_VIRTIO_SCSI); @@ -2176,8 +2135,6 @@ mymain(void) DO_TEST("pcihole64", QEMU_CAPS_I440FX_PCI_HOLE64_SIZE); DO_TEST_FAILURE("pcihole64-none", NONE); DO_TEST("pcihole64-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, @@ -2492,13 +2449,9 @@ mymain(void) DO_TEST("acpi-table", NONE); DO_TEST("intel-iommu", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_INTEL_IOMMU); DO_TEST("intel-iommu-machine", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_MACHINE_OPT, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_MACHINE_IOMMU); DO_TEST("cpu-hotplug-startup", QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS); diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 225f999..4353ad2 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -372,13 +372,9 @@ mymain(void) DO_TEST("boot-network", NONE); DO_TEST("boot-floppy", NONE); DO_TEST("boot-floppy-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI); DO_TEST("bootindex-floppy-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_BOOT_MENU, QEMU_CAPS_BOOTINDEX); @@ -578,7 +574,6 @@ mymain(void) DO_TEST("cputune-numatune", NONE); DO_TEST("vcpu-placement-static", QEMU_CAPS_KVM, - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_OBJECT_IOTHREAD); DO_TEST("smp", NONE); @@ -606,15 +601,11 @@ mymain(void) DO_TEST("usb-piix3-controller", QEMU_CAPS_PIIX3_USB_UHCI); DO_TEST("usb-controller-default-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI, QEMU_CAPS_NEC_USB_XHCI); DO_TEST("usb-controller-explicit-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_PCI_OHCI, QEMU_CAPS_PIIX3_USB_UHCI, @@ -690,7 +681,6 @@ mymain(void) QEMU_CAPS_VNC, QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-many", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("pci-bridge-many-disks", QEMU_CAPS_DEVICE_PCI_BRIDGE); @@ -890,23 +880,17 @@ mymain(void) QEMU_CAPS_HDA_DUPLEX, QEMU_CAPS_USB_REDIR); DO_TEST("pcie-root", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-root-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-switch-upstream-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_ICH9_AHCI, @@ -914,8 +898,6 @@ mymain(void) QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pcie-switch-downstream-port", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, @@ -923,11 +905,8 @@ mymain(void) QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("pci-expander-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_PXB); DO_TEST("pcie-expander-bus", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_DEVICE_X3130_UPSTREAM, QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, @@ -1009,8 +988,6 @@ mymain(void) DO_TEST("pcihole64-gib", NONE); DO_TEST("pcihole64-none", NONE); DO_TEST("pcihole64-q35", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, @@ -1119,7 +1096,6 @@ mymain(void) DO_TEST("video-device-pciaddr-default", QEMU_CAPS_KVM, QEMU_CAPS_VNC, - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); DO_TEST("video-qxl-heads", NONE); @@ -1127,13 +1103,9 @@ mymain(void) DO_TEST("video-virtio-gpu-secondary", NONE); DO_TEST("intel-iommu", - QEMU_CAPS_DEVICE_PCI_BRIDGE, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_DEVICE_INTEL_IOMMU); DO_TEST("intel-iommu-machine", - QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_MACHINE_OPT, - QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_MACHINE_IOMMU); qemuTestDriverFree(&driver); -- 2.7.4

On 02/23/2017 07:39 PM, Andrea Bolognani wrote:
Changes from v1:
* don't drop capabilities for a bunch of test cases, so that potential regressions will be still caught.
Andrea Bolognani (2): tests: Sync tests between qemuxml2argv and qemuxml2xml tests: Reduce QEMU_CAPS_DEVICE_{DMI_TO_, }PCI_BRIDGE usage
.../qemuxml2argvdata/qemuxml2argv-pci-bridge.args | 90 +++++++++ tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml | 97 +++------- .../qemuxml2argv-vcpu-placement-static.args | 20 ++ tests/qemuxml2argvtest.c | 109 +++++------ .../qemuxml2xmlout-boot-floppy-q35.xml | 32 +++ .../qemuxml2xmlout-bootindex-floppy-q35.xml | 32 +++ .../qemuxml2xmlout-intel-iommu-machine.xml | 26 +++ .../qemuxml2xmlout-pci-bridge.xml | 98 ++++------ .../qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml | 214 +++++++++++++++++++++ ...qemuxml2xmlout-video-device-pciaddr-default.xml | 51 +++++ tests/qemuxml2xmltest.c | 130 +++++++++---- 11 files changed, 665 insertions(+), 234 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-vcpu-placement-static.args create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-boot-floppy-q35.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-bootindex-floppy-q35.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-machine.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-many.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-video-device-pciaddr-default.xml
ACK Michal
participants (3)
-
Andrea Bolognani
-
Laine Stump
-
Michal Privoznik