1242711Ssjg# $NetBSD: bsd.test.mk,v 1.21 2012/08/25 22:21:16 jmmv Exp $ 2242711Ssjg# $FreeBSD$ 3242711Ssjg 4242711Ssjg.include <bsd.init.mk> 5242711Ssjg 6242711Ssjg.if defined(TESTS_C) 7242711SsjgPROGS+= ${TESTS_C} 8242711Ssjg.for _T in ${TESTS_C} 9242711SsjgBINDIR.${_T}= ${TESTSDIR} 10242711SsjgMAN.${_T}?= # empty 11242711Ssjg.endfor 12242711Ssjg.endif 13242711Ssjg 14242711Ssjg.if defined(TESTS_CXX) 15242711SsjgPROGS_CXX+= ${TESTS_CXX} 16242711SsjgPROGS+= ${TESTS_CXX} 17242711Ssjg.for _T in ${TESTS_CXX} 18242711SsjgBINDIR.${_T}= ${TESTSDIR} 19242711SsjgMAN.${_T}?= # empty 20242711Ssjg.endfor 21242711Ssjg.endif 22242711Ssjg 23242711Ssjg.if defined(TESTS_SH) 24242711SsjgSCRIPTS+= ${TESTS_SH} 25242711Ssjg.for _T in ${TESTS_SH} 26242711SsjgSCRIPTSDIR_${_T}= ${TESTSDIR} 27242711Ssjg.endfor 28242711Ssjg.endif 29242711Ssjg 30242711SsjgTESTSBASE?= ${DESTDIR}/usr/tests 31242711Ssjg 32242711Ssjg# it is rare for test cases to have man pages 33242711Ssjg.if !defined(MAN) 34242711SsjgWITHOUT_MAN=yes 35242711Ssjg.export WITHOUT_MAN 36242711Ssjg.endif 37242711Ssjg 38242711Ssjg# tell progs.mk we might want to install things 39242711SsjgPROG_VARS+= BINDIR 40242711SsjgPROGS_TARGETS+= install 41242711Ssjg 42242711Ssjg.if !empty(PROGS) || !empty(PROGS_CXX) || !empty(SCRIPTS) 43242711Ssjg.include <bsd.progs.mk> 44242711Ssjg.endif 45242711Ssjg 46242711Ssjgbeforetest: .PHONY 47242711Ssjg.if defined(TESTSDIR) 48242711Ssjg.if ${TESTSDIR} == ${TESTSBASE} 49242711Ssjg# Forbid running from ${TESTSBASE}. It can cause false positives/negatives and 50242711Ssjg# it does not cover all the tests (e.g. it misses testing software in external). 51242711Ssjg @echo "*** Sorry, you cannot use make test from src/tests. Install the" 52242711Ssjg @echo "*** tests into their final location and run them from ${TESTSBASE}" 53242711Ssjg @false 54242711Ssjg.else 55242711Ssjg @echo "*** Using this test does not preclude you from running the tests" 56242711Ssjg @echo "*** installed in ${TESTSBASE}. This test run may raise false" 57242711Ssjg @echo "*** positives and/or false negatives." 58242711Ssjg.endif 59242711Ssjg.else 60242711Ssjg @echo "*** No TESTSDIR defined; nothing to do." 61242711Ssjg @false 62242711Ssjg.endif 63242711Ssjg @echo 64242711Ssjg 65242711Ssjg.if !target(realtest) 66242711Ssjgrealtest: .PHONY 67242711Ssjg @echo "$@ not defined; skipping" 68242711Ssjg.endif 69242711Ssjg 70242711Ssjgtest: .PHONY 71242711Ssjg.ORDER: beforetest realtest 72242711Ssjgtest: beforetest realtest 73242711Ssjg 74242711Ssjg.if target(aftertest) 75242711Ssjg.ORDER: realtest aftertest 76242711Ssjgtest: aftertest 77242711Ssjg.endif 78242711Ssjg 79242711Ssjg.include <bsd.obj.mk> 80