Skip to content

Commit 9e65d4b

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 30d0ea1 commit 9e65d4b

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

test/ipcFixtures.hpp

Lines changed: 16 additions & 10 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
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

Comments
 (0)