Skip to content

Commit 8b94bde

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 ff242b7 commit 8b94bde

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

test/ipcFixtures.hpp

Lines changed: 14 additions & 8 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
pool.reset(nullptr);
224230
EXPECT_EQ(stat.getCount, 1);
@@ -282,7 +288,7 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
282288

283289
for (size_t i = 0; i < NUM_ALLOCS; ++i) {
284290
umf_result_t ret = umfFree(ptrs[i]);
285-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
291+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
286292
}
287293
}
288294

@@ -308,7 +314,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
308314
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
309315

310316
ret = umfPoolFree(pool.get(), ptr);
311-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
317+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
312318

313319
ptr = umfPoolMalloc(pool.get(), SIZE);
314320
ASSERT_NE(ptr, nullptr);
@@ -330,7 +336,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
330336
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
331337

332338
ret = umfPoolFree(pool.get(), ptr);
333-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
339+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
334340

335341
pool.reset(nullptr);
336342
EXPECT_EQ(stat.allocCount, stat.getCount);
@@ -382,7 +388,7 @@ TEST_P(umfIpcTest, openInTwoPools) {
382388
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
383389

384390
ret = umfPoolFree(pool1.get(), ptr);
385-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
391+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
386392

387393
pool1.reset(nullptr);
388394
pool2.reset(nullptr);
@@ -433,7 +439,7 @@ TEST_P(umfIpcTest, ConcurrentGetPutHandles) {
433439

434440
for (void *ptr : ptrs) {
435441
umf_result_t ret = umfPoolFree(pool.get(), ptr);
436-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
442+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
437443
}
438444

439445
pool.reset(nullptr);
@@ -495,7 +501,7 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
495501

496502
for (void *ptr : ptrs) {
497503
umf_result_t ret = umfPoolFree(pool.get(), ptr);
498-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
504+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
499505
}
500506

501507
pool.reset(nullptr);

0 commit comments

Comments
 (0)