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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list