xref: /openbsd-src/regress/sys/kern/signal/sigpthread/Makefile (revision b5d99089c2c33aceeba7ec4dbfc362d61bc408ea)
1*b5d99089Sbluhm# $OpenBSD: Makefile,v 1.2 2020/12/17 00:51:12 bluhm Exp $
26bcfccdaSmpi
36bcfccdaSmpiPROG =		sigpthread
46bcfccdaSmpiWARNINGS =	yes
56bcfccdaSmpiLDADD =		-lpthread
66bcfccdaSmpiDPADD =		${LIBPTHREAD}
76bcfccdaSmpiCLEANFILES +=	out
86bcfccdaSmpi
96bcfccdaSmpi# first test signal delivery while they are blocked
106bcfccdaSmpi
116bcfccdaSmpi.for t in 0 1 2
126bcfccdaSmpi
136bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-unblock-$t
146bcfccdaSmpirun-block-thread-3-unblock-$t:
156bcfccdaSmpi	# block signal
166bcfccdaSmpi	# run 3 threads
176bcfccdaSmpi	# kill process
186bcfccdaSmpi	# suspend threads until signaled
196bcfccdaSmpi	# unblock thread $t
206bcfccdaSmpi	# handle signal
216bcfccdaSmpi	./sigpthread -b -t 3 -u $t >out
226bcfccdaSmpi	grep 'signal $t' out
236bcfccdaSmpi	test `wc -l <out` = 1
246bcfccdaSmpi
256bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-main-unblock-$t
266bcfccdaSmpirun-block-thread-3-sleep-main-unblock-$t:
276bcfccdaSmpi	# block signal
286bcfccdaSmpi	# run 3 threads
296bcfccdaSmpi	# suspend threads until signaled
306bcfccdaSmpi	# sleep in main thread, signal should be received while suspended
316bcfccdaSmpi	# kill process
326bcfccdaSmpi	# unblock thread $t
336bcfccdaSmpi	# handle signal
346bcfccdaSmpi	./sigpthread -b -s -t 3 -u $t >out
356bcfccdaSmpi	grep 'signal $t' out
366bcfccdaSmpi	test `wc -l <out` = 1
376bcfccdaSmpi
386bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-unblock-$t-sleep-thread
396bcfccdaSmpirun-block-thread-3-sleep-thread-unblock-$t:
406bcfccdaSmpi	# block signal
416bcfccdaSmpi	# run 3 threads
426bcfccdaSmpi	# kill process
436bcfccdaSmpi	# sleep in threads, signal should be pending when suspending
446bcfccdaSmpi	# suspend threads until signaled
456bcfccdaSmpi	# unblock thread $t
466bcfccdaSmpi	# handle signal
476bcfccdaSmpi	./sigpthread -b -S -t 3 -u $t >out
486bcfccdaSmpi	grep 'signal $t' out
496bcfccdaSmpi	test `wc -l <out` = 1
506bcfccdaSmpi
516bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-unblock-unblock-$t
526bcfccdaSmpirun-block-thread-3-sleep-unblock-unblock-$t:
536bcfccdaSmpi	# block signal
546bcfccdaSmpi	# run 3 threads
556bcfccdaSmpi	# kill process
566bcfccdaSmpi	# suspend threads until signaled
576bcfccdaSmpi	# sleep in thread $t, others should be exited when unblocking
586bcfccdaSmpi	# unblock thread $t
596bcfccdaSmpi	# handle signal
606bcfccdaSmpi	./sigpthread -b -t 3 -U -u $t >out
616bcfccdaSmpi	grep 'signal $t' out
626bcfccdaSmpi	test `wc -l <out` = 1
636bcfccdaSmpi
646bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-kill-$t-unblock-$t
656bcfccdaSmpirun-block-thread-3-kill-$t-unblock-$t:
666bcfccdaSmpi	# block signal
676bcfccdaSmpi	# run 3 threads
686bcfccdaSmpi	# kill thread $t
696bcfccdaSmpi	# suspend threads until signaled
706bcfccdaSmpi	# unblock thread $t
716bcfccdaSmpi	# handle signal
726bcfccdaSmpi	./sigpthread -b -k $t -t 3 -u $t >out
736bcfccdaSmpi	grep 'signal $t' out
746bcfccdaSmpi	test `wc -l <out` = 1
756bcfccdaSmpi
766bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-main-kill-$t-unblock-$t
776bcfccdaSmpirun-block-thread-3-sleep-main-kill-$t-unblock-$t:
786bcfccdaSmpi	# block signal
796bcfccdaSmpi	# run 3 threads
806bcfccdaSmpi	# suspend threads until signaled
816bcfccdaSmpi	# sleep in main thread, signal should be received while suspended
826bcfccdaSmpi	# kill thread $t
836bcfccdaSmpi	# unblock thread $t
846bcfccdaSmpi	# handle signal
856bcfccdaSmpi	./sigpthread -b -k $t -s -t 3 -u $t >out
866bcfccdaSmpi	grep 'signal $t' out
876bcfccdaSmpi	test `wc -l <out` = 1
886bcfccdaSmpi
896bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-kill-$t-sleep-thread-unblock-$t
906bcfccdaSmpirun-block-thread-3-kill-$t-sleep-thread-unblock-$t:
916bcfccdaSmpi	# block signal
926bcfccdaSmpi	# run 3 threads
936bcfccdaSmpi	# kill thread $t
946bcfccdaSmpi	# sleep in threads, signal should be pending when suspending
956bcfccdaSmpi	# suspend threads until signaled
966bcfccdaSmpi	# unblock thread $t
976bcfccdaSmpi	# handle signal
986bcfccdaSmpi	./sigpthread -b -k $t -S -t 3 -u $t >out
996bcfccdaSmpi	grep 'signal $t' out
1006bcfccdaSmpi	test `wc -l <out` = 1
1016bcfccdaSmpi
1026bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-kill-$t-unblock-$t-sleep-unblock
1036bcfccdaSmpirun-block-thread-3-kill-$t-unblock-$t-sleep-unblock:
1046bcfccdaSmpi	# block signal
1056bcfccdaSmpi	# run 3 threads
1066bcfccdaSmpi	# kill thread $t
1076bcfccdaSmpi	# suspend threads until signaled
1086bcfccdaSmpi	# sleep in thread $t, others should be exited when unblocking
1096bcfccdaSmpi	# unblock thread $t
1106bcfccdaSmpi	# handle signal
1116bcfccdaSmpi	./sigpthread -b -k $t -t 3 -U -u $t >out
1126bcfccdaSmpi	grep 'signal $t' out
1136bcfccdaSmpi	test `wc -l <out` = 1
1146bcfccdaSmpi
1156bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-kill-$t
1166bcfccdaSmpirun-block-thread-3-kill-$t:
1176bcfccdaSmpi	# block signal
1186bcfccdaSmpi	# run 3 threads
1196bcfccdaSmpi	# kill thread $t
1206bcfccdaSmpi	# suspend threads until signaled
1216bcfccdaSmpi	# unblock all threads
1226bcfccdaSmpi	# handle signal
1236bcfccdaSmpi	./sigpthread -b -k $t -t 3 >out
1246bcfccdaSmpi	grep 'signal $t' out
1256bcfccdaSmpi	test `wc -l <out` = 1
1266bcfccdaSmpi
1276bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-main-kill-$t
1286bcfccdaSmpirun-block-thread-3-sleep-main-kill-$t:
1296bcfccdaSmpi	# block signal
1306bcfccdaSmpi	# run 3 threads
1316bcfccdaSmpi	# suspend threads until signaled
1326bcfccdaSmpi	# sleep in main thread, signal should be received while suspended
1336bcfccdaSmpi	# kill thread $t
1346bcfccdaSmpi	# unblock all threads
1356bcfccdaSmpi	# handle signal
1366bcfccdaSmpi	./sigpthread -b -k $t -s -t 3 >out
1376bcfccdaSmpi	grep 'signal $t' out
1386bcfccdaSmpi	test `wc -l <out` = 1
1396bcfccdaSmpi
1406bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-kill-$t-sleep-thread
1416bcfccdaSmpirun-block-thread-3-kill-$t-sleep-thread:
1426bcfccdaSmpi	# block signal
1436bcfccdaSmpi	# run 3 threads
1446bcfccdaSmpi	# kill thread $t
1456bcfccdaSmpi	# sleep in threads, signal should be pending when suspending
1466bcfccdaSmpi	# suspend threads until signaled
1476bcfccdaSmpi	# unblock all threads
1486bcfccdaSmpi	# handle signal
1496bcfccdaSmpi	./sigpthread -b -k $t -S -t 3 >out
1506bcfccdaSmpi	grep 'signal $t' out
1516bcfccdaSmpi	test `wc -l <out` = 1
1526bcfccdaSmpi
1536bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-kill-$t-sleep-unblock
1546bcfccdaSmpirun-block-thread-3-kill-$t-sleep-unblock:
1556bcfccdaSmpi	# block signal
1566bcfccdaSmpi	# run 3 threads
1576bcfccdaSmpi	# kill thread $t
1586bcfccdaSmpi	# suspend threads until signaled
1596bcfccdaSmpi	# sleep in all threads
1606bcfccdaSmpi	# unblock all threads
1616bcfccdaSmpi	# handle signal
1626bcfccdaSmpi	./sigpthread -b -k $t -t 3 -U >out
1636bcfccdaSmpi	grep 'signal $t' out
1646bcfccdaSmpi	test `wc -l <out` = 1
1656bcfccdaSmpi
1666bcfccdaSmpi.endfor
1676bcfccdaSmpi
1686bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3
1696bcfccdaSmpirun-block-thread-3:
1706bcfccdaSmpi	# block signal
1716bcfccdaSmpi	# run 3 threads
1726bcfccdaSmpi	# kill process
1736bcfccdaSmpi	# suspend threads until signaled
1746bcfccdaSmpi	# unblock all threads
1756bcfccdaSmpi	# handle signal
1766bcfccdaSmpi	./sigpthread -b -t 3 >out
1776bcfccdaSmpi	grep 'signal [0-2]' out
1786bcfccdaSmpi	test `wc -l <out` = 1
1796bcfccdaSmpi
1806bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-main
1816bcfccdaSmpirun-block-thread-3-sleep-main:
1826bcfccdaSmpi	# block signal
1836bcfccdaSmpi	# run 3 threads
1846bcfccdaSmpi	# suspend threads until signaled
1856bcfccdaSmpi	# sleep in main thread, signal should be received while suspended
1866bcfccdaSmpi	# kill process
1876bcfccdaSmpi	# unblock all threads
1886bcfccdaSmpi	# handle signal
1896bcfccdaSmpi	./sigpthread -b -s -t 3 >out
1906bcfccdaSmpi	grep 'signal [0-2]' out
1916bcfccdaSmpi	test `wc -l <out` = 1
1926bcfccdaSmpi
1936bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-thread
1946bcfccdaSmpirun-block-thread-3-sleep-thread:
1956bcfccdaSmpi	# block signal
1966bcfccdaSmpi	# run 3 threads
1976bcfccdaSmpi	# kill process
1986bcfccdaSmpi	# sleep in threads, signal should be pending when suspending
1996bcfccdaSmpi	# suspend threads until signaled
2006bcfccdaSmpi	# unblock all threads
2016bcfccdaSmpi	# handle signal
2026bcfccdaSmpi	./sigpthread -b -S -t 3 >out
2036bcfccdaSmpi	grep 'signal [0-2]' out
2046bcfccdaSmpi	test `wc -l <out` = 1
2056bcfccdaSmpi
2066bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-unblock
2076bcfccdaSmpirun-block-thread-3-sleep-unblock:
2086bcfccdaSmpi	# block signal
2096bcfccdaSmpi	# run 3 threads
2106bcfccdaSmpi	# kill process
2116bcfccdaSmpi	# suspend threads until signaled
2126bcfccdaSmpi	# sleep in all threads
2136bcfccdaSmpi	# unblock all threads
2146bcfccdaSmpi	# handle signal
2156bcfccdaSmpi	./sigpthread -b -t 3 -U >out
2166bcfccdaSmpi	grep 'signal [0-2]' out
2176bcfccdaSmpi	test `wc -l <out` = 1
2186bcfccdaSmpi
2196bcfccdaSmpi# check what happens if signals are not blocked but delivered immediately
2206bcfccdaSmpi
2216bcfccdaSmpi.for t in 0 1 2
2226bcfccdaSmpi
2236bcfccdaSmpiREGRESS_TARGETS +=	run-thread-3-kill-$t
2246bcfccdaSmpirun-thread-3-kill-$t:
2256bcfccdaSmpi	# run 3 threads
2266bcfccdaSmpi	# kill thread $t
2276bcfccdaSmpi	# handle signal
2286bcfccdaSmpi	# suspend threads until signaled
2296bcfccdaSmpi	./sigpthread -k $t -t 3 >out
2306bcfccdaSmpi	grep 'signal $t' out
2316bcfccdaSmpi	test `wc -l <out` = 1
2326bcfccdaSmpi
2336bcfccdaSmpiREGRESS_TARGETS +=	run-thread-3-sleep-main-kill-$t
2346bcfccdaSmpirun-thread-3-sleep-main-kill-$t:
2356bcfccdaSmpi	# run 3 threads
2366bcfccdaSmpi	# suspend threads until signaled
2376bcfccdaSmpi	# sleep in main thread, signal should be received while suspended
2386bcfccdaSmpi	# kill thread $t
2396bcfccdaSmpi	# handle signal
2406bcfccdaSmpi	./sigpthread -k $t -s -t 3 >out
2416bcfccdaSmpi	grep 'signal $t' out
2426bcfccdaSmpi	test `wc -l <out` = 1
2436bcfccdaSmpi
2446bcfccdaSmpiREGRESS_TARGETS +=	run-thread-3-kill-$t-sleep-thread
2456bcfccdaSmpirun-thread-3-kill-$t-sleep-thread:
2466bcfccdaSmpi	# run 3 threads
2476bcfccdaSmpi	# kill thread $t
2486bcfccdaSmpi	# sleep in threads, signal should be received while sleeping
2496bcfccdaSmpi	# handle signal
2506bcfccdaSmpi	# suspend threads until signaled
2516bcfccdaSmpi	./sigpthread -k $t -S -t 3 >out
2526bcfccdaSmpi	grep 'signal $t' out
2536bcfccdaSmpi	test `wc -l <out` = 1
2546bcfccdaSmpi
2556bcfccdaSmpiREGRESS_TARGETS +=	run-thread-3-kill-$t-sleep-unblock
2566bcfccdaSmpirun-thread-3-kill-$t-sleep-unblock:
2576bcfccdaSmpi	# run 3 threads
2586bcfccdaSmpi	# kill thread $t
2596bcfccdaSmpi	# handle signal
2606bcfccdaSmpi	# suspend threads until signaled
2616bcfccdaSmpi	# sleep in all threads
2626bcfccdaSmpi	./sigpthread -k $t -t 3 -U >out
2636bcfccdaSmpi	grep 'signal $t' out
2646bcfccdaSmpi	test `wc -l <out` = 1
2656bcfccdaSmpi
2666bcfccdaSmpi.endfor
2676bcfccdaSmpi
2686bcfccdaSmpiREGRESS_TARGETS +=	run-thread-3
2696bcfccdaSmpirun-thread-3:
2706bcfccdaSmpi	# run 3 threads
2716bcfccdaSmpi	# kill process
2726bcfccdaSmpi	# handle signal
2736bcfccdaSmpi	# suspend threads until signaled
2746bcfccdaSmpi	./sigpthread -t 3 >out
2756bcfccdaSmpi	grep 'signal [0-2]' out
2766bcfccdaSmpi	test `wc -l <out` = 1
2776bcfccdaSmpi
2786bcfccdaSmpiREGRESS_TARGETS +=	run-thread-3-sleep-main
2796bcfccdaSmpirun-thread-3-sleep-main:
2806bcfccdaSmpi	# block signal
2816bcfccdaSmpi	# run 3 threads
2826bcfccdaSmpi	# suspend threads until signaled
2836bcfccdaSmpi	# sleep in main thread, signal should be received while suspended
2846bcfccdaSmpi	# kill process
2856bcfccdaSmpi	# handle signal
2866bcfccdaSmpi	./sigpthread -s -t 3 >out
2876bcfccdaSmpi	grep 'signal [0-2]' out
2886bcfccdaSmpi	test `wc -l <out` = 1
2896bcfccdaSmpi
2906bcfccdaSmpiREGRESS_TARGETS +=	run-thread-3-sleep-thread
2916bcfccdaSmpirun-thread-3-sleep-thread:
2926bcfccdaSmpi	# run 3 threads
2936bcfccdaSmpi	# kill process
2946bcfccdaSmpi	# sleep in threads, signal should be received while sleeping
2956bcfccdaSmpi	# handle signal
2966bcfccdaSmpi	# suspend threads until signaled
2976bcfccdaSmpi	./sigpthread -S -t 3 >out
2986bcfccdaSmpi	grep 'signal [0-2]' out
2996bcfccdaSmpi	test `wc -l <out` = 1
3006bcfccdaSmpi
3016bcfccdaSmpiREGRESS_TARGETS +=	run-thread-3-sleep-unblock
3026bcfccdaSmpirun-thread-3-sleep-unblock:
3036bcfccdaSmpi	# run 3 threads
3046bcfccdaSmpi	# kill process
3056bcfccdaSmpi	# handle signal
3066bcfccdaSmpi	# suspend threads until signaled
3076bcfccdaSmpi	# sleep in all threads
3086bcfccdaSmpi	./sigpthread -t 3 -U >out
3096bcfccdaSmpi	grep 'signal [0-2]' out
3106bcfccdaSmpi	test `wc -l <out` = 1
3116bcfccdaSmpi
3126bcfccdaSmpi# signals are blocked and received by sigwait
3136bcfccdaSmpi
3146bcfccdaSmpi.for t in 0 1 2
3156bcfccdaSmpi
3166bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-waiter-$t
3176bcfccdaSmpirun-block-thread-3-waiter-$t:
3186bcfccdaSmpi	# block signal
3196bcfccdaSmpi	# run 3 threads
3206bcfccdaSmpi	# kill process
3216bcfccdaSmpi	# wait for signal in thread $t
3226bcfccdaSmpi	# suspend threads until signaled
3236bcfccdaSmpi	./sigpthread -b -t 3 -w $t >out
3246bcfccdaSmpi	grep 'signal $t' out
3256bcfccdaSmpi	test `wc -l <out` = 1
3266bcfccdaSmpi
3276bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-main-waiter-$t
3286bcfccdaSmpirun-block-thread-3-sleep-main-waiter-$t:
3296bcfccdaSmpi	# block signal
3306bcfccdaSmpi	# run 3 threads
3316bcfccdaSmpi	# wait for signal in thread $t
3326bcfccdaSmpi	# suspend threads until signaled
3336bcfccdaSmpi	# sleep in main thread, signal should be received while waiting
3346bcfccdaSmpi	# kill process
3356bcfccdaSmpi	./sigpthread -b -s -t 3 -w $t >out
3366bcfccdaSmpi	grep 'signal $t' out
3376bcfccdaSmpi	test `wc -l <out` = 1
3386bcfccdaSmpi
3396bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-waiter-$t-sleep-thread
3406bcfccdaSmpirun-block-thread-3-sleep-thread-waiter-$t:
3416bcfccdaSmpi	# block signal
3426bcfccdaSmpi	# run 3 threads
3436bcfccdaSmpi	# kill process
3446bcfccdaSmpi	# sleep in threads, signal should be pending when waiting
3456bcfccdaSmpi	# wait for signal in thread $t
3466bcfccdaSmpi	# suspend threads until signaled
3476bcfccdaSmpi	./sigpthread -b -S -t 3 -w $t >out
3486bcfccdaSmpi	grep 'signal $t' out
3496bcfccdaSmpi	test `wc -l <out` = 1
3506bcfccdaSmpi
3516bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-kill-$t-waiter-$t
3526bcfccdaSmpirun-block-thread-3-kill-$t-waiter-$t:
3536bcfccdaSmpi	# block signal
3546bcfccdaSmpi	# run 3 threads
3556bcfccdaSmpi	# kill thread $t
3566bcfccdaSmpi	# wait for signal in thread $t
3576bcfccdaSmpi	# suspend threads until signaled
3586bcfccdaSmpi	./sigpthread -b -k $t -t 3 -w $t >out
3596bcfccdaSmpi	grep 'signal $t' out
3606bcfccdaSmpi	test `wc -l <out` = 1
3616bcfccdaSmpi
3626bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-sleep-main-kill-$t-waiter-$t
3636bcfccdaSmpirun-block-thread-3-sleep-main-kill-$t-waiter-$t:
3646bcfccdaSmpi	# block signal
3656bcfccdaSmpi	# run 3 threads
3666bcfccdaSmpi	# wait for signal in thread $t
3676bcfccdaSmpi	# suspend threads until signaled
3686bcfccdaSmpi	# sleep in main thread, signal should be received while waiting
3696bcfccdaSmpi	# kill thread $t
3706bcfccdaSmpi	./sigpthread -b -k $t -s -t 3 -w $t >out
3716bcfccdaSmpi	grep 'signal $t' out
3726bcfccdaSmpi	test `wc -l <out` = 1
3736bcfccdaSmpi
3746bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-3-kill-$t-sleep-thread-waiter-$t
3756bcfccdaSmpirun-block-thread-3-kill-$t-sleep-thread-waiter-$t:
3766bcfccdaSmpi	# block signal
3776bcfccdaSmpi	# run 3 threads
3786bcfccdaSmpi	# kill thread $t
3796bcfccdaSmpi	# sleep in threads, signal should be pending when waiting
3806bcfccdaSmpi	# wait for signal in thread $t
3816bcfccdaSmpi	# suspend threads until signaled
3826bcfccdaSmpi	./sigpthread -b -k $t -S -t 3 -w $t >out
3836bcfccdaSmpi	grep 'signal $t' out
3846bcfccdaSmpi	test `wc -l <out` = 1
3856bcfccdaSmpi
3866bcfccdaSmpi.endfor
3876bcfccdaSmpi
3886bcfccdaSmpi# simple tests with much more threads
3896bcfccdaSmpi
3906bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-100-unblock-23
3916bcfccdaSmpirun-block-thread-100-unblock-23:
3926bcfccdaSmpi	# block signal
3936bcfccdaSmpi	# run 100 threads
3946bcfccdaSmpi	# kill process
3956bcfccdaSmpi	# suspend threads until signaled
3966bcfccdaSmpi	# unblock thread 23
3976bcfccdaSmpi	# handle signal
3986bcfccdaSmpi	./sigpthread -b -t 100 -u 23 >out
3996bcfccdaSmpi	grep 'signal 23' out
4006bcfccdaSmpi	test `wc -l <out` = 1
4016bcfccdaSmpi
4026bcfccdaSmpiREGRESS_TARGETS +=	run-block-thread-100-waiter-42
4036bcfccdaSmpirun-block-thread-100-waiter-42:
4046bcfccdaSmpi	# block signal
4056bcfccdaSmpi	# run 100 threads
4066bcfccdaSmpi	# kill process
4076bcfccdaSmpi	# wait for signal in thread 42
4086bcfccdaSmpi	# suspend threads until signaled
4096bcfccdaSmpi	./sigpthread -b -t 100 -w 42 >out
4106bcfccdaSmpi	grep 'signal 42' out
4116bcfccdaSmpi	test `wc -l <out` = 1
4126bcfccdaSmpi
4136bcfccdaSmpi${REGRESS_TARGETS}: ${PROG}
4146bcfccdaSmpi
4156bcfccdaSmpi.include <bsd.regress.mk>
416