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 // Test if umfCloseIPCHandle() did not corrupt the pool
224230 // and if umfPoolMalloc() works correctly after umfCloseIPCHandle().
@@ -230,7 +236,7 @@ TEST_P(umfIpcTest, BasicFlow) {
230236 memAccessor->fill (ptr, SIZE, &pattern, sizeof (pattern));
231237
232238 ret = umfPoolFree (pool.get (), ptr);
233- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
239+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
234240
235241 pool.reset (nullptr );
236242 EXPECT_EQ (stat.getCount , 1 );
@@ -294,7 +300,7 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
294300
295301 for (size_t i = 0 ; i < NUM_ALLOCS; ++i) {
296302 umf_result_t ret = umfFree (ptrs[i]);
297- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
303+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
298304 }
299305}
300306
@@ -320,7 +326,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
320326 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
321327
322328 ret = umfPoolFree (pool.get (), ptr);
323- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
329+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
324330
325331 ptr = umfPoolMalloc (pool.get (), SIZE);
326332 ASSERT_NE (ptr, nullptr );
@@ -338,7 +344,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
338344 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
339345
340346 ret = umfPoolFree (pool.get (), ptr);
341- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
347+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
342348
343349 // Test if umfCloseIPCHandle() did not corrupt the pool
344350 // and if umfPoolMalloc() works correctly after umfCloseIPCHandle().
@@ -350,7 +356,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
350356 memAccessor->fill (ptr, SIZE, &pattern, sizeof (pattern));
351357
352358 ret = umfPoolFree (pool.get (), ptr);
353- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
359+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
354360
355361 pool.reset (nullptr );
356362 EXPECT_EQ (stat.getCount , stat.putCount );
@@ -401,7 +407,7 @@ TEST_P(umfIpcTest, openInTwoPools) {
401407 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
402408
403409 ret = umfPoolFree (pool1.get (), ptr);
404- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
410+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
405411
406412 pool1.reset (nullptr );
407413 pool2.reset (nullptr );
@@ -452,7 +458,7 @@ TEST_P(umfIpcTest, ConcurrentGetPutHandles) {
452458
453459 for (void *ptr : ptrs) {
454460 umf_result_t ret = umfPoolFree (pool.get (), ptr);
455- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
461+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
456462 }
457463
458464 pool.reset (nullptr );
@@ -514,7 +520,7 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
514520
515521 for (void *ptr : ptrs) {
516522 umf_result_t ret = umfPoolFree (pool.get (), ptr);
517- EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
523+ EXPECT_EQ (ret, get_umf_result_of_free ( UMF_RESULT_SUCCESS) );
518524 }
519525
520526 pool.reset (nullptr );
0 commit comments