diff options
author | ngie <ngie@FreeBSD.org> | 2017-03-07 01:52:56 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2017-03-07 01:52:56 +0000 |
commit | 10b87d8ba3ff12dbc34b3c1d99e89f4383fc98c3 (patch) | |
tree | 9c82bf5ded885bafb240ccc56f48e06efbf594be /contrib/netbsd-tests/lib/libpthread | |
parent | 6a26a03ab521df8ace37d7a8ab9af6479c2959c6 (diff) | |
download | FreeBSD-src-10b87d8ba3ff12dbc34b3c1d99e89f4383fc98c3.zip FreeBSD-src-10b87d8ba3ff12dbc34b3c1d99e89f4383fc98c3.tar.gz |
MFC r313439,r314450:
r313439:
Merge content from ^/projects/netbsd-tests-upstream-01-2017 into ^/head
The primary end-goal of this drop is ease future merges with NetBSD and
collaborate further with the NetBSD project.
The goal was (largely, not completely as some items are still oustanding
in the NetBSD GNATS system) achieved by doing the following:
- Pushing as many changes required to port contrib/netbsd-tests
back to NetBSD as possible, then pull the upstream applied changes
back in to FreeBSD.
- Diff reduce with upstream where possible by:
-- Improving libnetbsd header, etc compat glue.
-- Using _SED variables to modify test scripts on the fly for items
that could not be upstreamed to NetBSD.
As a bonus for this work, this change also introduces testcases for
uniq(1).
Many thanks to Christos for working with me to get many of the changes
back into the NetBSD project.
In collaboration with: Christos Zoulas <christos@netbsd.org>
r314450:
Add additional __FreeBSD_version guards around the hsearch_r testcases
The reasoning for this is the same as r276046: to ease MFCing the tests
to ^/stable/10 .
This was accidentally missed in r313439
Diffstat (limited to 'contrib/netbsd-tests/lib/libpthread')
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/h_common.h | 8 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_condwait.c | 14 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_detach.c | 21 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_fork.c | 12 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_fpu.c | 27 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_join.c | 4 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_mutex.c | 10 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_once.c | 7 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_sem.c | 9 | ||||
-rw-r--r-- | contrib/netbsd-tests/lib/libpthread/t_swapcontext.c | 16 |
10 files changed, 28 insertions, 100 deletions
diff --git a/contrib/netbsd-tests/lib/libpthread/h_common.h b/contrib/netbsd-tests/lib/libpthread/h_common.h index 2e8b0a1..261b07f 100644 --- a/contrib/netbsd-tests/lib/libpthread/h_common.h +++ b/contrib/netbsd-tests/lib/libpthread/h_common.h @@ -5,14 +5,14 @@ #define PTHREAD_REQUIRE(x) \ do { \ - int ret = (x); \ - ATF_REQUIRE_MSG(ret == 0, "%s: %s", #x, strerror(ret)); \ + int _ret = (x); \ + ATF_REQUIRE_MSG(_ret == 0, "%s: %s", #x, strerror(_ret)); \ } while (0) #define PTHREAD_REQUIRE_STATUS(x, v) \ do { \ - int ret = (x); \ - ATF_REQUIRE_MSG(ret == (v), "%s: %s", #x, strerror(ret)); \ + int _ret = (x); \ + ATF_REQUIRE_MSG(_ret == (v), "%s: %s", #x, strerror(_ret)); \ } while (0) #endif // H_COMMON_H diff --git a/contrib/netbsd-tests/lib/libpthread/t_condwait.c b/contrib/netbsd-tests/lib/libpthread/t_condwait.c index 99793d0..58b4a8b 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_condwait.c +++ b/contrib/netbsd-tests/lib/libpthread/t_condwait.c @@ -1,4 +1,4 @@ -/* $NetBSD: t_condwait.c,v 1.4 2013/04/12 17:18:11 christos Exp $ */ +/* $NetBSD: t_condwait.c,v 1.5 2017/01/16 16:29:19 christos Exp $ */ /* * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -26,8 +26,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_condwait.c,v 1.4 2013/04/12 17:18:11 christos Exp $"); +__RCSID("$NetBSD: t_condwait.c,v 1.5 2017/01/16 16:29:19 christos Exp $"); +#include <sys/time.h> #include <errno.h> #include <pthread.h> #include <stdio.h> @@ -40,11 +41,7 @@ __RCSID("$NetBSD: t_condwait.c,v 1.4 2013/04/12 17:18:11 christos Exp $"); #include "isqemu.h" -#ifdef __FreeBSD__ -#include <sys/time.h> - #include "h_common.h" -#endif #define WAITTIME 2 /* Timeout wait secound */ @@ -62,13 +59,8 @@ run(void *param) clck = *(clockid_t *)param; -#ifdef __FreeBSD__ PTHREAD_REQUIRE(pthread_condattr_init(&attr)); PTHREAD_REQUIRE(pthread_condattr_setclock(&attr, clck)); -#else - pthread_condattr_init(&attr); - pthread_condattr_setclock(&attr, clck); /* MONOTONIC or MONOTONIC */ -#endif pthread_cond_init(&cond, &attr); ATF_REQUIRE_EQ((ret = pthread_mutex_lock(&m)), 0); diff --git a/contrib/netbsd-tests/lib/libpthread/t_detach.c b/contrib/netbsd-tests/lib/libpthread/t_detach.c index b3357bc..b30cb02 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_detach.c +++ b/contrib/netbsd-tests/lib/libpthread/t_detach.c @@ -1,4 +1,4 @@ -/* $NetBSD: t_detach.c,v 1.1 2011/03/24 13:52:04 jruoho Exp $ */ +/* $NetBSD: t_detach.c,v 1.2 2017/01/16 16:29:54 christos Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -29,27 +29,22 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_detach.c,v 1.1 2011/03/24 13:52:04 jruoho Exp $"); +__RCSID("$NetBSD: t_detach.c,v 1.2 2017/01/16 16:29:54 christos Exp $"); -#include <pthread.h> #include <errno.h> +#include <pthread.h> +#include <time.h> #include <atf-c.h> #include "h_common.h" -#ifdef __FreeBSD__ -#include <time.h> -#endif - static void *func(void *); static void * func(void *arg) { -#ifdef __FreeBSD__ sleep(2); -#endif return NULL; } @@ -79,25 +74,17 @@ ATF_TC_BODY(pthread_detach, tc) */ PTHREAD_REQUIRE(pthread_detach(t)); -#ifdef __FreeBSD__ sleep(1); -#endif rv = pthread_join(t, NULL); ATF_REQUIRE(rv == EINVAL); -#ifdef __FreeBSD__ sleep(3); -#endif /* * As usual, ESRCH should follow if * we try to detach an invalid thread. */ -#ifdef __NetBSD__ - rv = pthread_cancel(NULL); -#else rv = pthread_cancel(t); -#endif ATF_REQUIRE(rv == ESRCH); } diff --git a/contrib/netbsd-tests/lib/libpthread/t_fork.c b/contrib/netbsd-tests/lib/libpthread/t_fork.c index a58c1a6..936c7de 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_fork.c +++ b/contrib/netbsd-tests/lib/libpthread/t_fork.c @@ -1,4 +1,4 @@ -/* $NetBSD: t_fork.c,v 1.1 2010/07/16 15:42:53 jmmv Exp $ */ +/* $NetBSD: t_fork.c,v 1.2 2017/01/16 16:28:27 christos Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ #include <sys/cdefs.h> __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_fork.c,v 1.1 2010/07/16 15:42:53 jmmv Exp $"); +__RCSID("$NetBSD: t_fork.c,v 1.2 2017/01/16 16:28:27 christos Exp $"); /* * Written by Love Hörnquist Åstrand <lha@NetBSD.org>, March 2003. @@ -61,11 +61,7 @@ print_pid(void *arg) thread_survived = 1; if (parent != getpid()) { -#ifdef __FreeBSD__ _exit(1); -#else - exit(1); -#endif } return NULL; } @@ -99,11 +95,7 @@ ATF_TC_BODY(fork, tc) ATF_REQUIRE_EQ_MSG(WEXITSTATUS(status), 0, "thread survived in child"); } else { sleep(5); -#ifdef __FreeBSD__ _exit(thread_survived ? 1 : 0); -#else - exit(thread_survived ? 1 : 0); -#endif } } diff --git a/contrib/netbsd-tests/lib/libpthread/t_fpu.c b/contrib/netbsd-tests/lib/libpthread/t_fpu.c index 6a385d9..dd47fb8 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_fpu.c +++ b/contrib/netbsd-tests/lib/libpthread/t_fpu.c @@ -1,4 +1,4 @@ -/* $NetBSD: t_fpu.c,v 1.2 2013/01/27 14:47:37 mbalmer Exp $ */ +/* $NetBSD: t_fpu.c,v 1.3 2017/01/16 16:27:43 christos Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ #include <sys/cdefs.h> __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_fpu.c,v 1.2 2013/01/27 14:47:37 mbalmer Exp $"); +__RCSID("$NetBSD: t_fpu.c,v 1.3 2017/01/16 16:27:43 christos Exp $"); /* * This is adapted from part of csw/cstest of the MPD implementation by @@ -49,20 +49,17 @@ __RCSID("$NetBSD: t_fpu.c,v 1.2 2013/01/27 14:47:37 mbalmer Exp $"); * <is@netbsd.org>. */ +#include <errno.h> #include <math.h> #include <pthread.h> #include <sched.h> #include <stdio.h> +#include <string.h> #include <stdlib.h> #include <unistd.h> #include <atf-c.h> -#ifdef __FreeBSD__ -#include <errno.h> -#include <string.h> -#endif - #include "h_common.h" #define N_RECURSE 10 @@ -82,24 +79,16 @@ stir(void *p) for (;;) { x = sin ((y = cos (x + y + .4)) - (z = cos (x + z + .6))); -#ifdef __FreeBSD__ ATF_REQUIRE_MSG(sched_yield() == 0, "sched_yield failed: %s", strerror(errno)); -#else - PTHREAD_REQUIRE(sched_yield()); -#endif } } static double mul3(double x, double y, double z) { -#ifdef __FreeBSD__ ATF_REQUIRE_MSG(sched_yield() == 0, "sched_yield failed: %s", strerror(errno)); -#else - PTHREAD_REQUIRE(sched_yield()); -#endif return x * y * z; } @@ -129,11 +118,7 @@ bar(void *p) static void recurse(void) { pthread_t s2; -#ifdef __FreeBSD__ PTHREAD_REQUIRE(pthread_create(&s2, 0, bar, 0)); -#else - pthread_create(&s2, 0, bar, 0); -#endif sleep(20); /* XXX must be long enough for our slowest machine */ } @@ -153,11 +138,7 @@ ATF_TC_BODY(fpu, tc) PTHREAD_REQUIRE(pthread_mutex_init(&recursion_depth_lock, 0)); -#ifdef __FreeBSD__ PTHREAD_REQUIRE(pthread_create(&s5, 0, stir, stirseed)); -#else - pthread_create(&s5, 0, stir, stirseed); -#endif recurse(); atf_tc_fail("exiting from main"); diff --git a/contrib/netbsd-tests/lib/libpthread/t_join.c b/contrib/netbsd-tests/lib/libpthread/t_join.c index 71b6775..1c57910 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_join.c +++ b/contrib/netbsd-tests/lib/libpthread/t_join.c @@ -37,10 +37,6 @@ __RCSID("$NetBSD: t_join.c,v 1.8 2012/03/12 20:17:16 joerg Exp $"); #include <atf-c.h> -#ifdef __FreeBSD__ -#include <pthread_np.h> -#endif - #include "h_common.h" #ifdef CHECK_STACK_ALIGNMENT diff --git a/contrib/netbsd-tests/lib/libpthread/t_mutex.c b/contrib/netbsd-tests/lib/libpthread/t_mutex.c index b8d60e6..bcb8540 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_mutex.c +++ b/contrib/netbsd-tests/lib/libpthread/t_mutex.c @@ -1,4 +1,4 @@ -/* $NetBSD: t_mutex.c,v 1.14 2016/10/31 23:51:20 christos Exp $ */ +/* $NetBSD: t_mutex.c,v 1.15 2017/01/16 16:23:41 christos Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,12 +29,10 @@ #include <sys/cdefs.h> __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_mutex.c,v 1.14 2016/10/31 23:51:20 christos Exp $"); +__RCSID("$NetBSD: t_mutex.c,v 1.15 2017/01/16 16:23:41 christos Exp $"); -#ifdef __FreeBSD__ #include <sys/time.h> /* For timespecadd */ #include <inttypes.h> /* For UINT16_MAX */ -#endif #include <pthread.h> #include <stdio.h> #include <string.h> @@ -594,20 +592,16 @@ ATF_TC_BODY(mutexattr2, tc) int min_prio = sched_get_priority_min(SCHED_FIFO); for (int i = min_prio; i <= max_prio; i++) { int prioceiling; -#ifdef __FreeBSD__ int protocol; PTHREAD_REQUIRE(pthread_mutexattr_getprotocol(&mattr, &protocol)); printf("priority: %d\nprotocol: %d\n", i, protocol); -#endif PTHREAD_REQUIRE(pthread_mutexattr_setprioceiling(&mattr, i)); PTHREAD_REQUIRE(pthread_mutexattr_getprioceiling(&mattr, &prioceiling)); -#ifdef __FreeBSD__ printf("prioceiling: %d\n", prioceiling); -#endif ATF_REQUIRE_EQ(i, prioceiling); } } diff --git a/contrib/netbsd-tests/lib/libpthread/t_once.c b/contrib/netbsd-tests/lib/libpthread/t_once.c index e879077..e2f209b 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_once.c +++ b/contrib/netbsd-tests/lib/libpthread/t_once.c @@ -31,6 +31,9 @@ __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); __RCSID("$NetBSD: t_once.c,v 1.1 2010/07/16 15:42:53 jmmv Exp $"); +#ifdef __FreeBSD__ +#include <sys/time.h> /* For itimer*, etc. */ +#endif #include <pthread.h> #include <signal.h> #include <stdio.h> @@ -46,10 +49,6 @@ static int x; #define NTHREADS 25 -#ifdef __FreeBSD__ -#include <sys/time.h> -#endif - static void ofunc(void) { diff --git a/contrib/netbsd-tests/lib/libpthread/t_sem.c b/contrib/netbsd-tests/lib/libpthread/t_sem.c index 5bb7ae7..3d15edd 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_sem.c +++ b/contrib/netbsd-tests/lib/libpthread/t_sem.c @@ -1,4 +1,4 @@ -/* $NetBSD: t_sem.c,v 1.8 2014/11/04 00:20:19 justin Exp $ */ +/* $NetBSD: t_sem.c,v 1.9 2017/01/16 16:22:22 christos Exp $ */ /* * Copyright (c) 2008, 2010 The NetBSD Foundation, Inc. @@ -86,8 +86,9 @@ #include <sys/cdefs.h> __COPYRIGHT("@(#) Copyright (c) 2008, 2010\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_sem.c,v 1.8 2014/11/04 00:20:19 justin Exp $"); +__RCSID("$NetBSD: t_sem.c,v 1.9 2017/01/16 16:22:22 christos Exp $"); +#include <sys/time.h> #include <errno.h> #include <fcntl.h> #include <pthread.h> @@ -111,10 +112,6 @@ __RCSID("$NetBSD: t_sem.c,v 1.8 2014/11/04 00:20:19 justin Exp $"); static sem_t sem; -#ifdef __FreeBSD__ -#include <sys/time.h> -#endif - ATF_TC(named); ATF_TC_HEAD(named, tc) { diff --git a/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c b/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c index a18ac2f..677c51f 100644 --- a/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c +++ b/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c @@ -1,4 +1,4 @@ -/* $NetBSD: t_swapcontext.c,v 1.2 2014/08/25 16:31:15 bouyer Exp $ */ +/* $NetBSD: t_swapcontext.c,v 1.3 2017/01/16 16:27:06 christos Exp $ */ /* * Copyright (c) 2012 Emmanuel Dreyfus. All rights reserved. @@ -28,15 +28,13 @@ #include <sys/cdefs.h> __RCSID("$NetBSD"); -#ifdef __FreeBSD__ #include <sys/types.h> #include <errno.h> -#include <string.h> -#endif #include <pthread.h> -#include <ucontext.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> +#include <ucontext.h> #include <atf-c.h> @@ -82,12 +80,8 @@ threadfunc(void *arg) oself = (void *)pthread_self(); printf("before swapcontext self = %p\n", oself); -#ifdef __FreeBSD__ ATF_REQUIRE_MSG(swapcontext(&octx, &nctx) != -1, "swapcontext failed: %s", strerror(errno)); -#else - PTHREAD_REQUIRE(swapcontext(&octx, &nctx)); -#endif /* NOTREACHED */ return NULL; @@ -109,12 +103,8 @@ ATF_TC_BODY(swapcontext1, tc) printf("Testing if swapcontext() alters pthread_self()\n"); -#ifdef __FreeBSD__ ATF_REQUIRE_MSG(getcontext(&nctx) != -1, "getcontext failed: %s", strerror(errno)); -#else - PTHREAD_REQUIRE(getcontext(&nctx)); -#endif PTHREAD_REQUIRE(pthread_create(&thread, NULL, threadfunc, NULL)); PTHREAD_REQUIRE(pthread_join(thread, NULL)); } |