1919#include < numeric>
2020#include < tuple>
2121
22+ #ifdef UMF_TEST_PROVIDER_FREE_NOT_SUPPORTED
23+ #define get_umf_result_of_free (expected_result ) UMF_RESULT_ERROR_NOT_SUPPORTED
24+ #else
25+ #define get_umf_result_of_free (expected_result ) (expected_result)
26+ #endif
27+
2228class MemoryAccessor {
2329 public:
2430 virtual void fill (void *ptr, size_t size, const void *pattern,
@@ -163,7 +169,7 @@ TEST_P(umfIpcTest, GetIPCHandleInvalidArgs) {
163169 EXPECT_EQ (ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
164170
165171 ret = umfFree (ptr);
166- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
172+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
167173}
168174
169175TEST_P (umfIpcTest, BasicFlow) {
@@ -218,15 +224,15 @@ TEST_P(umfIpcTest, BasicFlow) {
218224 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
219225
220226 ret = umfPoolFree (pool.get (), ptr);
221- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
227+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
222228
223229 ptr = (int *)umfPoolMalloc (pool.get (), SIZE * sizeof (int ));
224230 EXPECT_NE (ptr, nullptr );
225231
226232 memset (ptr, 0xAB , SIZE * sizeof (int ));
227233
228234 ret = umfPoolFree (pool.get (), ptr);
229- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
235+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
230236
231237 pool.reset (nullptr );
232238 EXPECT_EQ (stat.getCount , 1 );
@@ -290,7 +296,7 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
290296
291297 for (size_t i = 0 ; i < NUM_ALLOCS; ++i) {
292298 umf_result_t ret = umfFree (ptrs[i]);
293- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
299+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
294300 }
295301}
296302
@@ -316,7 +322,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
316322 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
317323
318324 ret = umfPoolFree (pool.get (), ptr);
319- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
325+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
320326
321327 ptr = umfPoolMalloc (pool.get (), SIZE);
322328 ASSERT_NE (ptr, nullptr );
@@ -334,13 +340,13 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
334340 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
335341
336342 ret = umfPoolFree (pool.get (), ptr);
337- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
343+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
338344
339345 ptr = umfPoolMalloc (pool.get (), SIZE);
340346 ASSERT_NE (ptr, nullptr );
341347
342348 ret = umfPoolFree (pool.get (), ptr);
343- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
349+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
344350
345351 pool.reset (nullptr );
346352 EXPECT_EQ (stat.getCount , stat.putCount );
@@ -391,7 +397,7 @@ TEST_P(umfIpcTest, openInTwoPools) {
391397 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
392398
393399 ret = umfPoolFree (pool1.get (), ptr);
394- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
400+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
395401
396402 pool1.reset (nullptr );
397403 pool2.reset (nullptr );
@@ -442,7 +448,7 @@ TEST_P(umfIpcTest, ConcurrentGetPutHandles) {
442448
443449 for (void *ptr : ptrs) {
444450 umf_result_t ret = umfPoolFree (pool.get (), ptr);
445- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
451+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
446452 }
447453
448454 pool.reset (nullptr );
@@ -504,7 +510,7 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
504510
505511 for (void *ptr : ptrs) {
506512 umf_result_t ret = umfPoolFree (pool.get (), ptr);
507- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
513+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
508514 }
509515
510516 pool.reset (nullptr );
0 commit comments