svn commit: r281448 - in user/ngie/more-tests: etc/mtree tests/sys tests/sys/mmap tools/regression/mmap

Garrett Cooper ngie at FreeBSD.org
Sun Apr 12 05:25:13 UTC 2015


Author: ngie
Date: Sun Apr 12 05:25:11 2015
New Revision: 281448
URL: https://svnweb.freebsd.org/changeset/base/281448

Log:
  Integrate tools/regression/mmap into the FreeBSD test suite as tests/sys/mmap

Added:
  user/ngie/more-tests/tests/sys/mmap/
     - copied from r281446, user/ngie/more-tests/tools/regression/mmap/
Deleted:
  user/ngie/more-tests/tools/regression/mmap/
Modified:
  user/ngie/more-tests/etc/mtree/BSD.tests.dist
  user/ngie/more-tests/tests/sys/Makefile
  user/ngie/more-tests/tests/sys/mmap/Makefile
  user/ngie/more-tests/tests/sys/mmap/mmap.c

Modified: user/ngie/more-tests/etc/mtree/BSD.tests.dist
==============================================================================
--- user/ngie/more-tests/etc/mtree/BSD.tests.dist	Sun Apr 12 05:09:05 2015	(r281447)
+++ user/ngie/more-tests/etc/mtree/BSD.tests.dist	Sun Apr 12 05:25:11 2015	(r281448)
@@ -360,6 +360,8 @@
         ..
         kqueue
         ..
+        mmmap
+        ..
         mqueue
         ..
         netinet

Modified: user/ngie/more-tests/tests/sys/Makefile
==============================================================================
--- user/ngie/more-tests/tests/sys/Makefile	Sun Apr 12 05:09:05 2015	(r281447)
+++ user/ngie/more-tests/tests/sys/Makefile	Sun Apr 12 05:25:11 2015	(r281448)
@@ -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

Modified: user/ngie/more-tests/tests/sys/mmap/Makefile
==============================================================================
--- user/ngie/more-tests/tools/regression/mmap/Makefile	Sun Apr 12 01:14:43 2015	(r281446)
+++ user/ngie/more-tests/tests/sys/mmap/Makefile	Sun Apr 12 05:25:11 2015	(r281448)
@@ -1,6 +1,7 @@
 # $FreeBSD$
 
-PROG=	mmap
-MAN=
+TESTSDIR=	${TESTSBASE}/sys/mmap
 
-.include <bsd.prog.mk>
+TAP_TESTS_C+=	mmap
+
+.include <bsd.test.mk>

Modified: user/ngie/more-tests/tests/sys/mmap/mmap.c
==============================================================================
--- user/ngie/more-tests/tools/regression/mmap/mmap.c	Sun Apr 12 01:14:43 2015	(r281446)
+++ user/ngie/more-tests/tests/sys/mmap/mmap.c	Sun Apr 12 05:25:11 2015	(r281448)
@@ -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);
 }


More information about the svn-src-user mailing list