
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@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? Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal