[compiler-rt] [scudo] Move getResidentPages function (PR #183138)
Christopher Ferris via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 3 12:56:57 PST 2026
================
@@ -35,31 +35,33 @@ TEST(ScudoCommonTest, VerifyGetResidentPages) {
// Only android seems to properly detect when single pages are touched.
#if SCUDO_ANDROID
// Verify nothing should be mapped in right after the map is created.
- EXPECT_EQ(0U, getResidentPages(MemMap.getBase(), SizeBytes));
+ EXPECT_EQ(0U, MemMap.getResidentPages(MemMap.getBase(), SizeBytes));
// Touch a page.
u8 *Data = reinterpret_cast<u8 *>(MemMap.getBase());
Data[0] = 1;
- EXPECT_EQ(1U, getResidentPages(MemMap.getBase(), SizeBytes));
+ EXPECT_EQ(1U, MemMap.getResidentPages(MemMap.getBase(), SizeBytes));
// Touch a non-consective page.
Data[getPageSizeCached() * 2] = 1;
- EXPECT_EQ(2U, getResidentPages(MemMap.getBase(), SizeBytes));
+ EXPECT_EQ(2U, MemMap.getResidentPages(MemMap.getBase(), SizeBytes));
// Touch a page far enough that the function has to make multiple calls
// to mincore.
Data[getPageSizeCached() * 300] = 1;
- EXPECT_EQ(3U, getResidentPages(MemMap.getBase(), SizeBytes));
+ EXPECT_EQ(3U, MemMap.getResidentPages(MemMap.getBase(), SizeBytes));
// Touch another page in the same range to make sure the second
// read is working.
Data[getPageSizeCached() * 400] = 1;
- EXPECT_EQ(4U, getResidentPages(MemMap.getBase(), SizeBytes));
+ EXPECT_EQ(4U, MemMap.getResidentPages(MemMap.getBase(), SizeBytes));
#endif
// Now write the whole thing.
memset(reinterpret_cast<void *>(MemMap.getBase()), 1, SizeBytes);
- EXPECT_EQ(NumPages, getResidentPages(MemMap.getBase(), SizeBytes));
+ s64 ResidentPages = MemMap.getResidentPages(MemMap.getBase(), SizeBytes);
----------------
cferris1000 wrote:
I think it's worth adding this in a SCUDO_LINUX block. Right now, if a mistake is made and linux returns -1, this test would pass. It's better to check that it's working properly.
This is slightly different from the usage in primary/secondary code since this is a test and we are trying to verify the functionality works properly.
https://github.com/llvm/llvm-project/pull/183138
More information about the llvm-commits
mailing list