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