Skip to content

Commit 3a4df5b

Browse files
[libc][mincore] use correct page_size for test
1 parent 2484469 commit 3a4df5b

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

libc/test/src/sys/mman/linux/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,6 @@ add_libc_unittest(
7676
libc.src.sys.mman.munmap
7777
libc.src.sys.mman.madvise
7878
libc.src.sys.mman.mincore
79+
libc.src.unistd.sysconf
7980
libc.test.UnitTest.ErrnoSetterMatcher
8081
)

libc/test/src/sys/mman/linux/mincore_test.cpp

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@
1111
#include "src/sys/mman/mincore.h"
1212
#include "src/sys/mman/mmap.h"
1313
#include "src/sys/mman/munmap.h"
14+
#include "src/unistd/sysconf.h"
1415
#include "test/UnitTest/ErrnoSetterMatcher.h"
1516
#include "test/UnitTest/LibcTest.h"
1617
#include "test/UnitTest/Test.h"
1718

18-
#include <linux/param.h> // For EXEC_PAGESIZE
1919
#include <sys/mman.h>
20+
#include <unistd.h> // For sysconf.
2021

2122
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
2223
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
@@ -29,66 +30,69 @@ TEST(LlvmLibcMincoreTest, UnMappedMemory) {
2930
}
3031

3132
TEST(LlvmLibcMincoreTest, InvalidVec) {
32-
void *addr = LIBC_NAMESPACE::mmap(nullptr, 4 * EXEC_PAGESIZE, PROT_READ,
33+
size_t page_size = static_cast<size_t>(LIBC_NAMESPACE::sysconf(_SC_PAGESIZE));
34+
void *addr = LIBC_NAMESPACE::mmap(nullptr, 4 * page_size, PROT_READ,
3335
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
3436
EXPECT_NE(addr, MAP_FAILED);
35-
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % EXEC_PAGESIZE, 0ul);
37+
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % page_size, 0ul);
3638
libc_errno = 0;
3739
int res = LIBC_NAMESPACE::mincore(addr, 1, nullptr);
3840
EXPECT_THAT(res, Fails(EFAULT, -1));
39-
void *area =
40-
LIBC_NAMESPACE::mmap(nullptr, EXEC_PAGESIZE, PROT_READ | PROT_WRITE,
41-
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
41+
void *area = LIBC_NAMESPACE::mmap(nullptr, page_size, PROT_READ | PROT_WRITE,
42+
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
4243
EXPECT_NE(area, MAP_FAILED);
43-
unsigned char *ptr = static_cast<unsigned char *>(area) + EXEC_PAGESIZE - 3;
44-
res = LIBC_NAMESPACE::mincore(addr, 4 * EXEC_PAGESIZE, ptr);
44+
unsigned char *ptr = static_cast<unsigned char *>(area) + page_size - 3;
45+
res = LIBC_NAMESPACE::mincore(addr, 4 * page_size, ptr);
4546
EXPECT_THAT(res, Fails(EFAULT, -1));
46-
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, EXEC_PAGESIZE), Succeeds());
47+
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, page_size), Succeeds());
4748
EXPECT_THAT(LIBC_NAMESPACE::munmap(area, 2), Succeeds());
4849
}
4950

5051
TEST(LlvmLibcMincoreTest, UnalignedAddr) {
51-
void *addr = LIBC_NAMESPACE::mmap(nullptr, EXEC_PAGESIZE, PROT_READ,
52+
size_t page_size = static_cast<size_t>(LIBC_NAMESPACE::sysconf(_SC_PAGESIZE));
53+
void *addr = LIBC_NAMESPACE::mmap(nullptr, page_size, PROT_READ,
5254
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
5355
EXPECT_NE(addr, MAP_FAILED);
54-
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % EXEC_PAGESIZE, 0ul);
56+
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % page_size, 0ul);
5557
libc_errno = 0;
5658
int res = LIBC_NAMESPACE::mincore(static_cast<char *>(addr) + 1, 1, nullptr);
5759
EXPECT_THAT(res, Fails(EINVAL, -1));
58-
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, EXEC_PAGESIZE), Succeeds());
60+
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, page_size), Succeeds());
5961
}
6062

6163
TEST(LlvmLibcMincoreTest, NoError) {
62-
void *addr = LIBC_NAMESPACE::mmap(nullptr, EXEC_PAGESIZE, PROT_READ,
64+
size_t page_size = static_cast<size_t>(LIBC_NAMESPACE::sysconf(_SC_PAGESIZE));
65+
void *addr = LIBC_NAMESPACE::mmap(nullptr, page_size, PROT_READ,
6366
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
6467
EXPECT_NE(addr, MAP_FAILED);
65-
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % EXEC_PAGESIZE, 0ul);
68+
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % page_size, 0ul);
6669
unsigned char vec;
6770
libc_errno = 0;
6871
int res = LIBC_NAMESPACE::mincore(addr, 1, &vec);
6972
EXPECT_THAT(res, Succeeds());
70-
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, EXEC_PAGESIZE), Succeeds());
73+
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, page_size), Succeeds());
7174
}
7275

7376
TEST(LlvmLibcMincoreTest, NegativeLength) {
74-
void *addr = LIBC_NAMESPACE::mmap(nullptr, EXEC_PAGESIZE, PROT_READ,
77+
size_t page_size = static_cast<size_t>(LIBC_NAMESPACE::sysconf(_SC_PAGESIZE));
78+
void *addr = LIBC_NAMESPACE::mmap(nullptr, page_size, PROT_READ,
7579
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
7680
EXPECT_NE(addr, MAP_FAILED);
77-
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % EXEC_PAGESIZE, 0ul);
81+
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % page_size, 0ul);
7882
unsigned char vec;
7983
libc_errno = 0;
8084
int res = LIBC_NAMESPACE::mincore(addr, -1, &vec);
8185
EXPECT_THAT(res, Fails(ENOMEM, -1));
82-
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, EXEC_PAGESIZE), Succeeds());
86+
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, page_size), Succeeds());
8387
}
8488

8589
TEST(LlvmLibcMincoreTest, PageOut) {
8690
unsigned char vec;
87-
void *addr =
88-
LIBC_NAMESPACE::mmap(nullptr, EXEC_PAGESIZE, PROT_READ | PROT_WRITE,
89-
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
91+
size_t page_size = static_cast<size_t>(LIBC_NAMESPACE::sysconf(_SC_PAGESIZE));
92+
void *addr = LIBC_NAMESPACE::mmap(nullptr, page_size, PROT_READ | PROT_WRITE,
93+
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
9094
EXPECT_NE(addr, MAP_FAILED);
91-
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % EXEC_PAGESIZE, 0ul);
95+
EXPECT_EQ(reinterpret_cast<unsigned long>(addr) % page_size, 0ul);
9296

9397
// touch the page
9498
{
@@ -102,14 +106,14 @@ TEST(LlvmLibcMincoreTest, PageOut) {
102106
// page out the memory
103107
{
104108
libc_errno = 0;
105-
EXPECT_THAT(LIBC_NAMESPACE::madvise(addr, EXEC_PAGESIZE, MADV_DONTNEED),
109+
EXPECT_THAT(LIBC_NAMESPACE::madvise(addr, page_size, MADV_DONTNEED),
106110
Succeeds());
107111

108112
libc_errno = 0;
109-
int res = LIBC_NAMESPACE::mincore(addr, EXEC_PAGESIZE, &vec);
113+
int res = LIBC_NAMESPACE::mincore(addr, page_size, &vec);
110114
EXPECT_EQ(vec & 1u, 0u);
111115
EXPECT_THAT(res, Succeeds());
112116
}
113117

114-
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, EXEC_PAGESIZE), Succeeds());
118+
EXPECT_THAT(LIBC_NAMESPACE::munmap(addr, page_size), Succeeds());
115119
}

0 commit comments

Comments
 (0)