Skip to content

Commit d927fce

Browse files
authored
Merge pull request #464 from lukaszstolarczuk/fix-valgrind-multi-numa
Fix valgrind multi numa tests
2 parents f31f7b0 + 4429aaa commit d927fce

File tree

2 files changed

+18
-17
lines changed

2 files changed

+18
-17
lines changed

test/provider_os_memory_multiple_numa_nodes.cpp

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
#include "base.hpp"
66
#include "numa_helpers.h"
7+
#include "test_helpers.h"
78

89
#include <numa.h>
910
#include <numaif.h>
1011
#include <sched.h>
1112

12-
#include "test_helpers.h"
1313
#include <umf/providers/provider_os_memory.h>
1414

1515
static umf_os_memory_provider_params_t UMF_OS_MEMORY_PROVIDER_PARAMS_TEST =
@@ -138,7 +138,6 @@ TEST_P(testNumaOnEachNode, checkNumaNodesAllocations) {
138138
UMF_OS_MEMORY_PROVIDER_PARAMS_TEST;
139139

140140
os_memory_provider_params.numa_list = &numa_node_number;
141-
numa_bitmask_setbit(nodemask, numa_node_number);
142141
os_memory_provider_params.numa_list_len = 1;
143142
os_memory_provider_params.numa_mode = UMF_NUMA_MODE_BIND;
144143
initOsProvider(os_memory_provider_params);
@@ -152,7 +151,7 @@ TEST_P(testNumaOnEachNode, checkNumaNodesAllocations) {
152151
// 'ptr' must point to an initialized value before retrieving its numa node
153152
memset(ptr, 0xFF, alloc_size);
154153
int retrieved_numa_node_number = getNumaNodeByPtr(ptr);
155-
ASSERT_EQ(retrieved_numa_node_number, numa_node_number);
154+
EXPECT_EQ(retrieved_numa_node_number, numa_node_number);
156155
}
157156

158157
// Test for allocations on numa nodes with mode preferred. It will be executed
@@ -177,7 +176,7 @@ TEST_P(testNumaOnEachNode, checkModePreferred) {
177176
// 'ptr' must point to an initialized value before retrieving its numa node
178177
memset(ptr, 0xFF, alloc_size);
179178
int retrieved_numa_node_number = getNumaNodeByPtr(ptr);
180-
ASSERT_EQ(retrieved_numa_node_number, numa_node_number);
179+
EXPECT_EQ(retrieved_numa_node_number, numa_node_number);
181180
}
182181

183182
// Test for allocation on numa node with default mode enabled.
@@ -202,7 +201,7 @@ TEST_P(testNumaOnEachNode, checkModeDefaultSetMempolicy) {
202201
// 'ptr' must point to an initialized value before retrieving its numa node
203202
memset(ptr, 0xFF, alloc_size);
204203
int retrieved_numa_node_number = getNumaNodeByPtr(ptr);
205-
ASSERT_EQ(retrieved_numa_node_number, numa_node_number);
204+
EXPECT_EQ(retrieved_numa_node_number, numa_node_number);
206205
}
207206

208207
// Test for allocations on a single numa node with interleave mode enabled.
@@ -216,7 +215,6 @@ TEST_P(testNumaOnEachNode, checkModeInterleaveSingleNode) {
216215
UMF_OS_MEMORY_PROVIDER_PARAMS_TEST;
217216

218217
os_memory_provider_params.numa_list = &numa_node_number;
219-
numa_bitmask_setbit(nodemask, numa_node_number);
220218
os_memory_provider_params.numa_list_len = 1;
221219
os_memory_provider_params.numa_mode = UMF_NUMA_MODE_INTERLEAVE;
222220
initOsProvider(os_memory_provider_params);
@@ -230,7 +228,7 @@ TEST_P(testNumaOnEachNode, checkModeInterleaveSingleNode) {
230228
// 'ptr' must point to an initialized value before retrieving its numa node
231229
memset(ptr, 0xFF, pages_num * page_size);
232230
int retrieved_numa_node_number = getNumaNodeByPtr(ptr);
233-
ASSERT_EQ(retrieved_numa_node_number, numa_node_number);
231+
EXPECT_EQ(retrieved_numa_node_number, numa_node_number);
234232
}
235233

236234
// Test for allocation on numa node with mode preferred and an empty nodeset.
@@ -245,6 +243,8 @@ TEST_P(testNumaOnEachCpu, checkModePreferredEmptyNodeset) {
245243

246244
CPU_SET(cpu, mask);
247245
int ret = sched_setaffinity(0, sizeof(cpu_set_t), mask);
246+
CPU_FREE(mask);
247+
248248
UT_ASSERTeq(ret, 0);
249249

250250
umf_os_memory_provider_params_t os_memory_provider_params =
@@ -268,8 +268,7 @@ TEST_P(testNumaOnEachCpu, checkModePreferredEmptyNodeset) {
268268
// 'ptr' must point to an initialized value before retrieving its numa node
269269
memset(ptr, 0xFF, alloc_size);
270270
int retrieved_numa_node_number = getNumaNodeByPtr(ptr);
271-
ASSERT_EQ(retrieved_numa_node_number, numa_node_number);
272-
CPU_FREE(mask);
271+
EXPECT_EQ(retrieved_numa_node_number, numa_node_number);
273272
}
274273

275274
// Test for allocation on numa node with local mode enabled. The memory is
@@ -282,6 +281,8 @@ TEST_P(testNumaOnEachCpu, checkModeLocal) {
282281

283282
CPU_SET(cpu, mask);
284283
int ret = sched_setaffinity(0, sizeof(cpu_set_t), mask);
284+
CPU_FREE(mask);
285+
285286
UT_ASSERTeq(ret, 0);
286287

287288
umf_os_memory_provider_params_t os_memory_provider_params =
@@ -305,8 +306,7 @@ TEST_P(testNumaOnEachCpu, checkModeLocal) {
305306
// 'ptr' must point to an initialized value before retrieving its numa node
306307
memset(ptr, 0xFF, alloc_size);
307308
int retrieved_numa_node_number = getNumaNodeByPtr(ptr);
308-
ASSERT_EQ(retrieved_numa_node_number, numa_node_number);
309-
CPU_FREE(mask);
309+
EXPECT_EQ(retrieved_numa_node_number, numa_node_number);
310310
}
311311

312312
// Test for allocation on numa node with default mode enabled.
@@ -331,11 +331,11 @@ TEST_F(testNuma, checkModeDefault) {
331331
// 'ptr' must point to an initialized value before retrieving its numa node
332332
memset(ptr, 0xFF, alloc_size);
333333
int retrieved_numa_node_number = getNumaNodeByPtr(ptr);
334-
ASSERT_EQ(retrieved_numa_node_number, numa_node_number);
334+
EXPECT_EQ(retrieved_numa_node_number, numa_node_number);
335335
}
336336

337337
// Test for allocations on numa nodes with interleave mode enabled.
338-
// The page allocations are interleaved across the set of nodes specified in nodemask.
338+
// The page allocations are interleaved across the set of all available nodes.
339339
TEST_F(testNuma, checkModeInterleave) {
340340
constexpr int pages_num = 1024;
341341
size_t page_size = sysconf(_SC_PAGE_SIZE);
@@ -370,8 +370,9 @@ TEST_F(testNuma, checkModeInterleave) {
370370

371371
bitmask *retrieved_nodemask = retrieve_nodemask(ptr);
372372
int ret = numa_bitmask_equal(retrieved_nodemask, nodemask);
373-
ASSERT_EQ(ret, 1);
374373
numa_bitmask_free(retrieved_nodemask);
374+
375+
EXPECT_EQ(ret, 1);
375376
}
376377

377378
// Test for allocations on all numa nodes with BIND mode.
@@ -408,9 +409,9 @@ TEST_F(testNuma, checkModeBindOnAllNodes) {
408409
count++;
409410
}
410411
}
411-
ASSERT_EQ(count, 1);
412+
EXPECT_EQ(count, 1);
412413
// ... and it's the one which we expect
413-
ASSERT_EQ(retrieved_numa_node_number, read_numa_node);
414+
EXPECT_EQ(retrieved_numa_node_number, read_numa_node);
414415
}
415416

416417
// Negative tests for policies with illegal arguments.

test/test_valgrind.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ for test in $(ls -1 umf_test-*); do
9494
FILTER='--gtest_filter="-*highestCapacityVerify*"'
9595
;;
9696
umf_test-provider_os_memory_multiple_numa_nodes)
97-
FILTER='--gtest_filter="-testNumaNodesAllocations/testNumaOnEachNode*:testNumaNodesAllocationsAllCpus/testNumaOnEachCpu.checkModePreferredEmptyNodeset*:testNumaNodesAllocationsAllCpus/testNumaOnEachCpu.checkModeLocal*"'
97+
FILTER='--gtest_filter="-testNuma.checkModeInterleave:testNumaNodesAllocations/testNumaOnEachNode.checkNumaNodesAllocations*:testNumaNodesAllocations/testNumaOnEachNode.checkModePreferred*:testNumaNodesAllocations/testNumaOnEachNode.checkModeInterleaveSingleNode*:testNumaNodesAllocationsAllCpus/testNumaOnEachCpu.checkModePreferredEmptyNodeset*:testNumaNodesAllocationsAllCpus/testNumaOnEachCpu.checkModeLocal*"'
9898
;;
9999
esac
100100

0 commit comments

Comments
 (0)