/* Attempt to map a zero length page. */
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(errno == EINVAL);
/* Attempt to map a over length page. */
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(errno == ENOMEM);
/* 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);
- 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(errno == EFAULT);
{
unsigned char *a, *b, *c;
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);
+ 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);
+ fprintf(stdout, "%s addr=%p errno=%d\n", __func__, (void *)c, errno);
fail_unless(a != MAP_FAILED);
fail_unless(b != MAP_FAILED);
/* Shrink the middle mapping in-place; the others should be unaffected */
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);
/* Ensure we can still access all valid mappings */
munmap(a, 2 * pagesize);
munmap(b, pagesize);
munmap(c, 2 * pagesize);
+
+ fprintf(stdout, " passed\n");
}
int main(int argc, char **argv)