tests: qemublock: Add test cases for 'aio' options of 'file' storage

Test that the 'aio' option is applied correctly for the 'file' protocol
backend and across the backing chain.

The top level disk image would generate the following '-drive' cmdline:

file-backing_basic-aio_threads:
-drive file=/var/lib/libvirt/images/a,format=qcow,if=none,id=drive-dummy,aio=threads
-device virtio-blk-pci,scsi=off,drive=drive-dummy,id=dummy

file-raw-aio_native:
-drive file=/path/to/i.img,format=raw,if=none,id=drive-dummy,cache=none,aio=native
-device virtio-blk-pci,scsi=off,drive=drive-dummy,id=dummy,write-cache=on

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Peter Krempa 2018-03-19 08:59:19 +01:00
parent 7e441e2e2c
commit ac71f4e6d5
5 changed files with 144 additions and 0 deletions

View File

@ -417,6 +417,8 @@ mymain(void)
TEST_DISK_TO_JSON("file-backing_basic-noopts");
TEST_DISK_TO_JSON("dir-fat-readonly");
TEST_DISK_TO_JSON("dir-fat-floppy");
TEST_DISK_TO_JSON("file-raw-aio_native");
TEST_DISK_TO_JSON("file-backing_basic-aio_threads");
cleanup:
virHashFree(diskxmljsondata.schema);

View File

@ -0,0 +1,62 @@
{
"node-name": "node-a-f",
"read-only": false,
"driver": "qcow",
"file": {
"driver": "file",
"filename": "/var/lib/libvirt/images/a",
"aio": "threads",
"node-name": "node-a-s",
"read-only": false,
"discard": "unmap"
},
"backing": "node-b-f"
}
{
"node-name": "node-b-f",
"read-only": true,
"driver": "qed",
"file": {
"driver": "file",
"filename": "/var/lib/libvirt/images/b",
"aio": "threads",
"node-name": "node-b-s",
"read-only": true,
"discard": "unmap"
},
"backing": "node-c-f"
}
{
"node-name": "node-c-f",
"read-only": true,
"driver": "vmdk",
"file": {
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
],
"node-name": "node-c-s",
"read-only": true,
"discard": "unmap"
},
"backing": "node-d-f"
}
{
"node-name": "node-d-f",
"read-only": true,
"driver": "raw",
"file": {
"driver": "file",
"filename": "/var/lib/libvirt/images/d",
"aio": "threads",
"node-name": "node-d-s",
"read-only": true,
"discard": "unmap"
}
}

View File

@ -0,0 +1,47 @@
<disk type='file' device='disk'>
<driver name='qemu' type='qcow' io='threads'/>
<source file='/var/lib/libvirt/images/a'>
<privateData>
<nodenames>
<nodename type='storage' name='node-a-s'/>
<nodename type='format' name='node-a-f'/>
</nodenames>
</privateData>
</source>
<backingStore type='file' index='1'>
<format type='qed'/>
<source file='/var/lib/libvirt/images/b'>
<privateData>
<nodenames>
<nodename type='storage' name='node-b-s'/>
<nodename type='format' name='node-b-f'/>
</nodenames>
</privateData>
</source>
<backingStore type='network' index='2'>
<format type='vmdk'/>
<source protocol='gluster' name='images/c'>
<host name='test.org'/>
<privateData>
<nodenames>
<nodename type='storage' name='node-c-s'/>
<nodename type='format' name='node-c-f'/>
</nodenames>
</privateData>
</source>
<backingStore type='file' index='3'>
<format type='raw'/>
<source file='/var/lib/libvirt/images/d'>
<privateData>
<nodenames>
<nodename type='storage' name='node-d-s'/>
<nodename type='format' name='node-d-f'/>
</nodenames>
</privateData>
</source>
<backingStore/>
</backingStore>
</backingStore>
</backingStore>
<target dev='vda'/>
</disk>

View File

@ -0,0 +1,21 @@
{
"node-name": "test1",
"read-only": false,
"cache": {
"direct": true,
"no-flush": false
},
"driver": "raw",
"file": {
"driver": "file",
"filename": "/path/to/i.img",
"aio": "native",
"node-name": "test2",
"cache": {
"direct": true,
"no-flush": false
},
"read-only": false,
"discard": "unmap"
}
}

View File

@ -0,0 +1,12 @@
<disk device='disk'>
<driver name='qemu' type='raw' io='native' cache='none'/>
<source file='/path/to/i.img'>
<privateData>
<nodenames>
<nodename type='storage' name='test2'/>
<nodename type='format' name='test1'/>
</nodenames>
</privateData>
</source>
<target dev='vda'/>
</disk>