Skip to content

Commit 9d1b51b

Browse files
committed
Enable IPC tests for OS provider with disjoint pool
1 parent a317925 commit 9d1b51b

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

test/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,12 @@ if(LINUX AND (NOT UMF_DISABLE_HWLOC)) # OS-specific functions are implemented
186186
NAME provider_os_memory
187187
SRCS provider_os_memory.cpp
188188
LIBS ${UMF_UTILS_FOR_TEST})
189+
if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
190+
target_compile_definitions(umf_test-provider_os_memory
191+
PRIVATE UMF_POOL_DISJOINT_ENABLED=1)
192+
target_link_libraries(umf_test-provider_os_memory PRIVATE disjoint_pool)
193+
endif()
194+
189195
add_umf_test(
190196
NAME provider_os_memory_multiple_numa_nodes
191197
SRCS provider_os_memory_multiple_numa_nodes.cpp

test/provider_os_memory.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
#include "base.hpp"
66

77
#include "cpp_helpers.hpp"
8+
#include "ipcFixtures.hpp"
89

910
#include <umf/memory_provider.h>
11+
#include <umf/pools/pool_disjoint.h>
1012
#include <umf/providers/provider_os_memory.h>
1113

1214
using umf_test::test;
@@ -326,3 +328,34 @@ TEST_P(umfProviderTest, purge_force_INVALID_POINTER) {
326328
verify_last_native_error(provider.get(),
327329
UMF_OS_RESULT_ERROR_PURGE_FORCE_FAILED);
328330
}
331+
332+
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(umfIpcTest);
333+
334+
umf_os_memory_provider_params_t osMemoryProviderParamsShared() {
335+
auto params = umfOsMemoryProviderParamsDefault();
336+
params.visibility = UMF_MEM_MAP_SHARED;
337+
return params;
338+
}
339+
auto os_params = osMemoryProviderParamsShared();
340+
341+
HostMemoryAccessor hostAccessor;
342+
343+
umf_disjoint_pool_params_t disjointPoolParams() {
344+
umf_disjoint_pool_params_t params = umfDisjointPoolParamsDefault();
345+
params.SlabMinSize = 4096;
346+
params.MaxPoolableSize = 4096;
347+
params.Capacity = 4;
348+
params.MinBucketSize = 64;
349+
return params;
350+
}
351+
umf_disjoint_pool_params_t disjointParams = disjointPoolParams();
352+
353+
static std::vector<ipcTestParams> ipcTestParamsList = {
354+
#if (defined UMF_POOL_DISJOINT_ENABLED)
355+
{umfDisjointPoolOps(), &disjointParams, umfOsMemoryProviderOps(),
356+
&os_params, &hostAccessor},
357+
#endif
358+
};
359+
360+
INSTANTIATE_TEST_SUITE_P(osProviderTest, umfIpcTest,
361+
::testing::ValuesIn(ipcTestParamsList));

test/test_valgrind.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ for test in $(ls -1 umf_test-*); do
9191
umf_test-memspace_host_all)
9292
FILTER='--gtest_filter="-*allocsSpreadAcrossAllNumaNodes"'
9393
;;
94+
umf_test-provider_os_memory)
95+
FILTER='--gtest_filter="-osProviderTest/umfIpcTest*"'
96+
;;
9497
umf_test-provider_os_memory_config)
9598
FILTER='--gtest_filter="-*protection_flag_none:*protection_flag_read:*providerConfigTestNumaMode*"'
9699
;;

0 commit comments

Comments
 (0)