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

Jiri Denemark jdenemar at redhat.com
Fri Oct 13 17:43:06 UTC 2017


On Thu, Oct 12, 2017 at 17:21:53 -0400, John Ferlan wrote:
> 
> 
> 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).

Oh right. Somehow when I was checking it, I looked at
VIR_OBJECT_NOTVALID macro and completely ignored its body and looked at
the body of VIR_OBJECT_USAGE_PRINT_WARNING macro instead which made me
think virObjectRef prints some nasty warnings when obj == NULL.

Jirka




More information about the libvir-list mailing list