Skip to content

Commit ee939c8

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 cafe5f0 commit ee939c8

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,15 +224,15 @@ 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 * sizeof(int));
224230
EXPECT_NE(ptr, nullptr);
225231

226232
memset(ptr, 0xAB, SIZE * sizeof(int));
227233

228234
ret = umfPoolFree(pool.get(), ptr);
229-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
235+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
230236

231237
pool.reset(nullptr);
232238
EXPECT_EQ(stat.getCount, 1);
@@ -290,7 +296,7 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
290296

291297
for (size_t i = 0; i < NUM_ALLOCS; ++i) {
292298
umf_result_t ret = umfFree(ptrs[i]);
293-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
299+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
294300
}
295301
}
296302

@@ -316,7 +322,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
316322
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
317323

318324
ret = umfPoolFree(pool.get(), ptr);
319-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
325+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
320326

321327
ptr = umfPoolMalloc(pool.get(), SIZE);
322328
ASSERT_NE(ptr, nullptr);
@@ -334,13 +340,13 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
334340
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
335341

336342
ret = umfPoolFree(pool.get(), ptr);
337-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
343+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
338344

339345
ptr = umfPoolMalloc(pool.get(), SIZE);
340346
ASSERT_NE(ptr, nullptr);
341347

342348
ret = umfPoolFree(pool.get(), ptr);
343-
EXPECT_EQ(ret, UMF_RESULT_SUCCESS);
349+
EXPECT_EQ(ret, get_umf_result_of_free(UMF_RESULT_SUCCESS));
344350

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