[PATCH 15/20] tests: Add tests for a virtio and sd disk in a single machine

Peter Krempa pkrempa at redhat.com
Wed May 6 12:08:30 UTC 2020


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 at 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




More information about the libvir-list mailing list