[PATCH] tests: Fix libxlxml2domconfigtest

Jim Fehlig jfehlig at suse.com
Fri Nov 11 17:46:22 UTC 2022


On 11/11/22 02:09, Michal Prívozník wrote:
> On 11/11/22 03:25, Jim Fehlig wrote:
>> Downstream CI recently encountered failures of libxlxml2domconfigtest when
>> building libvirt packages against Xen 4.17 rc3 packages. The test fails on
>> vnuma_hvm config, where suddently the actual json produced by
>> libxl_domain_config_to_json() contains a 'pnode' entry in the 'vnuma_nodes'
>> list, which is absent in the expected json. It appears the test has thus far
>> passed by luck. E.g. I was able to make the test pass in the failing
>> environment by changing the meson buildtype from debugoptimized to debug.
>>
>> When a VM config contains vnuma settings, libxlMakeVnumaList() checks if the
>> number of requested vnuma nodes exceeds the number of physical nodes. The
>> number of physical nodes is retrieved with libxl_get_physinfo(), which can
>> return wildly different results in the context of unit tests. This change
>> mocks libxl_get_physinfo() to return consistent results. All fields of the
>> libxl_physinfo struct are set to 0 except nr_nodes, which is set to 6 to
>> ensure the vnuma_hvm configuration is properly tested.
>>
>> Signed-off-by: Jim Fehlig <jfehlig at suse.com>
>> ---
>>   tests/libxlmock.c                           | 15 +++++++++++++++
>>   tests/libxlxml2domconfigdata/vnuma-hvm.json |  5 +++++
>>   2 files changed, 20 insertions(+)
>>
>> diff --git a/tests/libxlmock.c b/tests/libxlmock.c
>> index 4754597e5b..205d34df19 100644
>> --- a/tests/libxlmock.c
>> +++ b/tests/libxlmock.c
>> @@ -70,6 +70,21 @@ VIR_MOCK_IMPL_RET_ARGS(libxl_get_version_info,
>>       return &info;
>>   }
>>   
>> +VIR_MOCK_IMPL_RET_ARGS(libxl_get_physinfo,
>> +                       int,
>> +                       libxl_ctx *, ctx,
>> +                       libxl_physinfo *, physinfo)
>> +{
>> +    memset(physinfo, 0, sizeof(*physinfo));
>> +    physinfo->nr_nodes = 6;
>> +
>> +    /* silence gcc warning about unused function */
>> +    if (0)
>> +        real_libxl_get_physinfo(ctx, physinfo);
>> +
>> +    return 0;
>> +}
>> +
>>   VIR_MOCK_STUB_RET_ARGS(libxl_get_free_memory,
>>                          int, 0,
>>                          libxl_ctx *, ctx,
>> diff --git a/tests/libxlxml2domconfigdata/vnuma-hvm.json b/tests/libxlxml2domconfigdata/vnuma-hvm.json
>> index 2556c82d5f..c90ee823a4 100644
>> --- a/tests/libxlxml2domconfigdata/vnuma-hvm.json
>> +++ b/tests/libxlxml2domconfigdata/vnuma-hvm.json
>> @@ -39,6 +39,7 @@
>>                       41,
>>                       51
>>                   ],
>> +		"pnode": 1,
> 
> These look misaligned... and in fact they are, because you've used TABs.
> Can you please switch to spaces?

Opps. I changed all the offending lines before pushing.

> Reviewed-by: Michal Privoznik <mprivozn at redhat.com>

Thanks!
Jim



More information about the libvir-list mailing list