Skip to content

Commit a29be52

Browse files
bnoordhuisaddaleax
authored andcommitted
test: fix memory leaks in malloc cctests
Make cctest valgrind-clean again by freeing heap-allocated memory. Overlooked in commit ea94086 ("src: provide allocation + nullptr check shortcuts.") PR-URL: #9667 Refs: #8482 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Santiago Gimeno <[email protected]>
1 parent 425a864 commit a29be52

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

test/cctest/util.cc

+23-16
Original file line numberDiff line numberDiff line change
@@ -94,34 +94,41 @@ namespace node {
9494
void LowMemoryNotification() {}
9595
}
9696

97+
#define TEST_AND_FREE(expression) \
98+
do { \
99+
auto pointer = expression; \
100+
EXPECT_NE(nullptr, pointer); \
101+
free(pointer); \
102+
} while (0)
103+
97104
TEST(UtilTest, Malloc) {
98105
using node::Malloc;
99-
EXPECT_NE(nullptr, Malloc<char>(0));
100-
EXPECT_NE(nullptr, Malloc<char>(1));
101-
EXPECT_NE(nullptr, Malloc(0));
102-
EXPECT_NE(nullptr, Malloc(1));
106+
TEST_AND_FREE(Malloc<char>(0));
107+
TEST_AND_FREE(Malloc<char>(1));
108+
TEST_AND_FREE(Malloc(0));
109+
TEST_AND_FREE(Malloc(1));
103110
}
104111

105112
TEST(UtilTest, Calloc) {
106113
using node::Calloc;
107-
EXPECT_NE(nullptr, Calloc<char>(0));
108-
EXPECT_NE(nullptr, Calloc<char>(1));
109-
EXPECT_NE(nullptr, Calloc(0));
110-
EXPECT_NE(nullptr, Calloc(1));
114+
TEST_AND_FREE(Calloc<char>(0));
115+
TEST_AND_FREE(Calloc<char>(1));
116+
TEST_AND_FREE(Calloc(0));
117+
TEST_AND_FREE(Calloc(1));
111118
}
112119

113120
TEST(UtilTest, UncheckedMalloc) {
114121
using node::UncheckedMalloc;
115-
EXPECT_NE(nullptr, UncheckedMalloc<char>(0));
116-
EXPECT_NE(nullptr, UncheckedMalloc<char>(1));
117-
EXPECT_NE(nullptr, UncheckedMalloc(0));
118-
EXPECT_NE(nullptr, UncheckedMalloc(1));
122+
TEST_AND_FREE(UncheckedMalloc<char>(0));
123+
TEST_AND_FREE(UncheckedMalloc<char>(1));
124+
TEST_AND_FREE(UncheckedMalloc(0));
125+
TEST_AND_FREE(UncheckedMalloc(1));
119126
}
120127

121128
TEST(UtilTest, UncheckedCalloc) {
122129
using node::UncheckedCalloc;
123-
EXPECT_NE(nullptr, UncheckedCalloc<char>(0));
124-
EXPECT_NE(nullptr, UncheckedCalloc<char>(1));
125-
EXPECT_NE(nullptr, UncheckedCalloc(0));
126-
EXPECT_NE(nullptr, UncheckedCalloc(1));
130+
TEST_AND_FREE(UncheckedCalloc<char>(0));
131+
TEST_AND_FREE(UncheckedCalloc<char>(1));
132+
TEST_AND_FREE(UncheckedCalloc(0));
133+
TEST_AND_FREE(UncheckedCalloc(1));
127134
}

0 commit comments

Comments
 (0)