We currently have a single test case called "minimal", which
suffers from two big flaws:
* it's limited to the x86_64/pc machine type;
* it explicitly enables a number of devices.
Add several test cases, one for each of the architectures and
machine types that we have good support for.
Unlike the existing one, they're *really* minimal: no devices
or controllers at all are present in the input XML. So the new
test cases demonstrate exactly what devices and controller
libvirt will decide to add automatically.
Note that we use the ABI_UPDATE variant of the test macros
because, in some cases, the behavior for new guests is not the
same as that for existing ones due to backward compatibility
concerns, and we specifically care about the former.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
.../aarch64-virt-minimal.aarch64-latest.args | 31 ++++++++++++
.../aarch64-virt-minimal.aarch64-latest.xml | 26 ++++++++++
.../qemuxmlconfdata/aarch64-virt-minimal.xml | 12 +++++
.../ppc64-pseries-minimal.ppc64-latest.args | 33 ++++++++++++
.../ppc64-pseries-minimal.ppc64-latest.xml | 33 ++++++++++++
.../qemuxmlconfdata/ppc64-pseries-minimal.xml | 12 +++++
.../riscv64-virt-minimal.riscv64-latest.args | 33 ++++++++++++
.../riscv64-virt-minimal.riscv64-latest.xml | 33 ++++++++++++
.../qemuxmlconfdata/riscv64-virt-minimal.xml | 12 +++++
.../s390x-ccw-minimal.s390x-latest.args | 32 ++++++++++++
.../s390x-ccw-minimal.s390x-latest.xml | 27 ++++++++++
tests/qemuxmlconfdata/s390x-ccw-minimal.xml | 12 +++++
.../x86_64-pc-minimal.x86_64-latest.args | 33 ++++++++++++
.../x86_64-pc-minimal.x86_64-latest.xml | 31 ++++++++++++
tests/qemuxmlconfdata/x86_64-pc-minimal.xml | 12 +++++
.../x86_64-q35-minimal.x86_64-latest.args | 38 ++++++++++++++
.../x86_64-q35-minimal.x86_64-latest.xml | 50 +++++++++++++++++++
tests/qemuxmlconfdata/x86_64-q35-minimal.xml | 12 +++++
tests/qemuxmlconftest.c | 7 +++
19 files changed, 479 insertions(+)
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-minimal.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-minimal.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-minimal.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-pseries-minimal.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/ppc64-pseries-minimal.ppc64-latest.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-pseries-minimal.xml
create mode 100644 tests/qemuxmlconfdata/riscv64-virt-minimal.riscv64-latest.args
create mode 100644 tests/qemuxmlconfdata/riscv64-virt-minimal.riscv64-latest.xml
create mode 100644 tests/qemuxmlconfdata/riscv64-virt-minimal.xml
create mode 100644 tests/qemuxmlconfdata/s390x-ccw-minimal.s390x-latest.args
create mode 100644 tests/qemuxmlconfdata/s390x-ccw-minimal.s390x-latest.xml
create mode 100644 tests/qemuxmlconfdata/s390x-ccw-minimal.xml
create mode 100644 tests/qemuxmlconfdata/x86_64-pc-minimal.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/x86_64-pc-minimal.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/x86_64-pc-minimal.xml
create mode 100644 tests/qemuxmlconfdata/x86_64-q35-minimal.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/x86_64-q35-minimal.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/x86_64-q35-minimal.xml
diff --git a/tests/qemuxmlconfdata/aarch64-virt-minimal.aarch64-latest.args b/tests/qemuxmlconfdata/aarch64-virt-minimal.aarch64-latest.args
new file mode 100644
index 0000000000..51a196e03e
--- /dev/null
+++ b/tests/qemuxmlconfdata/aarch64-virt-minimal.aarch64-latest.args
@@ -0,0 +1,31 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-guest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
+/usr/bin/qemu-system-aarch64 \
+-name guest=guest,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
+-machine virt,usb=off,gic-version=2,dump-guest-core=off,memory-backend=mach-virt.ram,acpi=off \
+-accel tcg \
+-cpu cortex-a15 \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/aarch64-virt-minimal.aarch64-latest.xml b/tests/qemuxmlconfdata/aarch64-virt-minimal.aarch64-latest.xml
new file mode 100644
index 0000000000..25b415d390
--- /dev/null
+++ b/tests/qemuxmlconfdata/aarch64-virt-minimal.aarch64-latest.xml
@@ -0,0 +1,26 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <gic version='2'/>
+ </features>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>cortex-a15</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <controller type='pci' index='0' model='pcie-root'/>
+ <audio id='1' type='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/aarch64-virt-minimal.xml b/tests/qemuxmlconfdata/aarch64-virt-minimal.xml
new file mode 100644
index 0000000000..5b44c14131
--- /dev/null
+++ b/tests/qemuxmlconfdata/aarch64-virt-minimal.xml
@@ -0,0 +1,12 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory>4194304</memory>
+ <vcpu>4</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/ppc64-pseries-minimal.ppc64-latest.args b/tests/qemuxmlconfdata/ppc64-pseries-minimal.ppc64-latest.args
new file mode 100644
index 0000000000..5039957a47
--- /dev/null
+++ b/tests/qemuxmlconfdata/ppc64-pseries-minimal.ppc64-latest.args
@@ -0,0 +1,33 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-guest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
+/usr/bin/qemu-system-ppc64 \
+-name guest=guest,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
+-machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \
+-accel tcg \
+-cpu POWER9 \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"ppc_spapr.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-device '{"driver":"qemu-xhci","id":"usb","bus":"pci.0","addr":"0x1"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/ppc64-pseries-minimal.ppc64-latest.xml b/tests/qemuxmlconfdata/ppc64-pseries-minimal.ppc64-latest.xml
new file mode 100644
index 0000000000..bdb6b1e03d
--- /dev/null
+++ b/tests/qemuxmlconfdata/ppc64-pseries-minimal.ppc64-latest.xml
@@ -0,0 +1,33 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>POWER9</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ <controller type='usb' index='0' model='qemu-xhci'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='0'/>
+ </controller>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </memballoon>
+ <panic model='pseries'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/ppc64-pseries-minimal.xml b/tests/qemuxmlconfdata/ppc64-pseries-minimal.xml
new file mode 100644
index 0000000000..125e651519
--- /dev/null
+++ b/tests/qemuxmlconfdata/ppc64-pseries-minimal.xml
@@ -0,0 +1,12 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory>4194304</memory>
+ <vcpu>4</vcpu>
+ <os>
+ <type arch='ppc64' machine='pseries'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-ppc64</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/riscv64-virt-minimal.riscv64-latest.args b/tests/qemuxmlconfdata/riscv64-virt-minimal.riscv64-latest.args
new file mode 100644
index 0000000000..fcb80b009e
--- /dev/null
+++ b/tests/qemuxmlconfdata/riscv64-virt-minimal.riscv64-latest.args
@@ -0,0 +1,33 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-guest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
+/usr/bin/qemu-system-riscv64 \
+-name guest=guest,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
+-machine virt,usb=off,dump-guest-core=off,memory-backend=riscv_virt_board.ram \
+-accel tcg \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"riscv_virt_board.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x1"}' \
+-device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x1.0x1"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.1","addr":"0x0"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/riscv64-virt-minimal.riscv64-latest.xml b/tests/qemuxmlconfdata/riscv64-virt-minimal.riscv64-latest.xml
new file mode 100644
index 0000000000..54363bb426
--- /dev/null
+++ b/tests/qemuxmlconfdata/riscv64-virt-minimal.riscv64-latest.xml
@@ -0,0 +1,33 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='riscv64' machine='virt'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-riscv64</emulator>
+ <controller type='pci' index='0' model='pcie-root'/>
+ <controller type='pci' index='1' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='1' port='0x8'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
+ </controller>
+ <controller type='pci' index='2' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='2' port='0x9'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
+ </memballoon>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/riscv64-virt-minimal.xml b/tests/qemuxmlconfdata/riscv64-virt-minimal.xml
new file mode 100644
index 0000000000..fb67b333c1
--- /dev/null
+++ b/tests/qemuxmlconfdata/riscv64-virt-minimal.xml
@@ -0,0 +1,12 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory>4194304</memory>
+ <vcpu>4</vcpu>
+ <os>
+ <type arch='riscv64' machine='virt'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-riscv64</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/s390x-ccw-minimal.s390x-latest.args b/tests/qemuxmlconfdata/s390x-ccw-minimal.s390x-latest.args
new file mode 100644
index 0000000000..84098e580e
--- /dev/null
+++ b/tests/qemuxmlconfdata/s390x-ccw-minimal.s390x-latest.args
@@ -0,0 +1,32 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-guest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
+/usr/bin/qemu-system-s390x \
+-name guest=guest,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-accel tcg \
+-cpu qemu \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-device '{"driver":"virtio-balloon-ccw","id":"balloon0","devno":"fe.0.0000"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/s390x-ccw-minimal.s390x-latest.xml b/tests/qemuxmlconfdata/s390x-ccw-minimal.s390x-latest.xml
new file mode 100644
index 0000000000..df8e578212
--- /dev/null
+++ b/tests/qemuxmlconfdata/s390x-ccw-minimal.s390x-latest.xml
@@ -0,0 +1,27 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ <controller type='pci' index='0' model='pci-root'/>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0000'/>
+ </memballoon>
+ <panic model='s390'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/s390x-ccw-minimal.xml b/tests/qemuxmlconfdata/s390x-ccw-minimal.xml
new file mode 100644
index 0000000000..3f5202bfdd
--- /dev/null
+++ b/tests/qemuxmlconfdata/s390x-ccw-minimal.xml
@@ -0,0 +1,12 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory>4194304</memory>
+ <vcpu>4</vcpu>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/x86_64-pc-minimal.x86_64-latest.args b/tests/qemuxmlconfdata/x86_64-pc-minimal.x86_64-latest.args
new file mode 100644
index 0000000000..606fd70519
--- /dev/null
+++ b/tests/qemuxmlconfdata/x86_64-pc-minimal.x86_64-latest.args
@@ -0,0 +1,33 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-guest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
+/usr/bin/qemu-system-x86_64 \
+-name guest=guest,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-accel tcg \
+-cpu qemu64 \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/x86_64-pc-minimal.x86_64-latest.xml b/tests/qemuxmlconfdata/x86_64-pc-minimal.x86_64-latest.xml
new file mode 100644
index 0000000000..3fde74460c
--- /dev/null
+++ b/tests/qemuxmlconfdata/x86_64-pc-minimal.x86_64-latest.xml
@@ -0,0 +1,31 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu64</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='usb' index='0' model='piix3-uhci'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </memballoon>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/x86_64-pc-minimal.xml b/tests/qemuxmlconfdata/x86_64-pc-minimal.xml
new file mode 100644
index 0000000000..33cebaebd8
--- /dev/null
+++ b/tests/qemuxmlconfdata/x86_64-pc-minimal.xml
@@ -0,0 +1,12 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory>4194304</memory>
+ <vcpu>4</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/x86_64-q35-minimal.x86_64-latest.args b/tests/qemuxmlconfdata/x86_64-q35-minimal.x86_64-latest.args
new file mode 100644
index 0000000000..9566106b94
--- /dev/null
+++ b/tests/qemuxmlconfdata/x86_64-q35-minimal.x86_64-latest.args
@@ -0,0 +1,38 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-guest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
+/usr/bin/qemu-system-x86_64 \
+-name guest=guest,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
+-machine q35,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-accel tcg \
+-cpu qemu64 \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x1"}' \
+-device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x1.0x1"}' \
+-device '{"driver":"pcie-root-port","port":10,"chassis":3,"id":"pci.3","bus":"pcie.0","addr":"0x1.0x2"}' \
+-device '{"driver":"qemu-xhci","id":"usb","bus":"pci.1","addr":"0x0"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-global ICH9-LPC.noreboot=off \
+-watchdog-action reset \
+-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.2","addr":"0x0"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/x86_64-q35-minimal.x86_64-latest.xml b/tests/qemuxmlconfdata/x86_64-q35-minimal.x86_64-latest.xml
new file mode 100644
index 0000000000..10d245e3b5
--- /dev/null
+++ b/tests/qemuxmlconfdata/x86_64-q35-minimal.x86_64-latest.xml
@@ -0,0 +1,50 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu64</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='usb' index='0' model='qemu-xhci'>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
+ </controller>
+ <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='pci' index='1' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='1' port='0x8'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
+ </controller>
+ <controller type='pci' index='2' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='2' port='0x9'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='3' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='3' port='0xa'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <watchdog model='itco' action='reset'/>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
+ </memballoon>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/x86_64-q35-minimal.xml b/tests/qemuxmlconfdata/x86_64-q35-minimal.xml
new file mode 100644
index 0000000000..31eba6d70f
--- /dev/null
+++ b/tests/qemuxmlconfdata/x86_64-q35-minimal.xml
@@ -0,0 +1,12 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory>4194304</memory>
+ <vcpu>4</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 6ecfe64d97..c80bcd9b4d 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1226,6 +1226,13 @@ mymain(void)
g_unsetenv("PIPEWIRE_REMOTE");
g_unsetenv("PIPEWIRE_RUNTIME_DIR");
+ DO_TEST_CAPS_LATEST_ABI_UPDATE("x86_64-pc-minimal");
+ DO_TEST_CAPS_LATEST_ABI_UPDATE("x86_64-q35-minimal");
+ DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE("aarch64-virt-minimal", "aarch64");
+ DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE("riscv64-virt-minimal", "riscv64");
+ DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE("ppc64-pseries-minimal", "ppc64");
+ DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE("s390x-ccw-minimal", "s390x");
+
DO_TEST_CAPS_LATEST("minimal");
DO_TEST_CAPS_LATEST_PARSE_ERROR("no-memory");
DO_TEST_CAPS_LATEST("title-and-description");
--
2.43.0
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
On Wed, Jan 24, 2024 at 20:37:26 +0100, Andrea Bolognani wrote: > We currently have a single test case called "minimal", which > suffers from two big flaws: > > * it's limited to the x86_64/pc machine type; > * it explicitly enables a number of devices. > > Add several test cases, one for each of the architectures and > machine types that we have good support for. > > Unlike the existing one, they're *really* minimal: no devices > or controllers at all are present in the input XML. So the new > test cases demonstrate exactly what devices and controller > libvirt will decide to add automatically. > > Note that we use the ABI_UPDATE variant of the test macros > because, in some cases, the behavior for new guests is not the > same as that for existing ones due to backward compatibility > concerns, and we specifically care about the former. IMO it would make sense to also add the non-ABI update cases. > > Signed-off-by: Andrea Bolognani <abologna@redhat.com> > --- > .../aarch64-virt-minimal.aarch64-latest.args | 31 ++++++++++++ > .../aarch64-virt-minimal.aarch64-latest.xml | 26 ++++++++++ > .../qemuxmlconfdata/aarch64-virt-minimal.xml | 12 +++++ > .../ppc64-pseries-minimal.ppc64-latest.args | 33 ++++++++++++ > .../ppc64-pseries-minimal.ppc64-latest.xml | 33 ++++++++++++ > .../qemuxmlconfdata/ppc64-pseries-minimal.xml | 12 +++++ > .../riscv64-virt-minimal.riscv64-latest.args | 33 ++++++++++++ > .../riscv64-virt-minimal.riscv64-latest.xml | 33 ++++++++++++ > .../qemuxmlconfdata/riscv64-virt-minimal.xml | 12 +++++ > .../s390x-ccw-minimal.s390x-latest.args | 32 ++++++++++++ > .../s390x-ccw-minimal.s390x-latest.xml | 27 ++++++++++ > tests/qemuxmlconfdata/s390x-ccw-minimal.xml | 12 +++++ > .../x86_64-pc-minimal.x86_64-latest.args | 33 ++++++++++++ > .../x86_64-pc-minimal.x86_64-latest.xml | 31 ++++++++++++ > tests/qemuxmlconfdata/x86_64-pc-minimal.xml | 12 +++++ > .../x86_64-q35-minimal.x86_64-latest.args | 38 ++++++++++++++ > .../x86_64-q35-minimal.x86_64-latest.xml | 50 +++++++++++++++++++ > tests/qemuxmlconfdata/x86_64-q35-minimal.xml | 12 +++++ even if you decide to do the above, you can use Reviewed-by: Peter Krempa <pkrempa@redhat.com> without reposting. _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org
On Thu, Jan 25, 2024 at 10:46:39AM +0100, Peter Krempa wrote: > On Wed, Jan 24, 2024 at 20:37:26 +0100, Andrea Bolognani wrote: > > We currently have a single test case called "minimal", which > > suffers from two big flaws: > > > > * it's limited to the x86_64/pc machine type; > > * it explicitly enables a number of devices. > > > > Add several test cases, one for each of the architectures and > > machine types that we have good support for. > > > > Unlike the existing one, they're *really* minimal: no devices > > or controllers at all are present in the input XML. So the new > > test cases demonstrate exactly what devices and controller > > libvirt will decide to add automatically. > > > > Note that we use the ABI_UPDATE variant of the test macros > > because, in some cases, the behavior for new guests is not the > > same as that for existing ones due to backward compatibility > > concerns, and we specifically care about the former. > > IMO it would make sense to also add the non-ABI update cases. Agreed. > even if you decide to do the above, you can use > > Reviewed-by: Peter Krempa <pkrempa@redhat.com> > > without reposting. In order to flush things a bit, my plan would be to push patches tests: Add usb-controller-automatic-unavailable-q35 tests: Add aarch64-panic-no-model tests: Add title-and-description tests: Drop existing <title> and <description> tags tests: Rename and minimize no-memory tests: Add minimal cases for many architectures tests: Drop minimal tests: Add default-models cases for many architectures qemu: Fix a few comments qemu: Default to no USB and no memballoon for new architectures qemu: Clean up qemuDomainDefaultNetModel() qemu: Drop qemuDomainFindSCSIControllerModel() qemu: Drop qemuDomainSetSCSIControllerModel() qemu: Add missing error handling qemu: Move qemuDomainGetSCSIControllerModel() that is, 01-14 and 16, with the following simple changes based on your suggestions: * add title-and-description to genericxml2xmltest instead of qemuxmlconftest; * have both ABI_UPDATE and regular variants of the minimal qemuxmlconftest cases, as well as the default-models cases. Can I go ahead without reposting? -- Andrea Bolognani / Red Hat / Virtualization _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org
> > In order to flush things a bit, my plan would be to push patches > > tests: Add usb-controller-automatic-unavailable-q35 > tests: Add aarch64-panic-no-model > tests: Add title-and-description > tests: Drop existing <title> and <description> tags > tests: Rename and minimize no-memory > tests: Add minimal cases for many architectures > tests: Drop minimal > tests: Add default-models cases for many architectures > qemu: Fix a few comments > qemu: Default to no USB and no memballoon for new architectures > qemu: Clean up qemuDomainDefaultNetModel() > qemu: Drop qemuDomainFindSCSIControllerModel() > qemu: Drop qemuDomainSetSCSIControllerModel() > qemu: Add missing error handling > qemu: Move qemuDomainGetSCSIControllerModel() > > that is, 01-14 and 16, with the following simple changes based on > your suggestions: > > * add title-and-description to genericxml2xmltest instead of > qemuxmlconftest; > > * have both ABI_UPDATE and regular variants of the minimal > qemuxmlconftest cases, as well as the default-models cases. > > Can I go ahead without reposting? Sure, go ahead. _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org
© 2016 - 2024 Red Hat, Inc.