diff options
Diffstat (limited to 'test/mmap/mmap.c')
-rw-r--r-- | test/mmap/mmap.c | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/test/mmap/mmap.c b/test/mmap/mmap.c deleted file mode 100644 index 8b29737a0..000000000 --- a/test/mmap/mmap.c +++ /dev/null @@ -1,73 +0,0 @@ - -/* The mmap test is useful, since syscalls with 6 arguments - * (as mmap) are done differently on various architectures. - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <unistd.h> -#include <sys/mman.h> - -#define SIZEOF_ARRAY(type) (sizeof(type)/sizeof(*type)) - -struct mmap_test { - void *ret; - int err; - struct { - void *start; - size_t length; - int prot; - int flags; - int fd; - off_t offset; - } args; -}; - -struct mmap_test tests[] = { - [0] { - .err = 0, - .args.start = NULL, - .args.length = 4096, - .args.prot = PROT_READ|PROT_WRITE, - .args.flags = MAP_PRIVATE|MAP_ANONYMOUS, - .args.fd = 0, - .args.offset = 0 - }, -}; - -#define err(fmt, args...) \ - do { \ - fprintf(stderr, fmt "\n" , ## args); \ - exit(1); \ - } while (0) -#define errp(fmt, args...) err(fmt ": %s" , ## args , strerror(errno)) - -int main(int argc, char **argv) -{ - int i; - struct mmap_test *t; - - for (i=0; i<SIZEOF_ARRAY(tests); ++i) { - t = tests + i; - - errno = 0; - t->ret = mmap(t->args.start, t->args.length, t->args.prot, - t->args.flags, t->args.fd, t->args.offset); - - if (t->err) { - if (t->ret != MAP_FAILED) - err("mmap test %i should have failed, but gave us %p", i, t->ret); - else if (t->err != errno) - errp("mmap test %i failed, but gave us wrong errno (got %i instead of %i)", i, errno, t->err); - } else { - if (t->ret == MAP_FAILED) - errp("mmap test %i failed", i); - else if (munmap(t->ret, t->args.length) != 0) - errp("munmap test %i failed", i); - } - } - - exit(0); -} |