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