svn commit: r277441 - in stable/10: etc/mtree lib/libc lib/libc/tests lib/libc/tests/gen tools/regression/lib/libc/gen
Garrett Cooper
ngie at FreeBSD.org
Tue Jan 20 21:42:44 UTC 2015
Author: ngie
Date: Tue Jan 20 21:42:40 2015
New Revision: 277441
URL: https://svnweb.freebsd.org/changeset/base/277441
Log:
MFC r274075,r274581,r274582,r274595:
r274075 (by ngie):
Add reachover Makefiles for contrib/netbsd-tests/lib/libc; this adds approximately
500 new testcases
Various TODOs have been sprinkled around the Makefiles for items that even need
to be ported (missing features), testcases have issues with building/linking, or
issues at runtime.
A variant of this code has been tested extensively on amd64 and i386
10-STABLE/11-CURRENT for several months without issue. It builds on other
architectures, but the code will remain off until I have prove it works on
virtual hardware or real hardware on other architectures
In collaboration with: pho, Casey Peel <casey.peel at isilon.com>
Sponsored by: EMC / Isilon Storage Division
r274581 (by ngie):
Convert tools/regression/lib/libc/gen/test-arc4random into an ATF testcase and
rename as lib/libc/gen/arc4random_test
Sponsored by: EMC / Isilon Storage Division
r274582 (by ngie):
Remove test-arc4random from this Makefile so others can continue to use
this as-is for the time being
r274595 (by ngie):
Convert tools/regression/lib/libc/stdio/test-fpclassify into an ATF testcase and
Rename as lib/libc/stdio/fpclassify2_test
Sponsored by: EMC / Isilon Storage Division
Added:
stable/10/lib/libc/Makefile.amd64
- copied unchanged from r274075, head/lib/libc/Makefile.amd64
stable/10/lib/libc/Makefile.i386
- copied unchanged from r274075, head/lib/libc/Makefile.i386
stable/10/lib/libc/tests/
- copied from r274075, head/lib/libc/tests/
stable/10/lib/libc/tests/gen/arc4random_test.c
- copied unchanged from r274581, head/lib/libc/tests/gen/arc4random_test.c
stable/10/lib/libc/tests/gen/fpclassify2_test.c
- copied unchanged from r274595, head/lib/libc/tests/gen/fpclassify2_test.c
Deleted:
stable/10/tools/regression/lib/libc/gen/test-arc4random.c
stable/10/tools/regression/lib/libc/gen/test-fpclassify.c
Modified:
stable/10/etc/mtree/BSD.tests.dist
stable/10/lib/libc/Makefile
stable/10/lib/libc/tests/Makefile
stable/10/lib/libc/tests/gen/Makefile
stable/10/tools/regression/lib/libc/gen/Makefile
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/etc/mtree/BSD.tests.dist
==============================================================================
--- stable/10/etc/mtree/BSD.tests.dist Tue Jan 20 21:15:33 2015 (r277440)
+++ stable/10/etc/mtree/BSD.tests.dist Tue Jan 20 21:42:40 2015 (r277441)
@@ -87,6 +87,56 @@
test-programs
..
..
+ libc
+ c063
+ ..
+ db
+ ..
+ gen
+ execve
+ ..
+ posix_spawn
+ ..
+ ..
+ hash
+ data
+ ..
+ ..
+ inet
+ ..
+ locale
+ ..
+ net
+ getaddrinfo
+ data
+ ..
+ ..
+ ..
+ regex
+ data
+ ..
+ ..
+ ssp
+ ..
+ stdio
+ ..
+ stdlib
+ ..
+ string
+ ..
+ sys
+ ..
+ time
+ ..
+ tls
+ dso
+ ..
+ ..
+ termios
+ ..
+ ttyio
+ ..
+ ..
libcrypt
..
libmp
Modified: stable/10/lib/libc/Makefile
==============================================================================
--- stable/10/lib/libc/Makefile Tue Jan 20 21:15:33 2015 (r277440)
+++ stable/10/lib/libc/Makefile Tue Jan 20 21:42:40 2015 (r277441)
@@ -160,6 +160,8 @@ libkern.${LIBC_ARCH}:: ${KMSRCS}
CFLAGS+=-DSYSCALL_COMPAT
.endif
+.include <bsd.arch.inc.mk>
+
.include <bsd.lib.mk>
# Disable warnings in contributed sources.
Copied: stable/10/lib/libc/Makefile.amd64 (from r274075, head/lib/libc/Makefile.amd64)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/10/lib/libc/Makefile.amd64 Tue Jan 20 21:42:40 2015 (r277441, copy of r274075, head/lib/libc/Makefile.amd64)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+.if ${MK_TESTS} != "no"
+SUBDIR+= tests
+.endif
+
Copied: stable/10/lib/libc/Makefile.i386 (from r274075, head/lib/libc/Makefile.i386)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/10/lib/libc/Makefile.i386 Tue Jan 20 21:42:40 2015 (r277441, copy of r274075, head/lib/libc/Makefile.i386)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+.if ${MK_TESTS} != "no"
+SUBDIR+= tests
+.endif
+
Modified: stable/10/lib/libc/tests/Makefile
==============================================================================
--- head/lib/libc/tests/Makefile Tue Nov 4 00:56:25 2014 (r274075)
+++ stable/10/lib/libc/tests/Makefile Tue Jan 20 21:42:40 2015 (r277441)
@@ -1,6 +1,6 @@
# $FreeBSD$
-.include <src.opts.mk>
+.include <bsd.own.mk>
TESTSDIR= ${TESTSBASE}/lib/libc
Modified: stable/10/lib/libc/tests/gen/Makefile
==============================================================================
--- head/lib/libc/tests/gen/Makefile Tue Nov 4 00:56:25 2014 (r274075)
+++ stable/10/lib/libc/tests/gen/Makefile Tue Jan 20 21:42:40 2015 (r277441)
@@ -4,6 +4,9 @@
TESTSDIR= ${TESTSBASE}/lib/libc/gen
+ATF_TESTS_C= arc4random_test
+ATF_TESTS_C+= fpclassify2_test
+
# TODO: t_closefrom, t_cpuset, t_fmtcheck, t_randomid, t_sleep
# TODO: t_siginfo (fixes require further inspection)
# TODO: t_sethostname_test (consistently screws up the hostname)
Copied: stable/10/lib/libc/tests/gen/arc4random_test.c (from r274581, head/lib/libc/tests/gen/arc4random_test.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/10/lib/libc/tests/gen/arc4random_test.c Tue Jan 20 21:42:40 2015 (r277441, copy of r274581, head/lib/libc/tests/gen/arc4random_test.c)
@@ -0,0 +1,92 @@
+/*-
+ * Copyright (c) 2011 David Schultz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <atf-c.h>
+
+/*
+ * BUFSIZE is the number of bytes of rc4 output to compare. The probability
+ * that this test fails spuriously is 2**(-BUFSIZE * 8).
+ */
+#define BUFSIZE 8
+
+/*
+ * Test whether arc4random_buf() returns the same sequence of bytes in both
+ * parent and child processes. (Hint: It shouldn't.)
+ */
+ATF_TC_WITHOUT_HEAD(test_arc4random);
+ATF_TC_BODY(test_arc4random, tc)
+{
+ struct shared_page {
+ char parentbuf[BUFSIZE];
+ char childbuf[BUFSIZE];
+ } *page;
+ pid_t pid;
+ char c;
+
+ printf("1..1\n");
+
+ page = mmap(NULL, sizeof(struct shared_page), PROT_READ | PROT_WRITE,
+ MAP_ANON | MAP_SHARED, -1, 0);
+ if (page == MAP_FAILED) {
+ printf("fail 1 - mmap\n");
+ exit(1);
+ }
+
+ arc4random_buf(&c, 1);
+
+ pid = fork();
+ ATF_REQUIRE(0 <= pid);
+ if (pid == 0) {
+ /* child */
+ arc4random_buf(page->childbuf, BUFSIZE);
+ exit(0);
+ } else {
+ /* parent */
+ int status;
+ arc4random_buf(page->parentbuf, BUFSIZE);
+ wait(&status);
+ }
+ ATF_CHECK_MSG(memcmp(page->parentbuf, page->childbuf, BUFSIZE) != 0,
+ "sequences are the same");
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+ ATF_TP_ADD_TC(tp, test_arc4random);
+
+ return (atf_no_error());
+}
Copied: stable/10/lib/libc/tests/gen/fpclassify2_test.c (from r274595, head/lib/libc/tests/gen/fpclassify2_test.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/10/lib/libc/tests/gen/fpclassify2_test.c Tue Jan 20 21:42:40 2015 (r277441, copy of r274595, head/lib/libc/tests/gen/fpclassify2_test.c)
@@ -0,0 +1,72 @@
+/*-
+ * Copyright (c) 2003 Mike Barcroft <mike at FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <atf-c.h>
+
+ATF_TC_WITHOUT_HEAD(test_fpclassify);
+ATF_TC_BODY(test_fpclassify, tc)
+{
+
+ ATF_CHECK(fpclassify((float)0) == FP_ZERO);
+ ATF_CHECK(fpclassify((float)-0.0) == FP_ZERO);
+ ATF_CHECK(fpclassify((float)1) == FP_NORMAL);
+ ATF_CHECK(fpclassify((float)1000) == FP_NORMAL);
+ ATF_CHECK(fpclassify(HUGE_VALF) == FP_INFINITE);
+ ATF_CHECK(fpclassify((float)HUGE_VAL) == FP_INFINITE);
+ ATF_CHECK(fpclassify((float)HUGE_VALL) == FP_INFINITE);
+ ATF_CHECK(fpclassify(NAN) == FP_NAN);
+
+ ATF_CHECK(fpclassify((double)0) == FP_ZERO);
+ ATF_CHECK(fpclassify((double)-0) == FP_ZERO);
+ ATF_CHECK(fpclassify((double)1) == FP_NORMAL);
+ ATF_CHECK(fpclassify((double)1000) == FP_NORMAL);
+ ATF_CHECK(fpclassify(HUGE_VAL) == FP_INFINITE);
+ ATF_CHECK(fpclassify((double)HUGE_VALF) == FP_INFINITE);
+ ATF_CHECK(fpclassify((double)HUGE_VALL) == FP_INFINITE);
+ ATF_CHECK(fpclassify((double)NAN) == FP_NAN);
+
+ ATF_CHECK(fpclassify((long double)0) == FP_ZERO);
+ ATF_CHECK(fpclassify((long double)-0.0) == FP_ZERO);
+ ATF_CHECK(fpclassify((long double)1) == FP_NORMAL);
+ ATF_CHECK(fpclassify((long double)1000) == FP_NORMAL);
+ ATF_CHECK(fpclassify(HUGE_VALL) == FP_INFINITE);
+ ATF_CHECK(fpclassify((long double)HUGE_VALF) == FP_INFINITE);
+ ATF_CHECK(fpclassify((long double)HUGE_VAL) == FP_INFINITE);
+ ATF_CHECK(fpclassify((long double)NAN) == FP_NAN);
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+ ATF_TP_ADD_TC(tp, test_fpclassify);
+
+ return (atf_no_error());
+}
Modified: stable/10/tools/regression/lib/libc/gen/Makefile
==============================================================================
--- stable/10/tools/regression/lib/libc/gen/Makefile Tue Jan 20 21:15:33 2015 (r277440)
+++ stable/10/tools/regression/lib/libc/gen/Makefile Tue Jan 20 21:42:40 2015 (r277441)
@@ -1,7 +1,7 @@
# $FreeBSD$
-TESTS= test-arc4random test-fmtcheck test-fmtmsg test-fnmatch \
- test-fpclassify test-ftw test-popen test-posix_spawn test-wordexp
+TESTS= test-fmtcheck test-fmtmsg test-fnmatch \
+ test-ftw test-popen test-posix_spawn test-wordexp
.PHONY: tests
tests: ${TESTS}
More information about the svn-src-stable
mailing list