Skip to content

Commit 3c52781

Browse files
authored
Merge pull request #245 from kswiecicki/memspace-default-tests
Expand HOST ALL memspace tests
2 parents 3d53e39 + 2483e74 commit 3c52781

File tree

6 files changed

+346
-201
lines changed

6 files changed

+346
-201
lines changed

test/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,13 @@ if(UMF_BUILD_OS_MEMORY_PROVIDER AND LINUX) # OS-specific functions are implement
124124
SRCS provider_os_memory_multiple_numa_nodes.cpp
125125
LIBS umf_utils ${LIBNUMA_LIBRARIES})
126126
add_umf_test(NAME memspace_numa
127-
SRCS memspace_numa.cpp
127+
SRCS memspaces/memspace_numa.cpp
128128
LIBS ${LIBNUMA_LIBRARIES})
129129
add_umf_test(NAME provider_os_memory_config
130130
SRCS provider_os_memory_config.cpp
131131
LIBS umf_utils ${LIBNUMA_LIBRARIES})
132132
add_umf_test(NAME memspace_host_all
133-
SRCS memspace_host_all.cpp
133+
SRCS memspaces/memspace_host_all.cpp
134134
LIBS ${LIBNUMA_LIBRARIES})
135135
endif()
136136

test/memspace_host_all.cpp

Lines changed: 0 additions & 65 deletions
This file was deleted.

test/memspace_numa.cpp

Lines changed: 0 additions & 134 deletions
This file was deleted.

test/memspaces/memspace_helpers.hpp

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
// Copyright (C) 2024 Intel Corporation
2+
// Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
3+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4+
5+
#ifndef UMF_MEMSPACE_HELPERS_HPP
6+
#define UMF_MEMSPACE_HELPERS_HPP
7+
8+
#include "base.hpp"
9+
#include "memspace_internal.h"
10+
#include "memspaces/memspace_numa.h"
11+
12+
#include <numa.h>
13+
#include <umf/providers/provider_os_memory.h>
14+
15+
#define SIZE_4K (4096UL)
16+
#define SIZE_4M (SIZE_4K * 1024UL)
17+
18+
struct numaNodesTest : ::umf_test::test {
19+
void SetUp() override {
20+
::umf_test::test::SetUp();
21+
22+
if (numa_available() == -1 || numa_all_nodes_ptr == nullptr) {
23+
GTEST_FAIL() << "Failed to initialize libnuma";
24+
}
25+
26+
int maxNode = numa_max_node();
27+
if (maxNode < 0) {
28+
GTEST_FAIL() << "No available numa nodes";
29+
}
30+
31+
for (int i = 0; i <= maxNode; i++) {
32+
if (numa_bitmask_isbitset(numa_all_nodes_ptr, i)) {
33+
nodeIds.emplace_back(i);
34+
maxNodeId = i;
35+
}
36+
}
37+
}
38+
39+
std::vector<size_t> nodeIds;
40+
unsigned long maxNodeId = 0;
41+
};
42+
43+
struct memspaceNumaTest : ::numaNodesTest {
44+
void SetUp() override {
45+
::numaNodesTest::SetUp();
46+
47+
enum umf_result_t ret = umfMemspaceCreateFromNumaArray(
48+
nodeIds.data(), nodeIds.size(), &hMemspace);
49+
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
50+
ASSERT_NE(hMemspace, nullptr);
51+
}
52+
53+
void TearDown() override {
54+
::numaNodesTest::TearDown();
55+
if (hMemspace) {
56+
umfMemspaceDestroy(hMemspace);
57+
}
58+
}
59+
60+
umf_memspace_handle_t hMemspace = nullptr;
61+
};
62+
63+
struct memspaceNumaProviderTest : ::memspaceNumaTest {
64+
void SetUp() override {
65+
::memspaceNumaTest::SetUp();
66+
67+
umf_result_t ret =
68+
umfMemoryProviderCreateFromMemspace(hMemspace, nullptr, &hProvider);
69+
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
70+
ASSERT_NE(hProvider, nullptr);
71+
}
72+
73+
void TearDown() override {
74+
::memspaceNumaTest::TearDown();
75+
76+
umfMemoryProviderDestroy(hProvider);
77+
}
78+
79+
umf_memory_provider_handle_t hProvider = nullptr;
80+
};
81+
82+
struct memspaceHostAllTest : ::numaNodesTest {
83+
void SetUp() override {
84+
::numaNodesTest::SetUp();
85+
86+
hMemspace = umfMemspaceHostAllGet();
87+
ASSERT_NE(hMemspace, nullptr);
88+
}
89+
90+
umf_memspace_handle_t hMemspace = nullptr;
91+
};
92+
93+
struct memspaceHostAllProviderTest : ::memspaceHostAllTest {
94+
void SetUp() override {
95+
::memspaceHostAllTest::SetUp();
96+
97+
umf_result_t ret =
98+
umfMemoryProviderCreateFromMemspace(hMemspace, nullptr, &hProvider);
99+
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
100+
ASSERT_NE(hProvider, nullptr);
101+
}
102+
103+
void TearDown() override {
104+
::memspaceHostAllTest::TearDown();
105+
106+
umfMemoryProviderDestroy(hProvider);
107+
}
108+
109+
umf_memory_provider_handle_t hProvider = nullptr;
110+
};
111+
112+
#endif /* UMF_MEMSPACE_HELPERS_HPP */

0 commit comments

Comments
 (0)