Replace `CHECK_MM` with `TEST_SUCC`
This commit is contained in:
parent
49a2cecc81
commit
4f05bdc891
|
|
@ -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));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue