150c5d27bSSimon J. Gerraty# $NetBSD: bsd.test.mk,v 1.21 2012/08/25 22:21:16 jmmv Exp $ 250c5d27bSSimon J. Gerraty# $FreeBSD$ 350c5d27bSSimon J. Gerraty 450c5d27bSSimon J. Gerraty.include <bsd.init.mk> 550c5d27bSSimon J. Gerraty 650c5d27bSSimon J. Gerraty.if defined(TESTS_C) 750c5d27bSSimon J. GerratyPROGS+= ${TESTS_C} 850c5d27bSSimon J. Gerraty.for _T in ${TESTS_C} 950c5d27bSSimon J. GerratyBINDIR.${_T}= ${TESTSDIR} 1050c5d27bSSimon J. GerratyMAN.${_T}?= # empty 1150c5d27bSSimon J. Gerraty.endfor 1250c5d27bSSimon J. Gerraty.endif 1350c5d27bSSimon J. Gerraty 1450c5d27bSSimon J. Gerraty.if defined(TESTS_CXX) 1550c5d27bSSimon J. GerratyPROGS_CXX+= ${TESTS_CXX} 1650c5d27bSSimon J. GerratyPROGS+= ${TESTS_CXX} 1750c5d27bSSimon J. Gerraty.for _T in ${TESTS_CXX} 1850c5d27bSSimon J. GerratyBINDIR.${_T}= ${TESTSDIR} 1950c5d27bSSimon J. GerratyMAN.${_T}?= # empty 2050c5d27bSSimon J. Gerraty.endfor 2150c5d27bSSimon J. Gerraty.endif 2250c5d27bSSimon J. Gerraty 2350c5d27bSSimon J. Gerraty.if defined(TESTS_SH) 2450c5d27bSSimon J. GerratySCRIPTS+= ${TESTS_SH} 2550c5d27bSSimon J. Gerraty.for _T in ${TESTS_SH} 2650c5d27bSSimon J. GerratySCRIPTSDIR_${_T}= ${TESTSDIR} 2750c5d27bSSimon J. Gerraty.endfor 2850c5d27bSSimon J. Gerraty.endif 2950c5d27bSSimon J. Gerraty 3050c5d27bSSimon J. GerratyTESTSBASE?= ${DESTDIR}/usr/tests 3150c5d27bSSimon J. Gerraty 3250c5d27bSSimon J. Gerraty# it is rare for test cases to have man pages 3350c5d27bSSimon J. Gerraty.if !defined(MAN) 3450c5d27bSSimon J. GerratyWITHOUT_MAN=yes 3550c5d27bSSimon J. Gerraty.export WITHOUT_MAN 3650c5d27bSSimon J. Gerraty.endif 3750c5d27bSSimon J. Gerraty 3850c5d27bSSimon J. Gerraty# tell progs.mk we might want to install things 39*6f5639e3SSimon J. GerratyBINDIR = ${TESTSDIR} 4050c5d27bSSimon J. GerratyPROGS_TARGETS+= install 4150c5d27bSSimon J. Gerraty 42*6f5639e3SSimon J. Gerraty.ifdef PROG 43*6f5639e3SSimon J. Gerraty# we came here via bsd.progs.mk below 44*6f5639e3SSimon J. Gerraty# parent will do staging. 45*6f5639e3SSimon J. GerratyMK_STAGING= no 46*6f5639e3SSimon J. Gerraty.endif 47*6f5639e3SSimon J. Gerraty 4850c5d27bSSimon J. Gerraty.if !empty(PROGS) || !empty(PROGS_CXX) || !empty(SCRIPTS) 4950c5d27bSSimon J. Gerraty.include <bsd.progs.mk> 5050c5d27bSSimon J. Gerraty.endif 5150c5d27bSSimon J. Gerraty 5250c5d27bSSimon J. Gerratybeforetest: .PHONY 5350c5d27bSSimon J. Gerraty.if defined(TESTSDIR) 5450c5d27bSSimon J. Gerraty.if ${TESTSDIR} == ${TESTSBASE} 5550c5d27bSSimon J. Gerraty# Forbid running from ${TESTSBASE}. It can cause false positives/negatives and 5650c5d27bSSimon J. Gerraty# it does not cover all the tests (e.g. it misses testing software in external). 5750c5d27bSSimon J. Gerraty @echo "*** Sorry, you cannot use make test from src/tests. Install the" 5850c5d27bSSimon J. Gerraty @echo "*** tests into their final location and run them from ${TESTSBASE}" 5950c5d27bSSimon J. Gerraty @false 6050c5d27bSSimon J. Gerraty.else 6150c5d27bSSimon J. Gerraty @echo "*** Using this test does not preclude you from running the tests" 6250c5d27bSSimon J. Gerraty @echo "*** installed in ${TESTSBASE}. This test run may raise false" 6350c5d27bSSimon J. Gerraty @echo "*** positives and/or false negatives." 6450c5d27bSSimon J. Gerraty.endif 6550c5d27bSSimon J. Gerraty.else 6650c5d27bSSimon J. Gerraty @echo "*** No TESTSDIR defined; nothing to do." 6750c5d27bSSimon J. Gerraty @false 6850c5d27bSSimon J. Gerraty.endif 6950c5d27bSSimon J. Gerraty @echo 7050c5d27bSSimon J. Gerraty 7150c5d27bSSimon J. Gerraty.if !target(realtest) 7250c5d27bSSimon J. Gerratyrealtest: .PHONY 7350c5d27bSSimon J. Gerraty @echo "$@ not defined; skipping" 7450c5d27bSSimon J. Gerraty.endif 7550c5d27bSSimon J. Gerraty 7650c5d27bSSimon J. Gerratytest: .PHONY 7750c5d27bSSimon J. Gerraty.ORDER: beforetest realtest 7850c5d27bSSimon J. Gerratytest: beforetest realtest 7950c5d27bSSimon J. Gerraty 8050c5d27bSSimon J. Gerraty.if target(aftertest) 8150c5d27bSSimon J. Gerraty.ORDER: realtest aftertest 8250c5d27bSSimon J. Gerratytest: aftertest 8350c5d27bSSimon J. Gerraty.endif 8450c5d27bSSimon J. Gerraty 85*6f5639e3SSimon J. Gerraty.if !defined(PROG) && ${MK_STAGING} != "no" 86*6f5639e3SSimon J. Gerraty.if !defined(_SKIP_BUILD) 87*6f5639e3SSimon J. Gerraty# this will handle staging if needed 88*6f5639e3SSimon J. Gerraty_SKIP_STAGING= no 89*6f5639e3SSimon J. Gerraty# but we don't want it to build anything 90*6f5639e3SSimon J. Gerraty_SKIP_BUILD= 91*6f5639e3SSimon J. Gerraty.endif 92*6f5639e3SSimon J. Gerraty.if !empty(PROGS) 93*6f5639e3SSimon J. Gerratystage_files.prog: ${PROGS} 94*6f5639e3SSimon J. Gerraty.endif 95*6f5639e3SSimon J. Gerraty 96*6f5639e3SSimon J. Gerraty.include <bsd.prog.mk> 97*6f5639e3SSimon J. Gerraty 98*6f5639e3SSimon J. Gerraty.endif 99*6f5639e3SSimon J. Gerraty.if !target(objwarn) 10050c5d27bSSimon J. Gerraty.include <bsd.obj.mk> 101*6f5639e3SSimon J. Gerraty.endif 102