On Tue, 2020-09-29 at 11:21 +0200, Peter Krempa wrote:
(...)
On Mon, Sep 21, 2020 at 15:07:31 +0200, Tim Wiederhake wrote:
> Signed-off-by: Tim Wiederhake <twiederh(a)redhat.com>
> ---
> tests/cputest.c | 45 ++++++++++++++++++++++++++++++---------------
> 1 file changed, 30 insertions(+), 15 deletions(-)
>
> diff --git a/tests/cputest.c b/tests/cputest.c
> index b40fd7f7f2..30a125c3da 100644
> --- a/tests/cputest.c
> +++ b/tests/cputest.c
> @@ -203,12 +203,20 @@ cpuTestCompare(const void *arg)
> virCPUDefPtr host = NULL;
> virCPUDefPtr cpu = NULL;
> virCPUCompareResult result;
> + bool validate = !!(data->flags &
> VIR_CONNECT_COMPARE_CPU_VALIDATE_XML);
>
> - if (!(host = cpuTestLoadXML(data->arch, data->host)) ||
> - !(cpu = cpuTestLoadXML(data->arch, data->name)))
> - goto cleanup;
> + host = cpuTestLoadXML(data->arch, data->host, validate);
> + cpu = cpuTestLoadXML(data->arch, data->name, validate);
> +
> + if (!host || !cpu) {
> + if (validate)
> + result = VIR_CPU_COMPARE_ERROR;
> + else
> + goto cleanup;
> + } else {
> + result = virCPUCompare(host->arch, host, cpu, false);
> + }
(...) Also reporting a
validation failure as a COMPARE_ERROR seems wrong IMO.
The enum virCPUCompareResult in libvirt-host.h defines the values
VIR_CPU_COMPARE_{ERROR,INCOMPATIBLE,IDENTICAL,SUPERSET}. I believe
VIR_CPU_COMPARE_ERROR to be correct here, but have rewritten this part
for v3.
Tim