diff --git a/f81ee7b5-tests-Fix-libxlxml2domconfigtest.patch b/f81ee7b5-tests-Fix-libxlxml2domconfigtest.patch new file mode 100644 index 0000000..9406d83 --- /dev/null +++ b/f81ee7b5-tests-Fix-libxlxml2domconfigtest.patch @@ -0,0 +1,99 @@ +From e0d5a7c51a70da651c98f18f188743efcff8813b Mon Sep 17 00:00:00 2001 +From: Jim Fehlig +Date: Thu, 10 Nov 2022 17:55:38 -0700 +Subject: [PATCH] tests: Fix libxlxml2domconfigtest + +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 +Reviewed-by: Michal Privoznik +(cherry picked from commit f81ee7b549242c93bead8c8772bb31047da00415) +--- + tests/libxlmock.c | 15 +++++++++++++++ + tests/libxlxml2domconfigdata/vnuma-hvm.json | 5 +++++ + 2 files changed, 20 insertions(+) + +Index: libvirt-8.9.0/tests/libxlmock.c +=================================================================== +--- libvirt-8.9.0.orig/tests/libxlmock.c ++++ libvirt-8.9.0/tests/libxlmock.c +@@ -70,6 +70,21 @@ VIR_MOCK_IMPL_RET_ARGS(libxl_get_version + 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, +Index: libvirt-8.9.0/tests/libxlxml2domconfigdata/vnuma-hvm.json +=================================================================== +--- libvirt-8.9.0.orig/tests/libxlxml2domconfigdata/vnuma-hvm.json ++++ libvirt-8.9.0/tests/libxlxml2domconfigdata/vnuma-hvm.json +@@ -39,6 +39,7 @@ + 41, + 51 + ], ++ "pnode": 1, + "vcpus": [ + 1 + ] +@@ -53,6 +54,7 @@ + 31, + 41 + ], ++ "pnode": 2, + "vcpus": [ + 2 + ] +@@ -67,6 +69,7 @@ + 21, + 31 + ], ++ "pnode": 3, + "vcpus": [ + 3 + ] +@@ -81,6 +84,7 @@ + 10, + 21 + ], ++ "pnode": 4, + "vcpus": [ + 4 + ] +@@ -95,6 +99,7 @@ + 21, + 10 + ], ++ "pnode": 5, + "vcpus": [ + 5 + ] diff --git a/libvirt.changes b/libvirt.changes index 36e8dfd..b2d569b 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Nov 11 16:23:28 UTC 2022 - James Fehlig + +- tests: Fix libxlxml2domconfigtest + f81ee7b5-tests-Fix-libxlxml2domconfigtest.patch + bsc#1205204 + ------------------------------------------------------------------- Tue Nov 1 18:49:11 UTC 2022 - James Fehlig diff --git a/libvirt.spec b/libvirt.spec index a2fa7ed..7bcd0f0 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -304,6 +304,7 @@ Source6: libvirtd-relocation-server.xml Source99: baselibs.conf Source100: %{name}-rpmlintrc # Upstream patches +Patch0: f81ee7b5-tests-Fix-libxlxml2domconfigtest.patch # Patches pending upstream review Patch100: libxl-dom-reset.patch Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch