Skip to content

Commit b320aa2

Browse files
Merge pull request #820 from ldorau/Add_missing_tests_for_providers
Add missing base tests for providers
2 parents 67fcdc9 + 5073009 commit b320aa2

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

test/memoryProviderAPI.cpp

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,39 @@ TEST_F(test, memoryProviderOpsNullAllocationSplitAllocationMergeFields) {
146146
umfMemoryProviderDestroy(hProvider);
147147
}
148148

149+
TEST_F(test, memoryProviderOpsNullAllIPCFields) {
150+
umf_memory_provider_ops_t provider_ops = UMF_NULL_PROVIDER_OPS;
151+
provider_ops.ipc.get_ipc_handle_size = nullptr;
152+
provider_ops.ipc.get_ipc_handle = nullptr;
153+
provider_ops.ipc.put_ipc_handle = nullptr;
154+
provider_ops.ipc.open_ipc_handle = nullptr;
155+
provider_ops.ipc.close_ipc_handle = nullptr;
156+
157+
umf_memory_provider_handle_t hProvider;
158+
auto ret = umfMemoryProviderCreate(&provider_ops, nullptr, &hProvider);
159+
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
160+
161+
size_t size;
162+
ret = umfMemoryProviderGetIPCHandleSize(hProvider, &size);
163+
ASSERT_EQ(ret, UMF_RESULT_ERROR_NOT_SUPPORTED);
164+
165+
void *ptr = nullptr;
166+
void *providerIpcData = nullptr;
167+
ret = umfMemoryProviderGetIPCHandle(hProvider, ptr, size, providerIpcData);
168+
ASSERT_EQ(ret, UMF_RESULT_ERROR_NOT_SUPPORTED);
169+
170+
ret = umfMemoryProviderPutIPCHandle(hProvider, providerIpcData);
171+
ASSERT_EQ(ret, UMF_RESULT_ERROR_NOT_SUPPORTED);
172+
173+
ret = umfMemoryProviderOpenIPCHandle(hProvider, providerIpcData, &ptr);
174+
ASSERT_EQ(ret, UMF_RESULT_ERROR_NOT_SUPPORTED);
175+
176+
ret = umfMemoryProviderCloseIPCHandle(hProvider, ptr, size);
177+
ASSERT_EQ(ret, UMF_RESULT_ERROR_NOT_SUPPORTED);
178+
179+
umfMemoryProviderDestroy(hProvider);
180+
}
181+
149182
////////////////// Negative test cases /////////////////
150183

151184
TEST_F(test, memoryProviderCreateNullOps) {
@@ -256,6 +289,37 @@ TEST_F(test, memoryProviderOpsNullCloseIpcHandle) {
256289
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
257290
}
258291

292+
TEST_F(test, memoryProviderOpsNullAllocationSplitAllocationMergeNegative) {
293+
umf_memory_provider_ops_t provider_ops = UMF_NULL_PROVIDER_OPS;
294+
umf_memory_provider_handle_t hProvider;
295+
296+
auto ret = umfMemoryProviderCreate(&provider_ops, nullptr, &hProvider);
297+
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
298+
299+
ret = umfMemoryProviderAllocationSplit(hProvider, nullptr, 2 * 4096, 4096);
300+
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
301+
302+
ret =
303+
umfMemoryProviderAllocationMerge(hProvider, nullptr, nullptr, 2 * 4096);
304+
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
305+
306+
void *lowPtr = (void *)0xBAD;
307+
void *highPtr = (void *)((uintptr_t)lowPtr + 4096);
308+
size_t totalSize = 0;
309+
ret =
310+
umfMemoryProviderAllocationMerge(hProvider, lowPtr, highPtr, totalSize);
311+
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
312+
313+
totalSize = 4096;
314+
lowPtr = (void *)0xBAD;
315+
highPtr = (void *)((uintptr_t)lowPtr + 2 * totalSize);
316+
ret =
317+
umfMemoryProviderAllocationMerge(hProvider, lowPtr, highPtr, totalSize);
318+
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
319+
320+
umfMemoryProviderDestroy(hProvider);
321+
}
322+
259323
struct providerInitializeTest : umf_test::test,
260324
::testing::WithParamInterface<umf_result_t> {};
261325

0 commit comments

Comments
 (0)