]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: Fix libxlxml2domconfigtest
authorJim Fehlig <jfehlig@suse.com>
Fri, 11 Nov 2022 00:55:38 +0000 (17:55 -0700)
committerJim Fehlig <jfehlig@suse.com>
Fri, 11 Nov 2022 15:10:34 +0000 (08:10 -0700)
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>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tests/libxlmock.c
tests/libxlxml2domconfigdata/vnuma-hvm.json

index 4754597e5bafda7b5ff9591e7e0cf000c231f3b7..205d34df1910a11bdd703f6bf5671ffa48b8c28e 100644 (file)
@@ -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,
index 2556c82d5fdfee16f6b846b2bbf986fd7433beb9..68c1c2501d90baf61690b39fad4d39597ef8444f 100644 (file)
@@ -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
                 ]