Make sure every combination of ACPI and UEFI works, or fails to
work, as expected.
---
.../qemuxml2argv-aarch64-acpi-nouefi.args | 22 +++++++++++++++++++++
.../qemuxml2argv-aarch64-acpi-nouefi.xml | 22 +++++++++++++++++++++
.../qemuxml2argv-aarch64-acpi-uefi.args | 22 +++++++++++++++++++++
.../qemuxml2argv-aarch64-acpi-uefi.xml | 21 ++++++++++++++++++++
.../qemuxml2argv-aarch64-noacpi-nouefi.args | 22 +++++++++++++++++++++
.../qemuxml2argv-aarch64-noacpi-nouefi.xml | 19 ++++++++++++++++++
.../qemuxml2argv-aarch64-noacpi-uefi.args | 23 ++++++++++++++++++++++
.../qemuxml2argv-aarch64-noacpi-uefi.xml | 18 +++++++++++++++++
.../qemuxml2argv-q35-acpi-nouefi.args | 21 ++++++++++++++++++++
.../qemuxml2argv-q35-acpi-nouefi.xml | 22 +++++++++++++++++++++
.../qemuxml2argv-q35-acpi-uefi.args | 22 +++++++++++++++++++++
.../qemuxml2argv-q35-acpi-uefi.xml | 21 ++++++++++++++++++++
.../qemuxml2argv-q35-noacpi-nouefi.args | 22 +++++++++++++++++++++
.../qemuxml2argv-q35-noacpi-nouefi.xml | 19 ++++++++++++++++++
.../qemuxml2argv-q35-noacpi-uefi.xml | 18 +++++++++++++++++
tests/qemuxml2argvtest.c | 14 +++++++++++++
16 files changed, 328 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-nouefi.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-nouefi.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-uefi.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-uefi.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-nouefi.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-nouefi.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-uefi.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-uefi.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-nouefi.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-nouefi.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-uefi.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-uefi.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-nouefi.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-nouefi.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-uefi.xml
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-nouefi.args
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-nouefi.args
new file mode 100644
index 0000000..5d9e1fb
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-nouefi.args
@@ -0,0 +1,22 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-aarch64 \
+-name guest \
+-S \
+-M virt \
+-cpu host \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefconfig \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-guest/monitor.sock,server,nowait \
+-boot c \
+-kernel /var/lib/libvirt/images/guest.vmlinux \
+-initrd /var/lib/libvirt/images/guest.initramfs \
+-append 'console=ttyAMA0 rw root=/dev/vda rootwait'
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-nouefi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-nouefi.xml
new file mode 100644
index 0000000..cda1b1b
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-nouefi.xml
@@ -0,0 +1,22 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ <kernel>/var/lib/libvirt/images/guest.vmlinuz</kernel>
+ <initrd>/var/lib/libvirt/images/guest.initramfs</initrd>
+ <cmdline>console=ttyAMA0 rw root=/dev/vda rootwait</cmdline>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <cpu mode='custom'>
+ <model>cortex-a57</model>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-uefi.args
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-uefi.args
new file mode 100644
index 0000000..36371ba
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-uefi.args
@@ -0,0 +1,22 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-aarch64 \
+-name guest \
+-S \
+-M virt \
+-cpu cortex-a57 \
+-drive file=/usr/share/AAVMF/AAVMF_CODE.fd,if=pflash,format=raw,unit=0,\
+readonly=on \
+-drive file=/var/lib/libvirt/qemu/nvram/guest_VARS.fd,if=pflash,format=raw,\
+unit=1 \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-guest/monitor.sock,server,nowait \
+-boot c
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-uefi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-uefi.xml
new file mode 100644
index 0000000..5de2eb5
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-acpi-uefi.xml
@@ -0,0 +1,21 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ <loader readonly='yes'
type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader>
+ <nvram>/var/lib/libvirt/qemu/nvram/guest_VARS.fd</nvram>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <cpu mode='custom'>
+ <model>cortex-a57</model>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-nouefi.args
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-nouefi.args
new file mode 100644
index 0000000..301eda8
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-nouefi.args
@@ -0,0 +1,22 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-aarch64 \
+-name guest \
+-S \
+-M virt \
+-cpu cortex-a57 \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-guest/monitor.sock,server,nowait \
+-no-acpi \
+-boot c \
+-kernel /var/lib/libvirt/images/guest.vmlinuz \
+-initrd /var/lib/libvirt/images/guest.initramfs \
+-append 'console=ttyAMA0 rw root=/dev/vda rootwait'
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-nouefi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-nouefi.xml
new file mode 100644
index 0000000..e8551ed
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-nouefi.xml
@@ -0,0 +1,19 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ <kernel>/var/lib/libvirt/images/guest.vmlinuz</kernel>
+ <initrd>/var/lib/libvirt/images/guest.initramfs</initrd>
+ <cmdline>console=ttyAMA0 rw root=/dev/vda rootwait</cmdline>
+ </os>
+ <cpu mode='custom'>
+ <model>cortex-a57</model>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-uefi.args
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-uefi.args
new file mode 100644
index 0000000..c62de75
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-uefi.args
@@ -0,0 +1,23 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-aarch64 \
+-name guest \
+-S \
+-M virt \
+-cpu cortex-a57 \
+-drive file=/usr/share/AAVMF/AAVMF_CODE.fd,if=pflash,format=raw,unit=0,\
+readonly=on \
+-drive file=/var/lib/libvirt/qemu/nvram/guest_VARS.fd,if=pflash,format=raw,\
+unit=1 \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-guest/monitor.sock,server,nowait \
+-no-acpi \
+-boot c
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-uefi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-uefi.xml
new file mode 100644
index 0000000..e66b805
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-noacpi-uefi.xml
@@ -0,0 +1,18 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ <loader readonly='yes'
type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader>
+ <nvram>/var/lib/libvirt/qemu/nvram/guest_VARS.fd</nvram>
+ </os>
+ <cpu mode='custom'>
+ <model>cortex-a57</model>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-nouefi.args
b/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-nouefi.args
new file mode 100644
index 0000000..eea422d
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-nouefi.args
@@ -0,0 +1,21 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-x86_64 \
+-name guest \
+-S \
+-M q35 \
+-cpu Haswell \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-guest/monitor.sock,server,nowait \
+-boot c \
+-kernel /var/lib/libvirt/images/guest.vmlinuz \
+-initrd /var/lib/libvirt/images/guest.initramfs \
+-append 'rw root=/dev/vda rootwait'
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-nouefi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-nouefi.xml
new file mode 100644
index 0000000..7d735f9
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-nouefi.xml
@@ -0,0 +1,22 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ <kernel>/var/lib/libvirt/images/guest.vmlinuz</kernel>
+ <initrd>/var/lib/libvirt/images/guest.initramfs</initrd>
+ <cmdline>rw root=/dev/vda rootwait</cmdline>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <cpu mode='custom'>
+ <model>Haswell</model>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-uefi.args
b/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-uefi.args
new file mode 100644
index 0000000..9dfa583
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-uefi.args
@@ -0,0 +1,22 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-x86_64 \
+-name guest \
+-S \
+-M q35 \
+-cpu Haswell \
+-drive file=/usr/share/OVMF/OVMF_CODE.fd,if=pflash,format=raw,unit=0,\
+readonly=on \
+-drive file=/var/lib/libvirt/qemu/nvram/guest_VARS.fd,if=pflash,format=raw,\
+unit=1 \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-guest/monitor.sock,server,nowait \
+-boot c
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-uefi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-uefi.xml
new file mode 100644
index 0000000..4eb5a46
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-q35-acpi-uefi.xml
@@ -0,0 +1,21 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ <loader readonly='yes'
type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
+ <nvram>/var/lib/libvirt/qemu/nvram/guest_VARS.fd</nvram>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <cpu mode='custom'>
+ <model>Haswell</model>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-nouefi.args
b/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-nouefi.args
new file mode 100644
index 0000000..ba0f59c
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-nouefi.args
@@ -0,0 +1,22 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-x86_64 \
+-name guest \
+-S \
+-M q35 \
+-cpu Haswell \
+-m 1024 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-guest/monitor.sock,server,nowait \
+-no-acpi \
+-boot c \
+-kernel /var/lib/libvirt/images/guest.vmlinuz \
+-initrd /var/lib/libvirt/images/guest.initramfs \
+-append 'rw root=/dev/vda rootwait'
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-nouefi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-nouefi.xml
new file mode 100644
index 0000000..163b424
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-nouefi.xml
@@ -0,0 +1,19 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ <kernel>/var/lib/libvirt/images/guest.vmlinuz</kernel>
+ <initrd>/var/lib/libvirt/images/guest.initramfs</initrd>
+ <cmdline>rw root=/dev/vda rootwait</cmdline>
+ </os>
+ <cpu mode='custom'>
+ <model>Haswell</model>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-uefi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-uefi.xml
new file mode 100644
index 0000000..91c83c8
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-q35-noacpi-uefi.xml
@@ -0,0 +1,18 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ <loader readonly='yes'
type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
+ <nvram>/var/lib/libvirt/qemu/nvram/guest_VARS.fd</nvram>
+ </os>
+ <cpu mode='custom'>
+ <model>Haswell</model>
+ </cpu>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 731b793..ad68556 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -757,6 +757,13 @@ mymain(void)
QEMU_CAPS_MACHINE_OPT,
QEMU_CAPS_MACHINE_SMM_OPT,
QEMU_CAPS_VIRTIO_SCSI);
+
+ /* Make sure all combinations of ACPI and UEFI behave as expected */
+ DO_TEST("q35-acpi-uefi", NONE);
+ DO_TEST_PARSE_ERROR("q35-noacpi-uefi", NONE);
+ DO_TEST("q35-noacpi-nouefi", NONE);
+ DO_TEST("q35-acpi-nouefi", NONE);
+
DO_TEST("clock-utc", QEMU_CAPS_NODEFCONFIG);
DO_TEST("clock-localtime", NONE);
DO_TEST("clock-localtime-basis-localtime", QEMU_CAPS_RTC);
@@ -2318,6 +2325,13 @@ mymain(void)
DO_TEST_FAILURE("aarch64-kvm-32-on-64",
QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DEVICE_VIRTIO_MMIO,
QEMU_CAPS_KVM);
+
+ /* Make sure all combinations of ACPI and UEFI behave as expected */
+ DO_TEST("aarch64-acpi-uefi", NONE);
+ DO_TEST("aarch64-noacpi-uefi", NONE);
+ DO_TEST("aarch64-noacpi-nouefi", NONE);
+ DO_TEST_PARSE_ERROR("aarch64-acpi-nouefi", NONE);
+
qemuTestSetHostArch(driver.caps, VIR_ARCH_NONE);
DO_TEST("kvm-pit-delay", QEMU_CAPS_KVM_PIT_TICK_POLICY);
--
2.7.4