bsd.test.mk revision 242711
1218885Sdim# $NetBSD: bsd.test.mk,v 1.21 2012/08/25 22:21:16 jmmv Exp $ 2218885Sdim# $FreeBSD: head/share/mk/bsd.test.mk 242711 2012-11-07 22:02:02Z sjg $ 3218885Sdim 4218885Sdim.include <bsd.init.mk> 5218885Sdim 6218885Sdim.if defined(TESTS_C) 7218885SdimPROGS+= ${TESTS_C} 8218885Sdim.for _T in ${TESTS_C} 9218885SdimBINDIR.${_T}= ${TESTSDIR} 10218885SdimMAN.${_T}?= # empty 11218885Sdim.endfor 12218885Sdim.endif 13218885Sdim 14224145Sdim.if defined(TESTS_CXX) 15234353SdimPROGS_CXX+= ${TESTS_CXX} 16226633SdimPROGS+= ${TESTS_CXX} 17218885Sdim.for _T in ${TESTS_CXX} 18218885SdimBINDIR.${_T}= ${TESTSDIR} 19263508SdimMAN.${_T}?= # empty 20263508Sdim.endfor 21263508Sdim.endif 22218885Sdim 23218885Sdim.if defined(TESTS_SH) 24218885SdimSCRIPTS+= ${TESTS_SH} 25218885Sdim.for _T in ${TESTS_SH} 26218885SdimSCRIPTSDIR_${_T}= ${TESTSDIR} 27218885Sdim.endfor 28218885Sdim.endif 29218885Sdim 30218885SdimTESTSBASE?= ${DESTDIR}/usr/tests 31218885Sdim 32218885Sdim# it is rare for test cases to have man pages 33218885Sdim.if !defined(MAN) 34224145SdimWITHOUT_MAN=yes 35224145Sdim.export WITHOUT_MAN 36224145Sdim.endif 37224145Sdim 38224145Sdim# tell progs.mk we might want to install things 39224145SdimPROG_VARS+= BINDIR 40224145SdimPROGS_TARGETS+= install 41218885Sdim 42218885Sdim.if !empty(PROGS) || !empty(PROGS_CXX) || !empty(SCRIPTS) 43263508Sdim.include <bsd.progs.mk> 44263508Sdim.endif 45263508Sdim 46263508Sdimbeforetest: .PHONY 47263508Sdim.if defined(TESTSDIR) 48263508Sdim.if ${TESTSDIR} == ${TESTSBASE} 49263508Sdim# Forbid running from ${TESTSBASE}. It can cause false positives/negatives and 50263508Sdim# it does not cover all the tests (e.g. it misses testing software in external). 51263508Sdim @echo "*** Sorry, you cannot use make test from src/tests. Install the" 52263508Sdim @echo "*** tests into their final location and run them from ${TESTSBASE}" 53224145Sdim @false 54263508Sdim.else 55263508Sdim @echo "*** Using this test does not preclude you from running the tests" 56224145Sdim @echo "*** installed in ${TESTSBASE}. This test run may raise false" 57224145Sdim @echo "*** positives and/or false negatives." 58218885Sdim.endif 59224145Sdim.else 60224145Sdim @echo "*** No TESTSDIR defined; nothing to do." 61218885Sdim @false 62224145Sdim.endif 63224145Sdim @echo 64224145Sdim 65263508Sdim.if !target(realtest) 66263508Sdimrealtest: .PHONY 67263508Sdim @echo "$@ not defined; skipping" 68224145Sdim.endif 69218885Sdim 70263508Sdimtest: .PHONY 71224145Sdim.ORDER: beforetest realtest 72224145Sdimtest: beforetest realtest 73218885Sdim 74224145Sdim.if target(aftertest) 75218885Sdim.ORDER: realtest aftertest 76218885Sdimtest: aftertest 77224145Sdim.endif 78224145Sdim 79218885Sdim.include <bsd.obj.mk> 80224145Sdim