diff options
author | ngie <ngie@FreeBSD.org> | 2015-04-12 05:25:11 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2015-04-12 05:25:11 +0000 |
commit | 63315aaf0602b4276714b1f604508e377de6cbef (patch) | |
tree | 00c2d12b58382d3eaab0f5b0dfb29973ffc94efe | |
parent | 3bb7bf6d5c900dda5275f2e97010310abd37a467 (diff) | |
download | FreeBSD-src-63315aaf0602b4276714b1f604508e377de6cbef.zip FreeBSD-src-63315aaf0602b4276714b1f604508e377de6cbef.tar.gz |
Integrate tools/regression/mmap into the FreeBSD test suite as tests/sys/mmap
-rw-r--r-- | etc/mtree/BSD.tests.dist | 2 | ||||
-rw-r--r-- | tests/sys/Makefile | 1 | ||||
-rw-r--r-- | tests/sys/mmap/Makefile | 7 | ||||
-rw-r--r-- | tests/sys/mmap/mmap.c (renamed from tools/regression/mmap/mmap.c) | 39 | ||||
-rw-r--r-- | tools/regression/mmap/Makefile | 6 |
5 files changed, 34 insertions, 21 deletions
diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 3c6bd7e..74df508 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -360,6 +360,8 @@ .. kqueue .. + mmmap + .. mqueue .. netinet diff --git a/tests/sys/Makefile b/tests/sys/Makefile index 4e1bae5..b1137fb 100644 --- a/tests/sys/Makefile +++ b/tests/sys/Makefile @@ -8,6 +8,7 @@ TESTS_SUBDIRS+= file TESTS_SUBDIRS+= kern TESTS_SUBDIRS+= kqueue TESTS_SUBDIRS+= mqueue +TESTS_SUBDIRS+= mmap TESTS_SUBDIRS+= netinet TESTS_SUBDIRS+= opencrypto TESTS_SUBDIRS+= posixshm diff --git a/tests/sys/mmap/Makefile b/tests/sys/mmap/Makefile new file mode 100644 index 0000000..98809b4 --- /dev/null +++ b/tests/sys/mmap/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/sys/mmap + +TAP_TESTS_C+= mmap + +.include <bsd.test.mk> diff --git a/tools/regression/mmap/mmap.c b/tests/sys/mmap/mmap.c index 14c55a1..7591a09 100644 --- a/tools/regression/mmap/mmap.c +++ b/tests/sys/mmap/mmap.c @@ -31,10 +31,11 @@ #include <sys/sysctl.h> #include <sys/types.h> +#include <errno.h> #include <stdio.h> -#include <err.h> +#include <string.h> -const struct tests { +static const struct { void *addr; int ok[2]; /* Depending on security.bsd.map_at_zero {0, !=0}. */ } tests[] = { @@ -49,6 +50,8 @@ const struct tests { { (void *)(0x1000 * PAGE_SIZE), { 1, 1 } }, }; +#define MAP_AT_ZERO "security.bsd.map_at_zero" + int main(void) { @@ -60,37 +63,43 @@ main(void) /* Get the current sysctl value of security.bsd.map_at_zero. */ len = sizeof(mib) / sizeof(*mib); - if (sysctlnametomib("security.bsd.map_at_zero", mib, &len) == -1) - err(1, "sysctlnametomib(security.bsd.map_at_zero)"); + if (sysctlnametomib(MAP_AT_ZERO, mib, &len) == -1) { + printf("1..0 # SKIP: sysctlnametomib(\"%s\") failed: %s\n", + MAP_AT_ZERO, strerror(errno)); + return (0); + } len = sizeof(map_at_zero); - if (sysctl(mib, 3, &map_at_zero, &len, NULL, 0) == -1) - err(1, "sysctl(security.bsd.map_at_zero)"); + if (sysctl(mib, 3, &map_at_zero, &len, NULL, 0) == -1) { + printf("1..0 # SKIP: sysctl for %s failed: %s\n", MAP_AT_ZERO, + strerror(errno)); + return (0); + } /* Normalize to 0 or 1 for array access. */ map_at_zero = !!map_at_zero; - for (i=0; i < (sizeof(tests) / sizeof(*tests)); i++) { + printf("1..%zu\n", nitems(tests)); + for (i = 0; i < (int)nitems(tests); i++) { p = mmap((void *)tests[i].addr, PAGE_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_FIXED, -1, 0); if (p == MAP_FAILED) { if (tests[i].ok[map_at_zero] != 0) error++; - warnx("%s: mmap(%p, ...) failed.", - (tests[i].ok[map_at_zero] == 0) ? "OK " : "ERR", - tests[i].addr); + printf("%sok %d # mmap(%p, ...) failed\n", + tests[i].ok[map_at_zero] == 0 ? "" : "not ", + i + 1, + tests[i].addr); } else { if (tests[i].ok[map_at_zero] != 1) error++; - warnx("%s: mmap(%p, ...) succeeded: p=%p", - (tests[i].ok[map_at_zero] == 1) ? "OK " : "ERR", + printf("%sok %d # mmap(%p, ...) succeeded: p=%p\n", + tests[i].ok[map_at_zero] == 1 ? "" : "not ", + i + 1, tests[i].addr, p); } } - if (error) - err(1, "---\nERROR: %d unexpected results.", error); - return (error != 0); } diff --git a/tools/regression/mmap/Makefile b/tools/regression/mmap/Makefile deleted file mode 100644 index c9bb5c4..0000000 --- a/tools/regression/mmap/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -PROG= mmap -MAN= - -.include <bsd.prog.mk> |