[libvirt] [PATCH v2 5/5] tests: Try different usable GIC versions

John Ferlan jferlan at redhat.com
Tue May 17 20:10:58 UTC 2016



On 05/16/2016 06:00 PM, Andrea Bolognani wrote:
> The only case where the hardware capabilities influence the result
> is when no <gic/> element was provided.
> 
> The test programs now ensure both that the correct GIC version is
> picked in that case, and that hardware capabilities are not taken
> into account when the user has already picked a GIC version.
> ---
>  .../qemuxml2argv-aarch64-gic-none-both.args        |  1 +
>  .../qemuxml2argv-aarch64-gic-none-both.xml         |  1 +
>  .../qemuxml2argv-aarch64-gic-none-v2.args          |  1 +
>  .../qemuxml2argv-aarch64-gic-none-v2.xml           |  1 +
>  .../qemuxml2argv-aarch64-gic-none-v3.args          |  1 +
>  .../qemuxml2argv-aarch64-gic-none-v3.xml           |  1 +
>  tests/qemuxml2argvtest.c                           | 76 ++++++++++++++++++----
>  .../qemuxml2xmlout-aarch64-gic-none-both.xml       |  1 +
>  .../qemuxml2xmlout-aarch64-gic-none-v2.xml         |  1 +
>  .../qemuxml2xmlout-aarch64-gic-none-v3.xml         |  1 +
>  tests/qemuxml2xmltest.c                            | 25 +++++--
>  11 files changed, 91 insertions(+), 19 deletions(-)
>  create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.args
>  create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.xml
>  create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.args
>  create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.xml
>  create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.args
>  create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.xml
>  create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-both.xml
>  create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v2.xml
>  create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v3.xml
> 

This failed to apply - seemingly because there's QEMU_CAPS_CPU_HOST in
here that has changed since you posted to X_QEMU_CAPS_CPU_HOST

But if I very carefully massage it, I was able to run the test - nothing
like testing the crap out of things!

So ACK with the I hope obvious adjustment to remove QEMU_CAPS_CPU_HOST


John

> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.args
> new file mode 120000
> index 0000000..5b20f61
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.args
> @@ -0,0 +1 @@
> +qemuxml2argv-aarch64-gic-v3.args
> \ No newline at end of file
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.xml
> new file mode 120000
> index 0000000..d859f53
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.xml
> @@ -0,0 +1 @@
> +qemuxml2argv-aarch64-gic-none.xml
> \ No newline at end of file
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.args
> new file mode 120000
> index 0000000..3234039
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.args
> @@ -0,0 +1 @@
> +qemuxml2argv-aarch64-gic-v2.args
> \ No newline at end of file
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.xml
> new file mode 120000
> index 0000000..d859f53
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.xml
> @@ -0,0 +1 @@
> +qemuxml2argv-aarch64-gic-none.xml
> \ No newline at end of file
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.args
> new file mode 120000
> index 0000000..5b20f61
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.args
> @@ -0,0 +1 @@
> +qemuxml2argv-aarch64-gic-v3.args
> \ No newline at end of file
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.xml
> new file mode 120000
> index 0000000..88c660c
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.xml
> @@ -0,0 +1 @@
> +qemuxml2argv-aarch64-gic-none-v2.xml
> \ No newline at end of file
> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index 6b804b8..734861d 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -540,6 +540,9 @@ mymain(void)
>  # define DO_TEST(name, ...)                                             \
>      DO_TEST_FULL(name, NULL, -1, 0, 0, GIC_NONE, __VA_ARGS__)
>  
> +# define DO_TEST_GIC(name, gic, ...)                                    \
> +    DO_TEST_FULL(name, NULL, -1, 0, 0, gic, __VA_ARGS__)
> +
>  # define DO_TEST_FAILURE(name, ...)                                     \
>      DO_TEST_FULL(name, NULL, -1, FLAG_EXPECT_FAILURE,                   \
>                   0, GIC_NONE, __VA_ARGS__)
> @@ -1740,38 +1743,83 @@ mymain(void)
>      DO_TEST("aarch64-cpu-passthrough",
>              QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DEVICE_VIRTIO_MMIO,
>              QEMU_CAPS_CPU_HOST, QEMU_CAPS_KVM);
> -    DO_TEST("aarch64-gic-none",
> +    DO_TEST_GIC("aarch64-gic-none", GIC_NONE,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST);
> +    DO_TEST_GIC("aarch64-gic-none", GIC_NONE,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
>              QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> -    DO_TEST("aarch64-gic-none",
> -            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST);
> -    DO_TEST("aarch64-gic-default",
> +    DO_TEST_GIC("aarch64-gic-none-v2", GIC_V2,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-none-v3", GIC_V3,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
>              QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> -    DO_TEST("aarch64-gic-default",
> +    DO_TEST_GIC("aarch64-gic-none-both", GIC_BOTH,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-default", GIC_NONE,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST);
> -    DO_TEST("aarch64-gic-v2",
> +    DO_TEST_GIC("aarch64-gic-default", GIC_NONE,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-default", GIC_V2,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
>              QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> -    DO_TEST("aarch64-gic-v2",
> +    DO_TEST_GIC("aarch64-gic-default", GIC_V3,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-default", GIC_BOTH,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-v2", GIC_NONE,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST);
> -    DO_TEST("aarch64-gic-v3",
> +    DO_TEST_GIC("aarch64-gic-v2", GIC_NONE,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-v2", GIC_V2,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-v2", GIC_V3,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
>              QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> -    DO_TEST_FAILURE("aarch64-gic-v3",
> +    DO_TEST_GIC("aarch64-gic-v2", GIC_BOTH,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_FAILURE("aarch64-gic-v3", GIC_NONE,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST);
> -    DO_TEST("aarch64-gic-host",
> +    DO_TEST_GIC("aarch64-gic-v3", GIC_NONE,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-v3", GIC_V2,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-v3", GIC_V3,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-v3", GIC_BOTH,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
>              QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> -    DO_TEST_FAILURE("aarch64-gic-host",
> +    DO_TEST_FAILURE("aarch64-gic-host", GIC_NONE,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST);
> -    DO_TEST_PARSE_ERROR("aarch64-gic-invalid",
> +    DO_TEST_GIC("aarch64-gic-host", GIC_NONE,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-host", GIC_V2,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-host", GIC_V3,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_GIC("aarch64-gic-host", GIC_BOTH,
> +            QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
> +            QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> +    DO_TEST_PARSE_ERROR("aarch64-gic-invalid", GIC_NONE,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
>              QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> -    DO_TEST_FAILURE("aarch64-gic-not-virt",
> +    DO_TEST_FAILURE("aarch64-gic-not-virt", GIC_NONE,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
>              QEMU_CAPS_MACH_VIRT_GIC_VERSION);
> -    DO_TEST_FAILURE("aarch64-gic-not-arm",
> +    DO_TEST_FAILURE("aarch64-gic-not-arm", GIC_NONE,
>              QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_CPU_HOST,
>              QEMU_CAPS_MACH_VIRT_GIC_VERSION);
>  
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-both.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-both.xml
> new file mode 120000
> index 0000000..f586fa1
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-both.xml
> @@ -0,0 +1 @@
> +../qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.xml
> \ No newline at end of file
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v2.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v2.xml
> new file mode 120000
> index 0000000..80a01c2
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v2.xml
> @@ -0,0 +1 @@
> +../qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.xml
> \ No newline at end of file
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v3.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v3.xml
> new file mode 120000
> index 0000000..f586fa1
> --- /dev/null
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v3.xml
> @@ -0,0 +1 @@
> +../qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.xml
> \ No newline at end of file
> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
> index 9d2109b..404cd10 100644
> --- a/tests/qemuxml2xmltest.c
> +++ b/tests/qemuxml2xmltest.c
> @@ -775,11 +775,26 @@ mymain(void)
>              QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE,
>              QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_VIRTIO_SCSI);
>  
> -    DO_TEST("aarch64-gic-none");
> -    DO_TEST("aarch64-gic-default");
> -    DO_TEST("aarch64-gic-v2");
> -    DO_TEST("aarch64-gic-v3");
> -    DO_TEST("aarch64-gic-host");
> +    DO_TEST_FULL("aarch64-gic-none", WHEN_BOTH, GIC_NONE, NONE);
> +    DO_TEST_FULL("aarch64-gic-none-v2", WHEN_BOTH, GIC_V2, NONE);
> +    DO_TEST_FULL("aarch64-gic-none-v3", WHEN_BOTH, GIC_V3, NONE);
> +    DO_TEST_FULL("aarch64-gic-none-both", WHEN_BOTH, GIC_BOTH, NONE);
> +    DO_TEST_FULL("aarch64-gic-default", WHEN_BOTH, GIC_NONE, NONE);
> +    DO_TEST_FULL("aarch64-gic-default", WHEN_BOTH, GIC_V2, NONE);
> +    DO_TEST_FULL("aarch64-gic-default", WHEN_BOTH, GIC_V3, NONE);
> +    DO_TEST_FULL("aarch64-gic-default", WHEN_BOTH, GIC_BOTH, NONE);
> +    DO_TEST_FULL("aarch64-gic-v2", WHEN_BOTH, GIC_NONE, NONE);
> +    DO_TEST_FULL("aarch64-gic-v2", WHEN_BOTH, GIC_V2, NONE);
> +    DO_TEST_FULL("aarch64-gic-v2", WHEN_BOTH, GIC_V3, NONE);
> +    DO_TEST_FULL("aarch64-gic-v2", WHEN_BOTH, GIC_BOTH, NONE);
> +    DO_TEST_FULL("aarch64-gic-v3", WHEN_BOTH, GIC_NONE, NONE);
> +    DO_TEST_FULL("aarch64-gic-v3", WHEN_BOTH, GIC_V2, NONE);
> +    DO_TEST_FULL("aarch64-gic-v3", WHEN_BOTH, GIC_V3, NONE);
> +    DO_TEST_FULL("aarch64-gic-v3", WHEN_BOTH, GIC_BOTH, NONE);
> +    DO_TEST_FULL("aarch64-gic-host", WHEN_BOTH, GIC_NONE, NONE);
> +    DO_TEST_FULL("aarch64-gic-host", WHEN_BOTH, GIC_V2, NONE);
> +    DO_TEST_FULL("aarch64-gic-host", WHEN_BOTH, GIC_V3, NONE);
> +    DO_TEST_FULL("aarch64-gic-host", WHEN_BOTH, GIC_BOTH, NONE);
>  
>      DO_TEST("memory-hotplug");
>      DO_TEST("memory-hotplug-nonuma");
> 




More information about the libvir-list mailing list