[PATCH 14/21] qemu: capabilities: Replace aliased machine type by copy of the canonical machine

Eric Blake eblake at redhat.com
Thu Jan 23 16:42:30 UTC 2020


On 1/23/20 8:03 AM, Peter Krempa wrote:
> The previous approac of just purging the alias combined with the fact

approach

> that we filled in fake machine types in the test data meant that if a
> test case used an alias machine type such as 'pc' or 'q35' it would not
> properly resolve to the actual data returned by qemu.
> 
> This started to be a problem since the CPU driver now looks at the
> default CPU reported with the machine type.
> 
> This patch replaces the original approach of just removing the alias by
> replacing it with a copy of the machine type data which the type would
> alias to. This means that we are using the real data while we don't
> modify the test output after every qemu upgrade.
> 
> Additionally this change will allow us to drop adding the fake machine
> types later.
> 
> The test fallout is from actually excercising the CPU driver with

exercising

> actual data.
> 
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---

> +++ b/src/qemu/qemu_capabilities.c
> @@ -5910,8 +5910,12 @@ virQEMUCapsStripMachineAliasesForVirtType(virQEMUCapsPtr qemuCaps,
> 
>       for (i = 0; i < accel->nmachineTypes; i++) {
>           virQEMUCapsMachineTypePtr mach = &accel->machineTypes[i];
> +        g_autofree char *name = g_steal_pointer(&mach->alias);
> 
> -        VIR_FREE(mach->alias);
> +        if (name) {
> +            virQEMUCapsAddMachine(qemuCaps, virtType, name, NULL, mach->defaultCPU,
> +                                  mach->maxCpus, mach->hotplugCpus, mach->qemuDefault);
> +        }
>       }
>   }
> 
> @@ -5920,6 +5924,10 @@ virQEMUCapsStripMachineAliasesForVirtType(virQEMUCapsPtr qemuCaps,
>    * virQEMUCapsStripMachineAliases:
>    * @qemuCaps: capabilities object to process
>    *
> + * Replace all aliases by the copy of the machine type they point to without
> + * actually having to modify the name. This allows us to add tests with the
> + * aliased machine without having to change the output files all the time.
> + *
>    * Remove all aliases so that the tests depending on the latest capabilities
>    * file can be stable when new files are added.

Is this paragraph stale now?  (How can we remove aliases if we just 
replaced them?)

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




More information about the libvir-list mailing list