Replace `CHECK_MM` with `TEST_SUCC`

This commit is contained in:
Ruihan Li 2025-12-14 23:37:20 +08:00 committed by Tate, Hongliang Tian
parent 49a2cecc81
commit 4f05bdc891
2 changed files with 35 additions and 38 deletions

View File

@ -61,23 +61,21 @@ END_TEST()
const char *content = "kjfkljk*wigo&h"; const char *content = "kjfkljk*wigo&h";
#define CHECK_MM(func) CHECK_WITH(func, _ret != MAP_FAILED)
FN_TEST(mmap_and_mremap) FN_TEST(mmap_and_mremap)
{ {
char *addr = CHECK_MM(mmap(NULL, 3 * PAGE_SIZE, PROT_READ | PROT_WRITE, char *addr = TEST_SUCC(mmap(NULL, 3 * PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)); MAP_PRIVATE | MAP_ANONYMOUS, -1, 0));
TEST_SUCC(munmap(addr, 3 * PAGE_SIZE)); TEST_SUCC(munmap(addr, 3 * PAGE_SIZE));
addr = CHECK_MM(mmap(addr, PAGE_SIZE, PROT_READ | PROT_WRITE, addr = TEST_SUCC(mmap(addr, PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0)); MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0));
strcpy(addr, content); strcpy(addr, content);
char *addr2 = CHECK_MM( char *addr2 = TEST_SUCC(
mmap(addr + 2 * PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE, mmap(addr + 2 * PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0)); MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0));
char *new_addr = CHECK_MM( char *new_addr = TEST_SUCC(
mremap(addr, PAGE_SIZE, 3 * PAGE_SIZE, MREMAP_MAYMOVE)); mremap(addr, PAGE_SIZE, 3 * PAGE_SIZE, MREMAP_MAYMOVE));
// Ensure that the mapping at the old address does not exist any more. // Ensure that the mapping at the old address does not exist any more.
@ -96,8 +94,9 @@ END_TEST()
FN_TEST(mmap_and_mremap_fixed) FN_TEST(mmap_and_mremap_fixed)
{ {
char *addr1 = CHECK_MM(mmap(NULL, PAGE_SIZE * 2, PROT_READ | PROT_WRITE, char *addr1 =
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)); TEST_SUCC(mmap(NULL, PAGE_SIZE * 2, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0));
strcpy(addr1, content); strcpy(addr1, content);
// Unmap a target region to ensure we know it's free // Unmap a target region to ensure we know it's free
@ -122,21 +121,21 @@ END_TEST()
FN_TEST(mmap_and_mremap_auto_merge_anon) FN_TEST(mmap_and_mremap_auto_merge_anon)
{ {
char *addr = CHECK_MM(mmap(NULL, 6 * PAGE_SIZE, PROT_READ | PROT_WRITE, char *addr = TEST_SUCC(mmap(NULL, 6 * PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)); MAP_PRIVATE | MAP_ANONYMOUS, -1, 0));
TEST_SUCC(munmap(addr, 6 * PAGE_SIZE)); TEST_SUCC(munmap(addr, 6 * PAGE_SIZE));
CHECK_MM(mmap(addr, PAGE_SIZE, PROT_READ | PROT_WRITE, TEST_SUCC(mmap(addr, PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0)); MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0));
strcpy(addr, content); strcpy(addr, content);
CHECK_MM(mmap(addr + 2 * PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE, TEST_SUCC(mmap(addr + 2 * PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0)); MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0));
CHECK_MM(mmap(addr + PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE, TEST_SUCC(mmap(addr + PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0)); MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0));
char *new_addr = CHECK_MM(mremap(addr, 3 * PAGE_SIZE, 3 * PAGE_SIZE, char *new_addr = TEST_SUCC(mremap(addr, 3 * PAGE_SIZE, 3 * PAGE_SIZE,
MREMAP_MAYMOVE | MREMAP_FIXED, MREMAP_MAYMOVE | MREMAP_FIXED,
addr + 3 * PAGE_SIZE)); addr + 3 * PAGE_SIZE));
TEST_RES(strcmp(new_addr, content), _ret == 0); TEST_RES(strcmp(new_addr, content), _ret == 0);
TEST_SUCC(munmap(new_addr, 3 * PAGE_SIZE)); TEST_SUCC(munmap(new_addr, 3 * PAGE_SIZE));
} }
@ -148,21 +147,21 @@ FN_TEST(mmap_and_mremap_auto_merge_file)
int fd = TEST_SUCC(open(filename, O_CREAT | O_RDWR, 0600)); int fd = TEST_SUCC(open(filename, O_CREAT | O_RDWR, 0600));
TEST_SUCC(ftruncate(fd, 6 * PAGE_SIZE)); TEST_SUCC(ftruncate(fd, 6 * PAGE_SIZE));
char *addr = CHECK_MM(mmap(NULL, 6 * PAGE_SIZE, PROT_READ | PROT_WRITE, char *addr = TEST_SUCC(mmap(NULL, 6 * PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE, fd, 0)); MAP_PRIVATE, fd, 0));
TEST_SUCC(munmap(addr, 6 * PAGE_SIZE)); TEST_SUCC(munmap(addr, 6 * PAGE_SIZE));
CHECK_MM(mmap(addr, PAGE_SIZE, PROT_READ | PROT_WRITE, TEST_SUCC(mmap(addr, PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_FIXED, fd, 0)); MAP_PRIVATE | MAP_FIXED, fd, 0));
strcpy(addr, content); strcpy(addr, content);
CHECK_MM(mmap(addr + 2 * PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE, TEST_SUCC(mmap(addr + 2 * PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_FIXED, fd, 2 * PAGE_SIZE)); MAP_PRIVATE | MAP_FIXED, fd, 2 * PAGE_SIZE));
CHECK_MM(mmap(addr + PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE, TEST_SUCC(mmap(addr + PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_FIXED, fd, PAGE_SIZE)); MAP_PRIVATE | MAP_FIXED, fd, PAGE_SIZE));
char *new_addr = CHECK_MM(mremap(addr, 3 * PAGE_SIZE, 3 * PAGE_SIZE, char *new_addr = TEST_SUCC(mremap(addr, 3 * PAGE_SIZE, 3 * PAGE_SIZE,
MREMAP_MAYMOVE | MREMAP_FIXED, MREMAP_MAYMOVE | MREMAP_FIXED,
addr + 3 * PAGE_SIZE)); addr + 3 * PAGE_SIZE));
TEST_RES(strcmp(new_addr, content), _ret == 0); TEST_RES(strcmp(new_addr, content), _ret == 0);
TEST_SUCC(munmap(new_addr, 3 * PAGE_SIZE)); TEST_SUCC(munmap(new_addr, 3 * PAGE_SIZE));

View File

@ -68,12 +68,10 @@ long get_vm_rss_kb(rss_type type)
return rss_kb; return rss_kb;
} }
#define CHECK_MM(func) CHECK_WITH(func, _ret != MAP_FAILED)
FN_TEST(rss_anon) FN_TEST(rss_anon)
{ {
void *mem = CHECK_MM(mmap(NULL, TOTAL_SIZE, PROT_READ | PROT_WRITE, void *mem = TEST_SUCC(mmap(NULL, TOTAL_SIZE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)); MAP_PRIVATE | MAP_ANONYMOUS, -1, 0));
// The first call to `TEST_SUCC` and `get_vm_rss_kb()` may trigger // The first call to `TEST_SUCC` and `get_vm_rss_kb()` may trigger
// lazy mapping of additional pages, such as shared libraries or files. // lazy mapping of additional pages, such as shared libraries or files.
@ -120,8 +118,8 @@ FN_TEST(rss_file)
long rss_file_before = TEST_SUCC(get_vm_rss_kb(file)); long rss_file_before = TEST_SUCC(get_vm_rss_kb(file));
long rss_before = TEST_SUCC(get_vm_rss_kb(total)); long rss_before = TEST_SUCC(get_vm_rss_kb(total));
void *mem = void *mem = TEST_SUCC(
CHECK_MM(mmap(NULL, TOTAL_SIZE, PROT_READ, MAP_PRIVATE, fd, 0)); mmap(NULL, TOTAL_SIZE, PROT_READ, MAP_PRIVATE, fd, 0));
// Trigger page faults // Trigger page faults
for (int i = 0; i < NUM_PAGES; ++i) { for (int i = 0; i < NUM_PAGES; ++i) {