Skip to content

Commit a171a48

Browse files
committed
Enable running umfIpcTest tests when free() is not supported
Some memory providers (currently the devdax and the file providers) do not support the free() operation (free() always returns the UMF_RESULT_ERROR_NOT_SUPPORTED error). Add the UMF_TEST_PROVIDER_FREE_NOT_SUPPORTED define and the get_umf_result_of_free macro() to ipcFixtures.hpp to enable running umfIpcTest tests when free() is not supported. Signed-off-by: Lukasz Dorau <[email protected]>
1 parent e6d4602 commit a171a48

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

test/ipcFixtures.hpp

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
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+
2228
class 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

169175
TEST_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
void *ptr1 = umfPoolMalloc(pool.get(), SIZE);
224230
EXPECT_NE(ptr1, nullptr);
@@ -230,10 +236,10 @@ TEST_P(umfIpcTest, BasicFlow) {
230236
memAccessor->copy(ptr1, ptr2, SIZE);
231237

232238
ret = umfPoolFree(pool.get(), ptr1);
233-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
239+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
234240

235241
ret = umfPoolFree(pool.get(), ptr2);
236-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
242+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
237243

238244
pool.reset(nullptr);
239245
EXPECT_EQ(stat.getCount, 1);
@@ -297,7 +303,7 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
297303

298304
for (size_t i = 0; i < NUM_ALLOCS; ++i) {
299305
umf_result_t ret = umfFree(ptrs[i]);
300-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
306+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
301307
}
302308
}
303309

@@ -323,7 +329,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
323329
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
324330

325331
ret = umfPoolFree(pool.get(), ptr);
326-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
332+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
327333

328334
ptr = umfPoolMalloc(pool.get(), SIZE);
329335
ASSERT_NE(ptr, nullptr);
@@ -341,7 +347,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
341347
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
342348

343349
ret = umfPoolFree(pool.get(), ptr);
344-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
350+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
345351

346352
void *ptr1 = umfPoolMalloc(pool.get(), SIZE);
347353
ASSERT_NE(ptr1, nullptr);
@@ -353,10 +359,10 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
353359
memAccessor->copy(ptr1, ptr2, SIZE);
354360

355361
ret = umfPoolFree(pool.get(), ptr1);
356-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
362+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
357363

358364
ret = umfPoolFree(pool.get(), ptr2);
359-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
365+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
360366

361367
pool.reset(nullptr);
362368
EXPECT_EQ(stat.getCount, stat.putCount);
@@ -407,7 +413,7 @@ TEST_P(umfIpcTest, openInTwoPools) {
407413
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
408414

409415
ret = umfPoolFree(pool1.get(), ptr);
410-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
416+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
411417

412418
pool1.reset(nullptr);
413419
pool2.reset(nullptr);
@@ -458,7 +464,7 @@ TEST_P(umfIpcTest, ConcurrentGetPutHandles) {
458464

459465
for (void *ptr : ptrs) {
460466
umf_result_t ret = umfPoolFree(pool.get(), ptr);
461-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
467+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
462468
}
463469

464470
pool.reset(nullptr);
@@ -520,7 +526,7 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
520526

521527
for (void *ptr : ptrs) {
522528
umf_result_t ret = umfPoolFree(pool.get(), ptr);
523-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
529+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
524530
}
525531

526532
pool.reset(nullptr);

0 commit comments

Comments
 (0)