Makefile revision 1.92
1# $NetBSD: Makefile,v 1.92 2025/04/26 03:03:35 riastradh Exp $
2
3NOMAN=		# defined
4
5.include <bsd.own.mk>
6
7TESTSDIR=	${TESTSBASE}/kernel
8
9TESTS_SUBDIRS+=	kqueue
10TESTS_C+=	t_cloexec
11#TESTS_C+=	t_epoll
12TESTS_C+=	t_execregs
13TESTS_C+=	t_fcntl
14.if ${MKRUMP} != "no"
15TESTS_C+=	t_fdrestart
16.endif
17TESTS_C+=	t_kauth_pr_47598
18TESTS_C+=	t_ksem
19TESTS_C+=	t_lock
20TESTS_C+=	t_lockf
21TESTS_C+=	t_memfd_create
22TESTS_C+=	t_mqueue
23TESTS_C+=	t_nanosleep
24TESTS_C+=	t_open_pr_57260
25TESTS_C+=	t_proccwd
26TESTS_C+=	t_pty
27TESTS_C+=	t_semtimedop
28TESTS_C+=	t_signal_and_sp
29TESTS_C+=	t_sysv
30TESTS_C+=	t_subr_prf
31TESTS_C+=	t_sysctl
32TESTS_C+=	t_timeleft
33.if ${MKRUMP} != "no"
34TESTS_C+=	t_unmount
35.endif
36TESTS_C+=	t_zombie
37
38TESTS_SH=	t_fexecve
39TESTS_SH+=	t_fpufork
40TESTS_SH+=	t_interp
41TESTS_SH+=	t_magic_symlinks
42TESTS_SH+=	t_nointerpreter
43TESTS_SH+=	t_origin
44TESTS_SH+=	t_procpath
45TESTS_SH+=	t_ps_strings
46.if ${MKRUMP} != "no"
47TESTS_SH+=	t_simplehook
48.endif
49TESTS_SH+=	t_trapsignal
50TESTS_SH+=	t_umountstress
51TESTS_SH+=	t_umount
52
53BINDIR=		${TESTSDIR}
54PROGS+=		h_cloexec
55PROGS+=		h_execregs
56PROGS+=		h_execsp_dynamic
57PROGS+=		h_execsp_static
58PROGS+=		h_fexecve
59PROGS+=		h_fpufork
60PROGS+=		h_getprocpath
61PROGS+=		h_ps_strings1
62PROGS+=		h_ps_strings2
63PROGS+=		h_segv
64
65SCRIPTSDIR=	${TESTSDIR}
66SCRIPTS=	h_interpreter.sh
67
68LDADD.t_fdrestart+=	-lpthread
69LDADD.t_fdrestart+=	-lrumpnet_local
70LDADD.t_fdrestart+=	-lrumpnet_net
71LDADD.t_fdrestart+=	-lrumpnet_netinet
72LDADD.t_fdrestart+=	-lrumpnet
73LDADD.t_fdrestart+=	${LIBRUMPBASE}
74
75LDADD.t_mqueue+= -lrt
76
77LDADD.t_unmount+=	-lrumpfs_tmpfs
78LDADD.t_unmount+=	${LIBRUMPBASE}
79
80
81.if (${MKRUMP} != "no") && !defined(BSD_MK_COMPAT_FILE)
82TESTS_SUBDIRS+=	tty
83
84TESTS_C+=	t_extattrctl
85TESTS_C+=	t_filedesc
86TESTS_C+=	t_rnd
87LDADD.t_extattrctl+= ${LIBRUMPBASE}
88LDADD.t_filedesc+=  ${LDADD.t_rnd}
89LDADD.t_rnd+=  -lrumpdev_rnd -lrumpdev ${LIBRUMPBASE}
90
91.endif
92
93LDADD.t_timeleft+=	-lpthread
94
95CPPFLAGS+=	-D_KERNTYPES
96CPPFLAGS.t_unmount.c+=	-D_KMEMUSER -D__EXPOSE_MOUNT
97
98.if exists(${.PARSEDIR}/arch/${MACHINE_ARCH})
99ARCHDIR:=		${.PARSEDIR}/arch/${MACHINE_ARCH}
100.else
101ARCHDIR:=		${.PARSEDIR}/arch/${MACHINE_CPU}
102.endif
103.PATH:			${ARCHDIR}
104
105.if exists(${ARCHDIR}/stack_pointer.h)
106DPSRCS+=			${ARCHDIR}/stack_pointer.h
107CPPFLAGS.t_signal_and_sp.c+=	-I${ARCHDIR} -DHAVE_STACK_POINTER_H
108.endif
109
110SRCS.t_signal_and_sp+=		t_signal_and_sp.c
111.if exists(${ARCHDIR}/contextspfunc.S)
112DPSRCS+=			${ARCHDIR}/contextspfunc.S
113CPPFLAGS.t_signal_and_sp.c+=	-DHAVE_CONTEXTSPFUNC
114SRCS.t_signal_and_sp+=		contextspfunc.S
115.endif
116.if exists(${ARCHDIR}/signalsphandler.S)
117DPSRCS+=			${ARCHDIR}/signalsphandler.S
118CPPFLAGS.t_signal_and_sp.c+=	-DHAVE_SIGNALSPHANDLER
119SRCS.t_signal_and_sp+=		signalsphandler.S
120.endif
121.if exists(${ARCHDIR}/threadspfunc.S)
122DPSRCS+=			${ARCHDIR}/threadspfunc.S
123CPPFLAGS.t_signal_and_sp.c+=	-DHAVE_THREADSPFUNC
124SRCS.t_signal_and_sp+=		threadspfunc.S
125LDADD.t_signal_and_sp+=		-pthread
126.endif
127
128SRCS.h_execsp_dynamic+=		h_execsp.c
129SRCS.h_execsp_static+=		h_execsp.c
130.if exists(${ARCHDIR}/execsp.S)
131DPSRCS+=			${ARCHDIR}/execsp.S
132CPPFLAGS.t_signal_and_sp.c+=	-DHAVE_EXECSP
133SRCS.h_execsp_dynamic+=		execsp.S
134SRCS.h_execsp_static+=		execsp.S
135LDFLAGS.h_execsp_dynamic+=	-Wl,-e,execsp_start
136LDFLAGS.h_execsp_static+=	-Wl,-e,execsp_start
137.else
138CPPFLAGS.h_execsp.c+=		-Dexecsp_main=main
139.endif
140LDSTATIC.h_execsp_static=	-static
141
142.if ${MACHINE_CPU} == "mips"
143CPPFLAGS.contextspfunc.S+=	-I${NETBSDSRCDIR}/lib/libc/arch/mips
144CPPFLAGS.execsp.S+=		-I${NETBSDSRCDIR}/lib/libc/arch/mips
145CPPFLAGS.signalsphandler.S+=	-I${NETBSDSRCDIR}/lib/libc/arch/mips
146.endif
147
148.PATH:			${NETBSDSRCDIR}/sys/kern
149TESTS_C+=		t_extent
150SRCS.t_extent=		t_extent.c subr_extent.c
151CPPFLAGS.t_extent.c=	-D_EXTENT_TESTING -D__POOL_EXPOSE -D_KERNTYPES
152CPPFLAGS.subr_extent.c=	-D_EXTENT_TESTING -D__POOL_EXPOSE -D_KERNTYPES
153
154TESTS_C+=		t_time_arith
155SRCS.t_time_arith=	t_time_arith.c subr_time_arith.c
156CPPFLAGS.t_time_arith.c+=	-I${NETBSDSRCDIR}/sys -D_TIME_TESTING
157CPPFLAGS.subr_time_arith.c+=	-I${NETBSDSRCDIR}/sys -D_TIME_TESTING
158LDADD.t_time_arith+=	-lutil
159
160t_subr_prf.c: gen_t_subr_prf ${NETBSDSRCDIR}/sys/kern/subr_prf.c
161	${HOST_SH} ${.ALLSRC} ${.TARGET}
162.if ${MKSANITIZER:Uno} == "yes"
163	# These symbols will be redefined by MKSANITIZER
164	${TOOL_SED} -i '/undef .*printf/d' ${.TARGET}
165.endif
166
167CPPFLAGS.t_subr_prf.c=	-Wno-pointer-sign	# XXX platform vs kernel SHA2
168
169# Test explicitly tests failure modes.
170CPPFLAGS.t_subr_prf.c+=	${CC_WNO_FORMAT_TRUNCATION}
171
172SANITIZER_RENAME_CLASSES+=		t_subr_prf
173SANITIZER_RENAME_FILES.t_subr_prf+=	t_subr_prf.c
174SANITIZER_RENAME_SYMBOL.t_subr_prf+=	snprintf
175SANITIZER_RENAME_SYMBOL.t_subr_prf+=	vsnprintf
176SANITIZER_RENAME_SYMBOL.t_subr_prf+=	sprintf
177SANITIZER_RENAME_SYMBOL.t_subr_prf+=	vsnprintf
178SANITIZER_RENAME_SYMBOL.t_subr_prf+=	vasprintf
179
180CLEANFILES+=	t_subr_prf.c
181
182LDADD.h_segv+=	-lm
183
184.if exists(arch/${MACHINE_ARCH}/execregs.h)
185DPSRCS+=		arch/${MACHINE_ARCH}/execregs.h
186CPPFLAGS.t_execregs.c+=	-I${ARCHDIR}
187CPPFLAGS.t_execregs.c+=	-I${.CURDIR}/../lib/libc/gen # isqemu.h
188CPPFLAGS.t_execregs.c+=	-DHAVE_EXECREGS_TEST
189SRCS.t_execregs+=	t_execregs.c
190SRCS.t_execregs+=	execregs.c
191LDSTATIC.h_execregs=	-static
192LDFLAGS.h_execregs+=	-Wl,-e,execregs_start
193.else
194SRCS.h_execregs=	h_execregs_unimpl.c
195.endif
196
197.include <bsd.test.mk>
198