[libvirt] [PATCH 29/35] tests: qemublock: Add test cases for 'aio' options of 'file' storage

John Ferlan jferlan at redhat.com
Wed May 2 23:00:39 UTC 2018



On 04/25/2018 11:15 AM, Peter Krempa wrote:
> 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 at redhat.com>
> ---
>  tests/qemublocktest.c                              |  2 +
>  .../xml2json/file-backing_basic-aio_threads.json   | 62 ++++++++++++++++++++++
>  .../xml2json/file-backing_basic-aio_threads.xml    | 47 ++++++++++++++++
>  .../xml2json/file-raw-aio_native.json              | 21 ++++++++
>  .../xml2json/file-raw-aio_native.xml               | 12 +++++
>  5 files changed, 144 insertions(+)
>  create mode 100644 tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.json
>  create mode 100644 tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.xml
>  create mode 100644 tests/qemublocktestdata/xml2json/file-raw-aio_native.json
>  create mode 100644 tests/qemublocktestdata/xml2json/file-raw-aio_native.xml
> 

Taking the leap of faith that the results are "expected" :-)... At least
I know gluster shouldn't be getting the aio based on code!

Reviewed-by: John Ferlan <jferlan at redhat.com>

John


> diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c
> index 81a2261dab..a79ffa90d8 100644
> --- a/tests/qemublocktest.c
> +++ b/tests/qemublocktest.c
> @@ -416,6 +416,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);
> diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.json b/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.json
> new file mode 100644
> index 0000000000..dcaf905085
> --- /dev/null
> +++ b/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.json
> @@ -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"
> +  }
> +}
> diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.xml b/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.xml
> new file mode 100644
> index 0000000000..ad84fab720
> --- /dev/null
> +++ b/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.xml
> @@ -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>
> diff --git a/tests/qemublocktestdata/xml2json/file-raw-aio_native.json b/tests/qemublocktestdata/xml2json/file-raw-aio_native.json
> new file mode 100644
> index 0000000000..2752e0b204
> --- /dev/null
> +++ b/tests/qemublocktestdata/xml2json/file-raw-aio_native.json
> @@ -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"
> +  }
> +}
> diff --git a/tests/qemublocktestdata/xml2json/file-raw-aio_native.xml b/tests/qemublocktestdata/xml2json/file-raw-aio_native.xml
> new file mode 100644
> index 0000000000..470b60f26b
> --- /dev/null
> +++ b/tests/qemublocktestdata/xml2json/file-raw-aio_native.xml
> @@ -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>
> 




More information about the libvir-list mailing list