Skip to content

Commit 7a14ef0

Browse files
authored
[scudo] Skip test if mlock fails. (#168448)
Some linux versions might not support the mlock call, so skip that part of the test if the mlock fails.
1 parent 5cf5eb7 commit 7a14ef0

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

compiler-rt/lib/scudo/standalone/tests/map_test.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,17 +120,17 @@ TEST(ScudoMapTest, Zeroing) {
120120
#if SCUDO_LINUX
121121
// Now verify that if madvise fails, the data is still zeroed.
122122
memset(Data, 1U, MemMap.getCapacity());
123-
EXPECT_NE(-1, mlock(Data, MemMap.getCapacity()));
124-
125-
EXPECT_EQ(1U, Data[0]);
126-
EXPECT_EQ(1U, Data[PageSize]);
127-
EXPECT_EQ(1U, Data[PageSize * 2]);
128-
MemMap.releaseAndZeroPagesToOS(MemMap.getBase(), MemMap.getCapacity());
129-
EXPECT_EQ(0U, Data[0]);
130-
EXPECT_EQ(0U, Data[PageSize]);
131-
EXPECT_EQ(0U, Data[PageSize * 2]);
132-
133-
EXPECT_NE(-1, munlock(Data, MemMap.getCapacity()));
123+
if (mlock(Data, MemMap.getCapacity()) != -1) {
124+
EXPECT_EQ(1U, Data[0]);
125+
EXPECT_EQ(1U, Data[PageSize]);
126+
EXPECT_EQ(1U, Data[PageSize * 2]);
127+
MemMap.releaseAndZeroPagesToOS(MemMap.getBase(), MemMap.getCapacity());
128+
EXPECT_EQ(0U, Data[0]);
129+
EXPECT_EQ(0U, Data[PageSize]);
130+
EXPECT_EQ(0U, Data[PageSize * 2]);
131+
132+
EXPECT_NE(-1, munlock(Data, MemMap.getCapacity()));
133+
}
134134
#endif
135135

136136
MemMap.unmap();

0 commit comments

Comments
 (0)