|
9 | 9 |
|
10 | 10 | #include <atomic>
|
11 | 11 | #include <cstring>
|
12 |
| -#include <exception> |
13 |
| -#include <functional> // For std::ref |
14 |
| -#include <stdexcept> |
15 | 12 | #include <string>
|
16 | 13 | #include <thread>
|
17 |
| -#include <type_traits> |
18 | 14 | #include <vector>
|
19 | 15 |
|
20 | 16 | #include <umf.h>
|
|
23 | 19 | #include <umf/memory_pool.h>
|
24 | 20 | #include <umf/memory_provider.h>
|
25 | 21 | #include <umf/pools/pool_disjoint.h>
|
26 |
| -#include <umf/pools/pool_scalable.h> |
27 |
| -#include <umf/providers/provider_fixed_memory.h> |
28 | 22 | #include <umf/providers/provider_os_memory.h>
|
29 | 23 |
|
30 | 24 | #include "../common/base.hpp"
|
@@ -56,124 +50,6 @@ TEST_F(test, ctl_by_handle_os_provider) {
|
56 | 50 | umfMemoryProviderDestroy(hProvider);
|
57 | 51 | }
|
58 | 52 |
|
59 |
| -class Pool { |
60 |
| - public: |
61 |
| - Pool() : provider(NULL), pool(NULL) {} |
62 |
| - |
63 |
| - int instantiatePool(const umf_memory_pool_ops_t *pool_ops, |
64 |
| - const void *pool_params, |
65 |
| - umf_pool_create_flags_t flags = 0) { |
66 |
| - freeResources(); |
67 |
| - provider = create_memory_provider(); |
68 |
| - if (provider == NULL) { |
69 |
| - return -1; // Provider not supported |
70 |
| - } |
71 |
| - int ret = umfPoolCreate(pool_ops, provider, pool_params, flags, &pool); |
72 |
| - if (ret != UMF_RESULT_SUCCESS) { |
73 |
| - umfMemoryProviderDestroy(provider); |
74 |
| - provider = NULL; |
75 |
| - return -2; // Failed to create memory pool |
76 |
| - } |
77 |
| - return 0; // Success |
78 |
| - } |
79 |
| - |
80 |
| - // Template specialization for different types of reference value |
81 |
| - template <typename T> T getReferenceValue() { |
82 |
| - if constexpr (std::is_arithmetic_v<T>) { |
83 |
| - return 0xBAD; |
84 |
| - } else if constexpr (std::is_same_v<T, std::string>) { |
85 |
| - return "0xBAD"; |
86 |
| - } |
87 |
| - } |
88 |
| - |
89 |
| - template <typename T> |
90 |
| - void validateQuery(umf_result_t (*ctlApiFunction)(const char *name, |
91 |
| - void *arg, size_t, ...), |
92 |
| - const char *name, T expectedValue, |
93 |
| - umf_result_t expected) { |
94 |
| - T value = getReferenceValue<T>(); |
95 |
| - umf_result_t ret; |
96 |
| - char ret_buf[256] = {0}; |
97 |
| - if constexpr (std::is_same_v<T, std::string>) { |
98 |
| - strncpy(ret_buf, value.c_str(), sizeof(ret_buf) - 1); |
99 |
| - ret_buf[sizeof(ret_buf) - 1] = '\0'; // Ensure null-termination |
100 |
| - ret = ctlApiFunction(name, (void *)ret_buf, sizeof(ret_buf), pool); |
101 |
| - } else if constexpr (std::is_arithmetic_v<T>) { |
102 |
| - std::string value_str = std::to_string(value); |
103 |
| - strncpy(ret_buf, value_str.c_str(), sizeof(ret_buf) - 1); |
104 |
| - ret_buf[sizeof(ret_buf) - 1] = '\0'; // Ensure null-termination |
105 |
| - ret = ctlApiFunction(name, (void *)ret_buf, sizeof(ret_buf), pool); |
106 |
| - } else { |
107 |
| - ret = ctlApiFunction(name, &value, sizeof(value), pool); |
108 |
| - } |
109 |
| - |
110 |
| - ASSERT_EQ(ret, expected); |
111 |
| - if (ret == UMF_RESULT_SUCCESS) { |
112 |
| - ASSERT_EQ(ret_buf, expectedValue); |
113 |
| - } |
114 |
| - } |
115 |
| - |
116 |
| - template <typename T> |
117 |
| - void executeQuery(umf_result_t (*ctlApiFunction)(const char *name, |
118 |
| - void *arg, size_t, ...), |
119 |
| - const char *name, T value) { |
120 |
| - size_t value_len; |
121 |
| - if constexpr (std::is_arithmetic_v<T>) { |
122 |
| - value_len = sizeof(value); |
123 |
| - } else if constexpr (std::is_same_v<T, std::string>) { |
124 |
| - value_len = strlen(value.c_str()); |
125 |
| - } else if constexpr (std::is_same_v<T, const char *>) { |
126 |
| - value_len = strlen(value); |
127 |
| - } else { |
128 |
| - throw std::runtime_error("Unsupported type for value"); |
129 |
| - } |
130 |
| - umf_result_t ret = ctlApiFunction(name, (void *)value, value_len); |
131 |
| - ASSERT_EQ(ret, UMF_RESULT_SUCCESS); |
132 |
| - } |
133 |
| - |
134 |
| - void freeResources() { |
135 |
| - if (pool) { |
136 |
| - umfPoolDestroy(pool); |
137 |
| - pool = NULL; |
138 |
| - } |
139 |
| - if (provider) { |
140 |
| - umfMemoryProviderDestroy(provider); |
141 |
| - provider = NULL; |
142 |
| - } |
143 |
| - if (data) { |
144 |
| - free(data); |
145 |
| - data = nullptr; |
146 |
| - } |
147 |
| - } |
148 |
| - |
149 |
| - umf_memory_provider_handle_t provider; |
150 |
| - umf_memory_pool_handle_t pool; |
151 |
| - void *data = nullptr; |
152 |
| - |
153 |
| - private: |
154 |
| - // Create a memory provider |
155 |
| - umf_memory_provider_handle_t create_memory_provider() { |
156 |
| - const umf_memory_provider_ops_t *provider_ops = |
157 |
| - umfFixedMemoryProviderOps(); |
158 |
| - umf_fixed_memory_provider_params_handle_t params = NULL; |
159 |
| - |
160 |
| - data = malloc(1024 * 1024); |
161 |
| - int ret = |
162 |
| - umfFixedMemoryProviderParamsCreate(data, 1024 * 1024, ¶ms); |
163 |
| - if (ret != UMF_RESULT_SUCCESS) { |
164 |
| - return 0; |
165 |
| - } |
166 |
| - |
167 |
| - ret = umfMemoryProviderCreate(provider_ops, params, &provider); |
168 |
| - umfFixedMemoryProviderParamsDestroy(params); |
169 |
| - if (ret != UMF_RESULT_SUCCESS) { |
170 |
| - return 0; |
171 |
| - } |
172 |
| - |
173 |
| - return provider; |
174 |
| - } |
175 |
| -}; |
176 |
| - |
177 | 53 | class CtlTest : public ::testing::Test {
|
178 | 54 | public:
|
179 | 55 | CtlTest() {}
|
@@ -296,66 +172,6 @@ TEST_F(CtlTest, ctlDefaultPoolOverwrite) {
|
296 | 172 | });
|
297 | 173 | }
|
298 | 174 |
|
299 |
| -TEST_F(CtlTest, DISABLED_ctlNameValidation) { |
300 |
| - std::string name = "umf.pool.default.disjoint.name"; |
301 |
| - std::string value = "new_disjoint_pool_name"; |
302 |
| - umf_disjoint_pool_params_handle_t params = NULL; |
303 |
| - |
304 |
| - Pool p; |
305 |
| - try { |
306 |
| - p.executeQuery(umfCtlSet, name.c_str(), value.c_str()); |
307 |
| - umf_result_t res = umfDisjointPoolParamsCreate(¶ms); |
308 |
| - ASSERT_EQ(res, UMF_RESULT_SUCCESS); |
309 |
| - |
310 |
| - auto ret = p.instantiatePool(umfDisjointPoolOps(), params); |
311 |
| - ASSERT_EQ(ret, 0); |
312 |
| - |
313 |
| - p.validateQuery(umfCtlGet, "umf.pool.by_handle.{}.disjoint.name", |
314 |
| - std::move(value), UMF_RESULT_SUCCESS); |
315 |
| - } catch (...) { |
316 |
| - GTEST_FAIL() << "Unknown exception!"; |
317 |
| - } |
318 |
| - umfDisjointPoolParamsDestroy(params); |
319 |
| - p.freeResources(); |
320 |
| -} |
321 |
| - |
322 |
| -TEST_F(CtlTest, DISABLED_ctlSizeValidation) { |
323 |
| - std::string name = "umf.pool.default.disjoint.name"; |
324 |
| - std::string value = "1234567890"; |
325 |
| - umf_disjoint_pool_params_handle_t params = NULL; |
326 |
| - |
327 |
| - Pool p; |
328 |
| - try { |
329 |
| - p.executeQuery(umfCtlSet, name.c_str(), value.c_str()); |
330 |
| - umf_result_t res = umfDisjointPoolParamsCreate(¶ms); |
331 |
| - ASSERT_EQ(res, UMF_RESULT_SUCCESS); |
332 |
| - |
333 |
| - auto ret = p.instantiatePool(umfDisjointPoolOps(), params); |
334 |
| - ASSERT_EQ(ret, 0); |
335 |
| - |
336 |
| - char output[100] = {0}; |
337 |
| - umfCtlGet("umf.pool.default.disjoint.name", output, sizeof(output)); |
338 |
| - ASSERT_EQ(std::string(output), value); |
339 |
| - |
340 |
| - memset(output, 0, sizeof(output)); |
341 |
| - umfCtlGet("umf.pool.default.disjoint.name", output, value.size() / 2); |
342 |
| - auto half_value = value.substr(0, value.size() / 2); |
343 |
| - ASSERT_EQ(half_value, std::string(output)); |
344 |
| - } catch (...) { |
345 |
| - GTEST_FAIL() << "Unknown exception!"; |
346 |
| - } |
347 |
| - umfDisjointPoolParamsDestroy(params); |
348 |
| - p.freeResources(); |
349 |
| -} |
350 |
| - |
351 |
| -TEST_F(CtlTest, DISABLED_ctlExecInvalidSize) { |
352 |
| - std::string name = "umf.pool.default.disjoint.name"; |
353 |
| - ASSERT_EQ(umfCtlSet(name.c_str(), (void *)"test_value", 0), |
354 |
| - UMF_RESULT_ERROR_INVALID_ARGUMENT); |
355 |
| - ASSERT_EQ(umfCtlSet(name.c_str(), NULL, 10), |
356 |
| - UMF_RESULT_ERROR_INVALID_ARGUMENT); |
357 |
| -} |
358 |
| - |
359 | 175 | TEST_F(CtlTest, ctlDefaultMultithreadedProvider) {
|
360 | 176 | umf_test::run_in_fork([] {
|
361 | 177 | std::vector<std::thread> threads;
|
|
0 commit comments