The 'vexpress-a9' ARM board supports the native 'sd' bus as well as
virtio. Add a test case for proving that upcoming changes to handling of
'sd' work. This config was also tested with real qemu and the qemu
process starts correctly.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
.../disk-arm-virtio-sd.aarch64-4.0.0.args | 39 ++++++++++++++++++
.../disk-arm-virtio-sd.aarch64-latest.args | 40 ++++++++++++++++++
tests/qemuxml2argvdata/disk-arm-virtio-sd.xml | 36 ++++++++++++++++
tests/qemuxml2argvtest.c | 3 ++
.../disk-arm-virtio-sd.aarch64-latest.xml | 41 +++++++++++++++++++
tests/qemuxml2xmltest.c | 2 +
6 files changed, 161 insertions(+)
create mode 100644 tests/qemuxml2argvdata/disk-arm-virtio-sd.aarch64-4.0.0.args
create mode 100644 tests/qemuxml2argvdata/disk-arm-virtio-sd.aarch64-latest.args
create mode 100644 tests/qemuxml2argvdata/disk-arm-virtio-sd.xml
create mode 100644 tests/qemuxml2xmloutdata/disk-arm-virtio-sd.aarch64-latest.xml
diff --git a/tests/qemuxml2argvdata/disk-arm-virtio-sd.aarch64-4.0.0.args
b/tests/qemuxml2argvdata/disk-arm-virtio-sd.aarch64-4.0.0.args
new file mode 100644
index 0000000000..3c2a7cf240
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-arm-virtio-sd.aarch64-4.0.0.args
@@ -0,0 +1,39 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/tmp/lib/domain--1-armtest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/tmp/lib/domain--1-armtest/.local/share \
+XDG_CACHE_HOME=/tmp/lib/domain--1-armtest/.cache \
+XDG_CONFIG_HOME=/tmp/lib/domain--1-armtest/.config \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-arm \
+-name guest=armtest,debug-threads=on \
+-S \
+-object secret,id=masterKey0,format=raw,\
+file=/tmp/lib/domain--1-armtest/master-key.aes \
+-machine vexpress-a9,accel=tcg,usb=off,dump-guest-core=off \
+-m 1024 \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e6a \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-kernel /arm.kernel \
+-initrd /arm.initrd \
+-append 'console=ttyAMA0,\
+115200n8 rw root=/dev/vda3 rootwait physmap.enabled=0' \
+-dtb /arm.dtb \
+-usb \
+-drive file=/arm-sd.qcow2,format=qcow2,if=sd,index=0 \
+-drive file=/arm-virtio.qcow2,format=qcow2,if=none,id=drive-virtio-disk0 \
+-device virtio-blk-device,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0 \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
+resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxml2argvdata/disk-arm-virtio-sd.aarch64-latest.args
b/tests/qemuxml2argvdata/disk-arm-virtio-sd.aarch64-latest.args
new file mode 100644
index 0000000000..7147dfee76
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-arm-virtio-sd.aarch64-latest.args
@@ -0,0 +1,40 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/tmp/lib/domain--1-armtest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/tmp/lib/domain--1-armtest/.local/share \
+XDG_CACHE_HOME=/tmp/lib/domain--1-armtest/.cache \
+XDG_CONFIG_HOME=/tmp/lib/domain--1-armtest/.config \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-arm \
+-name guest=armtest,debug-threads=on \
+-S \
+-object secret,id=masterKey0,format=raw,\
+file=/tmp/lib/domain--1-armtest/master-key.aes \
+-machine vexpress-a9,accel=tcg,usb=off,dump-guest-core=off \
+-cpu cortex-a9 \
+-m 1024 \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e6a \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-kernel /arm.kernel \
+-initrd /arm.initrd \
+-append 'console=ttyAMA0,\
+115200n8 rw root=/dev/vda3 rootwait physmap.enabled=0' \
+-dtb /arm.dtb \
+-usb \
+-drive file=/arm-sd.qcow2,format=qcow2,if=sd,index=0 \
+-drive file=/arm-virtio.qcow2,format=qcow2,if=none,id=drive-virtio-disk0 \
+-device virtio-blk-device,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0 \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
+resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxml2argvdata/disk-arm-virtio-sd.xml
b/tests/qemuxml2argvdata/disk-arm-virtio-sd.xml
new file mode 100644
index 0000000000..0a6482fd4a
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-arm-virtio-sd.xml
@@ -0,0 +1,36 @@
+<domain type="qemu">
+ <name>armtest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e6a</uuid>
+ <memory>1048576</memory>
+ <currentMemory>1048576</currentMemory>
+ <vcpu>1</vcpu>
+ <os>
+ <type arch="armv7l" machine="vexpress-a9">hvm</type>
+ <kernel>/arm.kernel</kernel>
+ <initrd>/arm.initrd</initrd>
+ <dtb>/arm.dtb</dtb>
+ <cmdline>console=ttyAMA0,115200n8 rw root=/dev/vda3 rootwait
physmap.enabled=0</cmdline>
+ </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/bin/qemu-system-arm</emulator>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2'/>
+ <source file='/arm-sd.qcow2'/>
+ <target dev='sda' bus='sd'/>
+ </disk>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2'/>
+ <source file='/arm-virtio.qcow2'/>
+ <target dev='vda' bus='virtio'/>
+ </disk>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index ad89353910..4ab664a846 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1175,6 +1175,9 @@ mymain(void)
DO_TEST_CAPS_LATEST("disk-slices");
+ DO_TEST_CAPS_ARCH_VER("disk-arm-virtio-sd", "aarch64",
"4.0.0");
+ DO_TEST_CAPS_ARCH_LATEST("disk-arm-virtio-sd", "aarch64");
+
DO_TEST("graphics-egl-headless",
QEMU_CAPS_EGL_HEADLESS,
QEMU_CAPS_DEVICE_CIRRUS_VGA);
diff --git a/tests/qemuxml2xmloutdata/disk-arm-virtio-sd.aarch64-latest.xml
b/tests/qemuxml2xmloutdata/disk-arm-virtio-sd.aarch64-latest.xml
new file mode 100644
index 0000000000..024db53ffb
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/disk-arm-virtio-sd.aarch64-latest.xml
@@ -0,0 +1,41 @@
+<domain type='qemu'>
+ <name>armtest</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e6a</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='armv7l' machine='vexpress-a9'>hvm</type>
+ <kernel>/arm.kernel</kernel>
+ <initrd>/arm.initrd</initrd>
+ <cmdline>console=ttyAMA0,115200n8 rw root=/dev/vda3 rootwait
physmap.enabled=0</cmdline>
+ <dtb>/arm.dtb</dtb>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ </features>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>cortex-a9</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-arm</emulator>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2'/>
+ <source file='/arm-sd.qcow2'/>
+ <target dev='sda' bus='sd'/>
+ </disk>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2'/>
+ <source file='/arm-virtio.qcow2'/>
+ <target dev='vda' bus='virtio'/>
+ <address type='virtio-mmio'/>
+ </disk>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 34a9f2803a..e7480fcf9d 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -643,6 +643,8 @@ mymain(void)
DO_TEST("disk-serial", NONE);
+ DO_TEST_CAPS_ARCH_LATEST("disk-arm-virtio-sd", "aarch64");
+
DO_TEST("virtio-rng-random",
QEMU_CAPS_DEVICE_VIRTIO_RNG);
DO_TEST("virtio-rng-egd",
--
2.26.2