Skip to content

Commit e08e311

Browse files
authored
Merge pull request #876 from ldorau/Replace_MALLOC_PROVIDER_OPS_with_BA_GLOBAL_PROVIDER_OPS
Replace `MALLOC_PROVIDER_OPS` with `BA_GLOBAL_PROVIDER_OPS`
2 parents f607b03 + f547820 commit e08e311

File tree

9 files changed

+64
-43
lines changed

9 files changed

+64
-43
lines changed

test/CMakeLists.txt

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,20 @@ if(UMF_POOL_JEMALLOC_ENABLED)
154154
set(LIB_JEMALLOC_POOL jemalloc_pool)
155155
endif()
156156

157+
if(UMF_BUILD_SHARED_LIBRARY)
158+
# if build as shared library, ba symbols won't be visible in tests
159+
set(BA_SOURCES_FOR_TEST ${BA_SOURCES})
160+
endif()
161+
157162
add_umf_test(NAME base SRCS base.cpp)
158163
add_umf_test(
159164
NAME memoryPool
160-
SRCS memoryPoolAPI.cpp malloc_compliance_tests.cpp
165+
SRCS memoryPoolAPI.cpp malloc_compliance_tests.cpp ${BA_SOURCES_FOR_TEST}
166+
LIBS ${UMF_UTILS_FOR_TEST})
167+
add_umf_test(
168+
NAME memoryProvider
169+
SRCS memoryProviderAPI.cpp ${BA_SOURCES_FOR_TEST}
161170
LIBS ${UMF_UTILS_FOR_TEST})
162-
add_umf_test(NAME memoryProvider SRCS memoryProviderAPI.cpp)
163171
add_umf_test(
164172
NAME logger
165173
SRCS utils/utils_log.cpp ${UMF_UTILS_SOURCES}
@@ -177,7 +185,10 @@ if(LINUX)
177185
LIBS ${UMF_UTILS_FOR_TEST})
178186
endif()
179187

180-
add_umf_test(NAME provider_coarse SRCS provider_coarse.cpp)
188+
add_umf_test(
189+
NAME provider_coarse
190+
SRCS provider_coarse.cpp ${BA_SOURCES_FOR_TEST}
191+
LIBS ${UMF_UTILS_FOR_TEST})
181192

182193
if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
183194
add_umf_test(
@@ -212,8 +223,11 @@ if(UMF_POOL_JEMALLOC_ENABLED AND (NOT UMF_DISABLE_HWLOC))
212223
endif()
213224

214225
if(UMF_POOL_SCALABLE_ENABLED AND (NOT UMF_DISABLE_HWLOC))
215-
add_umf_test(NAME scalable_pool SRCS pools/scalable_pool.cpp
216-
malloc_compliance_tests.cpp)
226+
add_umf_test(
227+
NAME scalable_pool
228+
SRCS pools/scalable_pool.cpp malloc_compliance_tests.cpp
229+
${BA_SOURCES_FOR_TEST}
230+
LIBS ${UMF_UTILS_FOR_TEST})
217231
endif()
218232

219233
if(LINUX AND (NOT UMF_DISABLE_HWLOC)) # OS-specific functions are implemented
@@ -227,7 +241,7 @@ if(LINUX AND (NOT UMF_DISABLE_HWLOC)) # OS-specific functions are implemented
227241

228242
add_umf_test(
229243
NAME provider_os_memory
230-
SRCS provider_os_memory.cpp
244+
SRCS provider_os_memory.cpp ${BA_SOURCES_FOR_TEST}
231245
LIBS ${UMF_UTILS_FOR_TEST})
232246
if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
233247
target_compile_definitions(umf_test-provider_os_memory
@@ -281,7 +295,7 @@ if(LINUX AND (NOT UMF_DISABLE_HWLOC)) # OS-specific functions are implemented
281295
LIBS ${UMF_UTILS_FOR_TEST})
282296
add_umf_test(
283297
NAME provider_devdax_memory_ipc
284-
SRCS provider_devdax_memory_ipc.cpp
298+
SRCS provider_devdax_memory_ipc.cpp ${BA_SOURCES_FOR_TEST}
285299
LIBS ${UMF_UTILS_FOR_TEST} ${LIB_JEMALLOC_POOL})
286300
add_umf_test(
287301
NAME provider_file_memory
@@ -303,11 +317,15 @@ if(LINUX AND (NOT UMF_DISABLE_HWLOC)) # OS-specific functions are implemented
303317
# This test requires Linux-only file memory provider
304318
if(UMF_POOL_SCALABLE_ENABLED)
305319
add_umf_test(
306-
NAME scalable_coarse_file SRCS pools/scalable_coarse_file.cpp
307-
malloc_compliance_tests.cpp)
320+
NAME scalable_coarse_file
321+
SRCS pools/scalable_coarse_file.cpp malloc_compliance_tests.cpp
322+
${BA_SOURCES_FOR_TEST}
323+
LIBS ${UMF_UTILS_FOR_TEST})
308324
add_umf_test(
309-
NAME scalable_coarse_devdax SRCS pools/scalable_coarse_devdax.cpp
310-
malloc_compliance_tests.cpp)
325+
NAME scalable_coarse_devdax
326+
SRCS pools/scalable_coarse_devdax.cpp malloc_compliance_tests.cpp
327+
${BA_SOURCES_FOR_TEST}
328+
LIBS ${UMF_UTILS_FOR_TEST})
311329
endif()
312330

313331
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND UMF_BUILD_FUZZTESTS)
@@ -322,13 +340,15 @@ if(UMF_BUILD_GPU_TESTS AND UMF_BUILD_LEVEL_ZERO_PROVIDER)
322340
add_umf_test(
323341
NAME provider_level_zero
324342
SRCS providers/provider_level_zero.cpp providers/level_zero_helpers.cpp
343+
${BA_SOURCES_FOR_TEST}
325344
LIBS ${UMF_UTILS_FOR_TEST} ze_loader)
326345
target_include_directories(umf_test-provider_level_zero
327346
PRIVATE ${LEVEL_ZERO_INCLUDE_DIRS})
328347

329348
add_umf_test(
330349
NAME provider_level_zero_dlopen
331350
SRCS providers/provider_level_zero.cpp providers/level_zero_helpers.cpp
351+
${BA_SOURCES_FOR_TEST}
332352
LIBS ${UMF_UTILS_FOR_TEST})
333353
target_compile_definitions(umf_test-provider_level_zero_dlopen
334354
PUBLIC USE_DLOPEN=1)
@@ -344,6 +364,7 @@ if(UMF_BUILD_GPU_TESTS AND UMF_BUILD_CUDA_PROVIDER)
344364
add_umf_test(
345365
NAME provider_cuda
346366
SRCS providers/provider_cuda.cpp providers/cuda_helpers.cpp
367+
${BA_SOURCES_FOR_TEST}
347368
LIBS ${UMF_UTILS_FOR_TEST} cuda)
348369
target_include_directories(umf_test-provider_cuda
349370
PRIVATE ${CUDA_INCLUDE_DIRS})
@@ -353,6 +374,7 @@ if(UMF_BUILD_GPU_TESTS AND UMF_BUILD_CUDA_PROVIDER)
353374
add_umf_test(
354375
NAME provider_cuda_dlopen
355376
SRCS providers/provider_cuda.cpp providers/cuda_helpers.cpp
377+
${BA_SOURCES_FOR_TEST}
356378
LIBS ${UMF_UTILS_FOR_TEST})
357379
target_compile_definitions(umf_test-provider_cuda_dlopen
358380
PUBLIC USE_DLOPEN=1)
@@ -366,11 +388,6 @@ if(UMF_BUILD_GPU_TESTS AND UMF_BUILD_CUDA_PROVIDER)
366388
endif()
367389
endif()
368390

369-
if(UMF_BUILD_SHARED_LIBRARY)
370-
# if build as shared library, ba symbols won't be visible in tests
371-
set(BA_SOURCES_FOR_TEST ${BA_SOURCES})
372-
endif()
373-
374391
add_umf_test(
375392
NAME base_alloc
376393
SRCS ${BA_SOURCES_FOR_TEST} test_base_alloc.cpp
@@ -406,7 +423,10 @@ if(UMF_PROXY_LIB_ENABLED
406423
PUBLIC UMF_PROXY_LIB_ENABLED=1)
407424
endif()
408425

409-
add_umf_test(NAME ipc SRCS ipcAPI.cpp)
426+
add_umf_test(
427+
NAME ipc
428+
SRCS ipcAPI.cpp ${BA_SOURCES_FOR_TEST}
429+
LIBS ${UMF_UTILS_FOR_TEST})
410430

411431
add_umf_test(NAME ipc_negative SRCS ipc_negative.cpp)
412432

test/common/provider.hpp

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <umf/memory_provider.h>
1515

1616
#include "base.hpp"
17+
#include "base_alloc_global.h"
1718
#include "cpp_helpers.hpp"
1819
#include "test_helpers.h"
1920

@@ -98,7 +99,7 @@ typedef struct provider_base_t {
9899
umf_memory_provider_ops_t BASE_PROVIDER_OPS =
99100
umf::providerMakeCOps<provider_base_t, void>();
100101

101-
struct provider_malloc : public provider_base_t {
102+
struct provider_ba_global : public provider_base_t {
102103
umf_result_t alloc(size_t size, size_t align, void **ptr) noexcept {
103104
if (!align) {
104105
align = 8;
@@ -110,31 +111,23 @@ struct provider_malloc : public provider_base_t {
110111
// error because of this issue.
111112
size_t aligned_size = ALIGN_UP(size, align);
112113

113-
#ifdef _WIN32
114-
*ptr = _aligned_malloc(aligned_size, align);
115-
#else
116-
*ptr = ::aligned_alloc(align, aligned_size);
117-
#endif
114+
*ptr = umf_ba_global_aligned_alloc(aligned_size, align);
118115

119116
return (*ptr) ? UMF_RESULT_SUCCESS
120117
: UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
121118
}
122119
umf_result_t free(void *ptr, size_t) noexcept {
123-
#ifdef _WIN32
124-
_aligned_free(ptr);
125-
#else
126-
::free(ptr);
127-
#endif
120+
umf_ba_global_free(ptr);
128121
return UMF_RESULT_SUCCESS;
129122
}
130-
const char *get_name() noexcept { return "malloc"; }
123+
const char *get_name() noexcept { return "umf_ba_global"; }
131124
};
132125

133-
umf_memory_provider_ops_t MALLOC_PROVIDER_OPS =
134-
umf::providerMakeCOps<provider_malloc, void>();
126+
umf_memory_provider_ops_t BA_GLOBAL_PROVIDER_OPS =
127+
umf::providerMakeCOps<provider_ba_global, void>();
135128

136129
struct provider_mock_out_of_mem : public provider_base_t {
137-
provider_malloc helper_prov;
130+
provider_ba_global helper_prov;
138131
int allocNum = 0;
139132
umf_result_t initialize(int *inAllocNum) noexcept {
140133
allocNum = *inAllocNum;

test/disjointCoarseMallocPool.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ using umf_test::test;
1919
#define GetStats umfCoarseMemoryProviderGetStats
2020

2121
umf_memory_provider_ops_t UMF_MALLOC_MEMORY_PROVIDER_OPS =
22-
umf::providerMakeCOps<umf_test::provider_malloc, void>();
22+
umf::providerMakeCOps<umf_test::provider_ba_global, void>();
2323

2424
struct CoarseWithMemoryStrategyTest
2525
: umf_test::test,

test/ipcAPI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ struct provider_mock_ipc : public umf_test::provider_base_t {
2424
size_t size;
2525
};
2626

27-
umf_test::provider_malloc helper_prov;
27+
umf_test::provider_ba_global helper_prov;
2828
static allocations_mutex_type alloc_mutex;
2929
static allocations_map_type allocations;
3030

test/memoryPoolAPI.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ TEST_F(test, BasicPoolByPtrTest) {
156156

157157
umf_memory_provider_handle_t provider;
158158
umf_result_t ret =
159-
umfMemoryProviderCreate(&MALLOC_PROVIDER_OPS, NULL, &provider);
159+
umfMemoryProviderCreate(&BA_GLOBAL_PROVIDER_OPS, NULL, &provider);
160160
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
161161
auto pool =
162162
wrapPoolUnique(createPoolChecked(umfProxyPoolOps(), provider, nullptr,
@@ -184,13 +184,13 @@ INSTANTIATE_TEST_SUITE_P(
184184
&UMF_NULL_PROVIDER_OPS, nullptr,
185185
nullptr},
186186
poolCreateExtParams{umfProxyPoolOps(), nullptr,
187-
&MALLOC_PROVIDER_OPS, nullptr,
187+
&BA_GLOBAL_PROVIDER_OPS, nullptr,
188188
nullptr}));
189189

190190
INSTANTIATE_TEST_SUITE_P(mallocMultiPoolTest, umfMultiPoolTest,
191191
::testing::Values(poolCreateExtParams{
192-
umfProxyPoolOps(), nullptr, &MALLOC_PROVIDER_OPS,
193-
nullptr, nullptr}));
192+
umfProxyPoolOps(), nullptr,
193+
&BA_GLOBAL_PROVIDER_OPS, nullptr, nullptr}));
194194

195195
INSTANTIATE_TEST_SUITE_P(umfPoolWithCreateFlagsTest, umfPoolWithCreateFlagsTest,
196196
::testing::Values(0,

test/pools/disjoint_pool.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ auto defaultPoolConfig = poolConfig();
148148
INSTANTIATE_TEST_SUITE_P(disjointPoolTests, umfPoolTest,
149149
::testing::Values(poolCreateExtParams{
150150
umfDisjointPoolOps(), (void *)&defaultPoolConfig,
151-
&MALLOC_PROVIDER_OPS, nullptr, nullptr}));
151+
&BA_GLOBAL_PROVIDER_OPS, nullptr, nullptr}));
152152

153153
INSTANTIATE_TEST_SUITE_P(
154154
disjointPoolTests, umfMemTest,
@@ -161,4 +161,4 @@ INSTANTIATE_TEST_SUITE_P(
161161
INSTANTIATE_TEST_SUITE_P(disjointMultiPoolTests, umfMultiPoolTest,
162162
::testing::Values(poolCreateExtParams{
163163
umfDisjointPoolOps(), (void *)&defaultPoolConfig,
164-
&MALLOC_PROVIDER_OPS, nullptr, nullptr}));
164+
&BA_GLOBAL_PROVIDER_OPS, nullptr, nullptr}));

test/provider_coarse.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ using umf_test::test;
1717

1818
#define GetStats umfCoarseMemoryProviderGetStats
1919

20-
#define UPSTREAM_NAME "malloc"
20+
#define UPSTREAM_NAME "umf_ba_global"
2121
#define BASE_NAME "coarse"
2222
#define COARSE_NAME BASE_NAME " (" UPSTREAM_NAME ")"
2323

2424
umf_memory_provider_ops_t UMF_MALLOC_MEMORY_PROVIDER_OPS =
25-
umf::providerMakeCOps<umf_test::provider_malloc, void>();
25+
umf::providerMakeCOps<umf_test::provider_ba_global, void>();
2626

2727
struct CoarseWithMemoryStrategyTest
2828
: umf_test::test,

test/providers/ipc_cuda_prov_common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ void memcopy(void *dst, const void *src, size_t size, void *context) {
1616
cuda_memory_provider_params_t *cu_params =
1717
(cuda_memory_provider_params_t *)context;
1818
int ret = cuda_copy(cu_params->cuda_context_handle,
19-
cu_params->cuda_device_handle, dst, src, size);
19+
cu_params->cuda_device_handle, dst, (void *)src, size);
2020
if (ret != 0) {
2121
fprintf(stderr, "cuda_copy failed with error %d\n", ret);
2222
}

test/test_valgrind.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,14 @@ for test in $(ls -1 umf_test-*); do
8484
# skip tests incompatible with valgrind
8585
FILTER=""
8686
case $test in
87+
umf_test-disjointPool)
88+
if [ "$TOOL" = "helgrind" ]; then
89+
# skip because of the assert in helgrind:
90+
# Helgrind: hg_main.c:308 (lockN_acquire_reader): Assertion 'lk->kind == LK_rdwr' failed.
91+
echo "- SKIPPED (helgrind only)"
92+
continue;
93+
fi
94+
;;
8795
umf_test-ipc_os_prov_*)
8896
echo "- SKIPPED"
8997
continue; # skip testing helper binaries used by the ipc_os_prov_* tests

0 commit comments

Comments
 (0)