Skip to content

Commit d3bdd1c

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 94fb26c commit d3bdd1c

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
@@ -20,6 +20,12 @@
2020
#include <numeric>
2121
#include <tuple>
2222

23+
#ifdef UMF_TEST_PROVIDER_FREE_NOT_SUPPORTED
24+
#define get_umf_result_of_free(expected_result) UMF_RESULT_ERROR_NOT_SUPPORTED
25+
#else
26+
#define get_umf_result_of_free(expected_result) (expected_result)
27+
#endif
28+
2329
class MemoryAccessor {
2430
public:
2531
virtual void fill(void *ptr, size_t size, const void *pattern,
@@ -172,7 +178,7 @@ TEST_P(umfIpcTest, GetIPCHandleInvalidArgs) {
172178
EXPECT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
173179

174180
ret = umfFree(ptr);
175-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
181+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
176182
}
177183

178184
TEST_P(umfIpcTest, BasicFlow) {
@@ -227,7 +233,7 @@ TEST_P(umfIpcTest, BasicFlow) {
227233
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
228234

229235
ret = umfPoolFree(pool.get(), ptr);
230-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
236+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
231237

232238
pool.reset(nullptr);
233239
EXPECT_EQ(stat.getCount, 1);
@@ -291,7 +297,7 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
291297

292298
for (size_t i = 0; i < NUM_ALLOCS; ++i) {
293299
umf_result_t ret = umfFree(ptrs[i]);
294-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
300+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
295301
}
296302
}
297303

@@ -317,7 +323,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
317323
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
318324

319325
ret = umfPoolFree(pool.get(), ptr);
320-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
326+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
321327

322328
ptr = umfPoolMalloc(pool.get(), SIZE);
323329
ASSERT_NE(ptr, nullptr);
@@ -339,7 +345,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
339345
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
340346

341347
ret = umfPoolFree(pool.get(), ptr);
342-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
348+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
343349

344350
pool.reset(nullptr);
345351
EXPECT_EQ(stat.allocCount, stat.getCount);
@@ -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

Comments
 (0)