On 04/04/2018 04:13 AM, Peter Krempa wrote:
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
tests/qemuxml2argvdata/disk-drive-write-cache.args | 45 ++++++++++++++++++++++
tests/qemuxml2argvdata/disk-drive-write-cache.xml | 45 ++++++++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
3 files changed, 91 insertions(+)
create mode 100644 tests/qemuxml2argvdata/disk-drive-write-cache.args
create mode 100644 tests/qemuxml2argvdata/disk-drive-write-cache.xml
This should be merged with patch 5 - there's also no xml2xml test
Also considering patch 2, all we're testing is x86_64 on 2.12 even
though we have the feature available on other arches for other versions.
I don't believe we have any existing test that sets cache= to anything
other than 'none' (e.g. qemuDiskCacheV2 isn't really used or checked
currently).
Why wouldn't any of the existing cache=none would change too... OK
other than the fact that you're only testing for 2.12 and beyond...
Perhaps it would have been interesting to see the results of this test
before the new capability and how it changes afterwards.
John
diff --git a/tests/qemuxml2argvdata/disk-drive-write-cache.args
b/tests/qemuxml2argvdata/disk-drive-write-cache.args
new file mode 100644
index 0000000000..3973249d18
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-drive-write-cache.args
@@ -0,0 +1,45 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name guest=QEMUGuest1,debug-threads=on \
+-S \
+-object secret,id=masterKey0,format=raw,\
+file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
+-machine pc-i440fx-2.12,accel=tcg,usb=off,dump-guest-core=off \
+-m 214 \
+-realtime mlock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-no-acpi \
+-boot strict=on \
+-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
+-device lsi,id=scsi0,bus=pci.0,addr=0x2 \
+-drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-ide0-0-0,\
+cache=writeback \
+-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1,\
+write-cache=on \
+-drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-scsi0-0-0,\
+cache=none \
+-device scsi-hd,bus=scsi0.0,scsi-id=0,drive=drive-scsi0-0-0,id=scsi0-0-0,\
+write-cache=on \
+-drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-virtio-disk0,\
+cache=writethrough \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
+id=virtio-disk0,write-cache=off \
+-drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-usb-disk1,\
+cache=directsync \
+-device usb-storage,bus=usb.0,port=1,drive=drive-usb-disk1,id=usb-disk1,\
+removable=off,write-cache=off \
+-msg timestamp=on
diff --git a/tests/qemuxml2argvdata/disk-drive-write-cache.xml
b/tests/qemuxml2argvdata/disk-drive-write-cache.xml
new file mode 100644
index 0000000000..dc7bdd6050
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-drive-write-cache.xml
@@ -0,0 +1,45 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>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-i686</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2'
cache='writeback'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='sda' bus='scsi'/>
+ </disk>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2'
cache='writethrough'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='vda' bus='virtio'/>
+ </disk>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2'
cache='directsync'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='sdb' bus='usb'/>
+ </disk>
+ <controller type='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index c540ce2f50..b70780bf4e 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -998,6 +998,7 @@ mymain(void)
DO_TEST("disk-drive-cache-v2-wt", NONE);
DO_TEST("disk-drive-cache-v2-wb", NONE);
DO_TEST("disk-drive-cache-v2-none", NONE);
+ DO_TEST_CAPS("disk-drive-write-cache", "2.12.0");
DO_TEST("disk-drive-cache-directsync",
QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC);
DO_TEST("disk-drive-cache-unsafe",