Home | History | Annotate | Line # | Download | only in kernel
      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