Skip to content

Commit 46ebf98

Browse files
fix: GTEST assert causing segfault
replace UT_ASSERT in memspace_highest_capacity.cpp add checking for nullptr in src/memory_provider.c
1 parent 173d3cc commit 46ebf98

File tree

3 files changed

+16
-18
lines changed

3 files changed

+16
-18
lines changed

src/memory_provider.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,10 @@ umf_result_t umfMemoryProviderCreate(const umf_memory_provider_ops_t *ops,
195195
}
196196

197197
void umfMemoryProviderDestroy(umf_memory_provider_handle_t hProvider) {
198-
hProvider->ops.finalize(hProvider->provider_priv);
199-
umf_ba_global_free(hProvider);
198+
if (hProvider) {
199+
hProvider->ops.finalize(hProvider->provider_priv);
200+
umf_ba_global_free(hProvider);
201+
}
200202
}
201203

202204
static void

test/memspaces/memspace_highest_capacity.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ struct memspaceHighestCapacityProviderTest : ::numaNodesTest {
2121
::numaNodesTest::SetUp();
2222

2323
umf_const_memspace_handle_t hMemspace = umfMemspaceHighestCapacityGet();
24-
UT_ASSERTne(hMemspace, nullptr);
24+
ASSERT_NE(hMemspace, nullptr);
2525

2626
umf_result_t ret =
2727
umfMemoryProviderCreateFromMemspace(hMemspace, nullptr, &hProvider);

test/provider_os_memory_multiple_numa_nodes.cpp

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ std::vector<int> get_available_cpus() {
4444
int ret = sched_getaffinity(0, sizeof(cpu_set_t), mask);
4545

4646
if (ret != 0) {
47-
available_cpus.emplace_back(-__LINE__);
47+
available_cpus.emplace_back(-1);
4848
CPU_FREE(mask);
4949

5050
return available_cpus;
@@ -98,17 +98,17 @@ struct testNuma : testing::Test {
9898
std::pair<int, bitmask *> retrieve_nodemask(void *addr) {
9999
struct bitmask *retrieved_nodemask = numa_allocate_nodemask();
100100

101-
if (nodemask == nullptr){
102-
return std::make_pair(__LINE__, nodemask);
101+
if (nodemask == nullptr) {
102+
return std::make_pair(-1, nodemask);
103103
}
104-
104+
105105
int ret = get_mempolicy(nullptr, retrieved_nodemask->maskp,
106106
nodemask->size, addr, MPOL_F_ADDR);
107107

108108
if (ret != 0) {
109-
return std::make_pair(__LINE__, retrieved_nodemask);
109+
return std::make_pair(-1, retrieved_nodemask);
110110
}
111-
111+
112112
return std::pair(0, retrieved_nodemask);
113113
}
114114

@@ -263,10 +263,9 @@ struct testNumaOnEachCpu : testNuma, testing::WithParamInterface<int> {
263263
int cpuNumber = this->GetParam();
264264

265265
if (cpuNumber < 0) {
266-
GTEST_FAIL() << "ret is not equal to 0 in " << __FILE__ << ": " << -cpuNumber;
266+
GTEST_FAIL() << "get_available_cpus(): sched_getaffinity() return value is not equal to 0";
267267
}
268268
}
269-
270269
};
271270

272271
INSTANTIATE_TEST_SUITE_P(testNumaNodesAllocationsAllCpus, testNumaOnEachCpu,
@@ -302,7 +301,6 @@ TEST_P(testNumaOnEachCpu, checkModePreferredEmptyNodeset) {
302301
// Verify we're on the expected CPU
303302
int cpu_check = sched_getcpu();
304303
ASSERT_EQ(cpu, cpu_check);
305-
306304

307305
int numa_node_number = numa_node_of_cpu(cpu);
308306
printf("Got CPU: %d, got numa node: %d\n", cpu, numa_node_number);
@@ -418,14 +416,12 @@ TEST_F(testNuma, checkModeInterleave) {
418416
EXPECT_NODE_EQ((char *)ptr + page_size * i, numa_nodes[index]);
419417
}
420418

421-
// bitmask *retrieved_nodemask = retrieve_nodemask(ptr);
422-
auto[fileLine, retrieved_nodemask] = retrieve_nodemask(ptr);
419+
auto [fileLine, retrieved_nodemask] = retrieve_nodemask(ptr);
423420
if (fileLine != 0) {
424421
if (retrieved_nodemask == nullptr) {
425-
GTEST_FAIL() << "retrieved_nodemask is nullptr " << __FILE__ << ": " << fileLine;
426-
}
427-
else {
428-
GTEST_FAIL() << "ret is not equal to 0 " << __FILE__ << ": " << fileLine;
422+
GTEST_FAIL() << "retrieve_nodemask(): numa_allocate_nodemask() returned nullptr";
423+
} else {
424+
GTEST_FAIL() << "retrieve_nodemask(): get_mempolicy() return value is not equal to 0";
429425
}
430426
}
431427
int ret = numa_bitmask_equal(retrieved_nodemask, nodemask);

0 commit comments

Comments
 (0)