[libvirt] [PATCH 16/23] cputest: Use CPU models from QEMU when available

John Ferlan jferlan at redhat.com
Thu Oct 12 21:21:53 UTC 2017



On 10/04/2017 10:58 AM, Jiri Denemark wrote:
> When testing cpuDecode for computing guest CPU definition from CPUID
> data (the CPU definition reported by domain capabilities), we need to
> use CPU models (and their usability blockers) from QEMU if they are
> available to cpuDecode in the same way it is actually used in the qemu
> driver.
> 
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
>  tests/cputest.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 75 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/cputest.c b/tests/cputest.c
> index b72c17a168..18618ad309 100644
> --- a/tests/cputest.c
> +++ b/tests/cputest.c
> @@ -515,6 +515,37 @@ cpuTestMakeQEMUCaps(const struct data *data)
>      qemuCaps = NULL;
>      goto cleanup;
>  }
> +
> +
> +static virDomainCapsCPUModelsPtr
> +cpuTestGetCPUModels(const struct data *data)
> +{
> +    virDomainCapsCPUModelsPtr models = NULL;
> +    virQEMUCapsPtr qemuCaps;
> +
> +    if (data->flags != JSON_MODELS)
> +        return NULL;
> +
> +    if (!(qemuCaps = cpuTestMakeQEMUCaps(data)))
> +        return NULL;
> +
> +    models = virQEMUCapsGetCPUDefinitions(qemuCaps, VIR_DOMAIN_VIRT_KVM);
> +    if (models)
> +        virObjectRef(models);

As I learned a while back virObjectRef() works on a NULL @models - so no
need for the if (models) (and the Unref already doesn't have one).

> +
> +    virObjectUnref(qemuCaps);
> +
> +    return models;
> +}
> +

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

John




More information about the libvir-list mailing list