summaryrefslogtreecommitdiff
path: root/src/regress/lib/libc/sys/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/regress/lib/libc/sys/Makefile')
-rw-r--r--src/regress/lib/libc/sys/Makefile104
1 files changed, 104 insertions, 0 deletions
diff --git a/src/regress/lib/libc/sys/Makefile b/src/regress/lib/libc/sys/Makefile
new file mode 100644
index 0000000000..e8c06d0fb2
--- /dev/null
+++ b/src/regress/lib/libc/sys/Makefile
@@ -0,0 +1,104 @@
1# $OpenBSD: Makefile,v 1.1.1.1 2019/11/19 19:57:03 bluhm Exp $
2
3# Copyright (c) 2019 Moritz Buhl <openbsd@moritzbuhl.de>
4# Copyright (c) 2019 Alexander Bluhm <bluhm@openbsd.org>
5#
6# Permission to use, copy, modify, and distribute this software for any
7# purpose with or without fee is hereby granted, provided that the above
8# copyright notice and this permission notice appear in all copies.
9#
10# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17
18# Each test program in PROGS may define several numbered subtests.
19# In a first step compile all programs and extract their parameters.
20# For each PROG define new regression subtests based on the test number.
21
22.if defined(NUMBERS)
23REGRESS_TARGETS = ${NUMBERS:S/^/run-${PROG}-/}
24.else
25REGRESS_TARGETS = ${PROGS:S/^/run-/}
26.endif
27
28PROGS =
29PROGS += t_access t_bind t_chroot t_clock_gettime t_dup t_fsync
30PROGS += t_getgroups t_getitimer t_getlogin t_getpid t_getrusage
31PROGS += t_getsid t_getsockname t_gettimeofday t_kill t_link t_listen
32PROGS += t_mkdir t_mknod t_msgctl t_msgget t_msgsnd t_msync t_pipe
33PROGS += t_poll t_revoke t_select t_sendrecv t_setuid t_socketpair
34PROGS += t_sigaction t_truncate t_umask t_write
35
36# failing tests
37.if 0
38PROGS += t_mkfifo
39PROGS += t_mlock
40PROGS += t_mmap
41PROGS += t_msgrcv
42PROGS += t_pipe2
43PROGS += t_ptrace
44PROGS += t_stat
45PROGS += t_syscall
46PROGS += t_unlink
47.endif
48
49. for p in ${PROGS}
50SRCS_$p = $p.c atf-c.c
51. endfor
52
53LDADD_t_getpid = -lpthread
54
55run-t_truncate: setup-t_truncate
56setup-t_truncate:
57 ${SUDO} touch truncate_test.root_owned
58 ${SUDO} chown root:wheel truncate_test.root_owned
59
60run-t_chroot: cleanup-t_chroot
61cleanup-t_chroot:
62 ${SUDO} rm -rf dir
63
64CLEANFILES = access dummy mmap truncate_test.root_owned
65
66.for p in ${PROGS}
67run-$p: $p
68 @echo "\n======== $@ ========"
69 ntests="`./$p -n`" && \
70 echo "1..$$ntests" && \
71 tnumbers="`jot -ns' ' - 1 $$ntests`" && \
72 ${.MAKE} -C ${.CURDIR} PROG=$p NUMBERS="$$tnumbers" regress
73.endfor
74
75.if defined(NUMBERS)
76CUR_USER != id -g
77
78. for n in ${NUMBERS}
79DESCR_$n != eval `./${PROG} -i $n` && echo $$DESCR
80REQ_USER_$n != eval `./${PROG} -i $n` && echo $$REQ_USER
81
82. if ${REQ_USER_$n} == "root"
83REGRESS_ROOT_TARGETS += run-${PROG}-$n
84. endif
85
86run-${PROG}-$n:
87 @echo "$n ${DESCR_$n}"
88. if ${REQ_USER_$n} == "root"
89 ${SUDO} ./${PROG} -r $n
90. elif ${REQ_USER_$n} == "unprivileged" && ${CUR_USER} == 0
91 ${SUDO} su ${BUILDUSER} -c exec ./${PROG} -r $n
92. elif ${REQ_USER_$n} == "unprivileged" || ${REQ_USER_$n} == ""
93 ./${PROG} -r $n
94. else
95 # bad REQ_USER: ${REQ_USER_$n}
96 false
97. endif
98
99. endfor
100.endif
101
102.include <bsd.regress.mk>
103
104clean: cleanup-t_chroot