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,7 +224,7 @@ 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);
224230 EXPECT_NE (ptr, nullptr );
@@ -228,7 +234,7 @@ TEST_P(umfIpcTest, BasicFlow) {
228234 memAccessor->fill (ptr, SIZE, &pattern, sizeof (pattern));
229235
230236 ret = umfPoolFree (pool.get (), ptr);
231- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
237+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
232238
233239 pool.reset (nullptr );
234240 EXPECT_EQ (stat.getCount , 1 );
@@ -292,7 +298,7 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
292298
293299 for (size_t i = 0 ; i < NUM_ALLOCS; ++i) {
294300 umf_result_t ret = umfFree (ptrs[i]);
295- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
301+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
296302 }
297303}
298304
@@ -318,7 +324,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
318324 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
319325
320326 ret = umfPoolFree (pool.get (), ptr);
321- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
327+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
322328
323329 ptr = umfPoolMalloc (pool.get (), SIZE);
324330 ASSERT_NE (ptr, nullptr );
@@ -336,7 +342,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
336342 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
337343
338344 ret = umfPoolFree (pool.get (), ptr);
339- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
345+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
340346
341347 ptr = umfPoolMalloc (pool.get (), SIZE);
342348 EXPECT_NE (ptr, nullptr );
@@ -346,7 +352,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
346352 memAccessor->fill (ptr, SIZE, &pattern, sizeof (pattern));
347353
348354 ret = umfPoolFree (pool.get (), ptr);
349- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
355+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
350356
351357 pool.reset (nullptr );
352358 EXPECT_EQ (stat.getCount , stat.putCount );
@@ -397,7 +403,7 @@ TEST_P(umfIpcTest, openInTwoPools) {
397403 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
398404
399405 ret = umfPoolFree (pool1.get (), ptr);
400- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
406+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
401407
402408 pool1.reset (nullptr );
403409 pool2.reset (nullptr );
@@ -448,7 +454,7 @@ TEST_P(umfIpcTest, ConcurrentGetPutHandles) {
448454
449455 for (void *ptr : ptrs) {
450456 umf_result_t ret = umfPoolFree (pool.get (), ptr);
451- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
457+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
452458 }
453459
454460 pool.reset (nullptr );
@@ -510,7 +516,7 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
510516
511517 for (void *ptr : ptrs) {
512518 umf_result_t ret = umfPoolFree (pool.get (), ptr);
513- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
519+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
514520 }
515521
516522 pool.reset (nullptr );
0 commit comments