Browse Source

tests/tcg/multiarch/test-mmap: Print more details

Useful for debugging

Signed-off-by: Bingwu Zhang <xtex@astrafall.org>
Signed-off-by: Helge Deller <deller@gmx.de>
master^2
Bingwu Zhang 1 month ago
committed by Helge Deller
parent
commit
5ce072ea02
  1. 12
      tests/tcg/multiarch/test-mmap.c

12
tests/tcg/multiarch/test-mmap.c

@ -442,19 +442,19 @@ void check_invalid_mmaps(void)
/* Attempt to map a zero length page. */ /* Attempt to map a zero length page. */
addr = mmap(NULL, 0, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); addr = mmap(NULL, 0, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
fprintf(stdout, "%s addr=%p", __func__, (void *)addr); fprintf(stdout, "%s addr=%p errno=%d\n", __func__, (void *)addr, errno);
fail_unless(addr == MAP_FAILED); fail_unless(addr == MAP_FAILED);
fail_unless(errno == EINVAL); fail_unless(errno == EINVAL);
/* Attempt to map a over length page. */ /* Attempt to map a over length page. */
addr = mmap(NULL, -4, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); addr = mmap(NULL, -4, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
fprintf(stdout, "%s addr=%p", __func__, (void *)addr); fprintf(stdout, "%s addr=%p errno=%d\n", __func__, (void *)addr, errno);
fail_unless(addr == MAP_FAILED); fail_unless(addr == MAP_FAILED);
fail_unless(errno == ENOMEM); fail_unless(errno == ENOMEM);
/* Attempt to remap a region which exceeds the bounds of memory. */ /* Attempt to remap a region which exceeds the bounds of memory. */
addr = mremap((void *)((uintptr_t)pagesize * 10), SIZE_MAX & ~(size_t)pagemask, pagesize, 0); addr = mremap((void *)((uintptr_t)pagesize * 10), SIZE_MAX & ~(size_t)pagemask, pagesize, 0);
fprintf(stdout, "%s mremap addr=%p", __func__, (void *)addr); fprintf(stdout, "%s mremap addr=%p errno=%d\n", __func__, (void *)addr, errno);
fail_unless(addr == MAP_FAILED); fail_unless(addr == MAP_FAILED);
fail_unless(errno == EFAULT); fail_unless(errno == EFAULT);
@ -465,8 +465,11 @@ void check_shrink_mmaps(void)
{ {
unsigned char *a, *b, *c; unsigned char *a, *b, *c;
a = mmap(NULL, pagesize * 2, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); a = mmap(NULL, pagesize * 2, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
fprintf(stdout, "%s addr=%p errno=%d\n", __func__, (void *)a, errno);
b = mmap(NULL, pagesize * 2, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); b = mmap(NULL, pagesize * 2, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
fprintf(stdout, "%s addr=%p errno=%d\n", __func__, (void *)b, errno);
c = mmap(NULL, pagesize * 2, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); c = mmap(NULL, pagesize * 2, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
fprintf(stdout, "%s addr=%p errno=%d\n", __func__, (void *)c, errno);
fail_unless(a != MAP_FAILED); fail_unless(a != MAP_FAILED);
fail_unless(b != MAP_FAILED); fail_unless(b != MAP_FAILED);
@ -479,6 +482,7 @@ void check_shrink_mmaps(void)
/* Shrink the middle mapping in-place; the others should be unaffected */ /* Shrink the middle mapping in-place; the others should be unaffected */
b = mremap(b, pagesize * 2, pagesize, 0); b = mremap(b, pagesize * 2, pagesize, 0);
fprintf(stdout, "%s mremap addr=%p errno=%d\n", __func__, (void *)b, errno);
fail_unless(b != MAP_FAILED); fail_unless(b != MAP_FAILED);
/* Ensure we can still access all valid mappings */ /* Ensure we can still access all valid mappings */
@ -489,6 +493,8 @@ void check_shrink_mmaps(void)
munmap(a, 2 * pagesize); munmap(a, 2 * pagesize);
munmap(b, pagesize); munmap(b, pagesize);
munmap(c, 2 * pagesize); munmap(c, 2 * pagesize);
fprintf(stdout, " passed\n");
} }
int main(int argc, char **argv) int main(int argc, char **argv)

Loading…
Cancel
Save