On Thu, Apr 12, 2018 at 08:47:57 +0200, Andrea Bolognani wrote:
vircapstest has code to add a full host NUMA topology, that
is, one that includes all information about nodes and CPUs
including IDs; the function used to create a mock virCapsPtr
by most of the test suite, however, just fakes it by setting
nnumaCell_max to some number.
While the latter approach has served us well so far, we're
going to need all the information to be filled in soon. In
order to do that, we can just move the existing code from
vircapstest to testutilsqemu and, with some renaming and
trivial tweaking, use it as-is.
Interestingly, the NUMA topology generated by the function
is rigged up so that the NUMA nodes aren't (necessarily)
numbered starting from 0, which is a nice way to spot
mistaken assumptions in our codebase.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
tests/testutilsqemu.c | 57 +++++++++++++++++++++++++++++++++++++++++++++-
tests/vircapstest.c | 62 +--------------------------------------------------
2 files changed, 57 insertions(+), 62 deletions(-)
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index f8182033fc..ec32c4e106 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -375,6 +375,56 @@ static int testQemuAddAARCH64Guest(virCapsPtr caps)
return -1;
}
+#define MAX_CELLS 4
+#define MAX_CPUS_IN_CELL 2
+#define MAX_MEM_IN_CELL 2097152
Syntax-check is not happy about indentation of these. You probably
missed that this whole function is wrapped inside #ifdef WITH_QEMU.
+
+/*
+ * Build NUMA topology with cell id starting from (0 + seq)
+ * for testing
+ */
+static int
+testQemuBuildNUMATopology(virCapsPtr caps,
+ int seq)
Moving of the code looks sane.
[...]
diff --git a/tests/vircapstest.c b/tests/vircapstest.c
index 664b7da143..e9d5e12158 100644
--- a/tests/vircapstest.c
+++ b/tests/vircapstest.c
[...]
@@ -96,11 +40,7 @@ test_virCapabilitiesGetCpusForNodemask(const void
*data ATTRIBUTE_UNUSED)
int mask_size = 8;
int ret = -1;
- /*
- * Build a NUMA topology with cell_id (NUMA node id
- * being 3(0 + 3),4(1 + 3), 5 and 6
- */
- if (!(caps = buildNUMATopology(3)))
+ if (!(caps = testQemuCapsInit()))
Since this function is now declared within #ifdef WITH_QEMU but
test_virCapabilitiesGetCpusForNodemask isn't you'll get a build failure
with --without-qemu
Since there are multiple solutions, v2 will be required.