1# $FreeBSD$ 2# 3# Logic to build and install plain test programs. A plain test programs it not 4# supposed to use any specific testing framework: all it does is run some code 5# and report the test's pass or fail status via a 0 or 1 exit code. 6 7.include <bsd.init.mk> 8 9# List of C, C++ and shell test programs to build. 10# 11# Programs listed here are built according to the semantics of bsd.prog.mk for 12# PROGS, PROGS_CXX and SCRIPTS, respectively. 13# 14# Test programs registered in this manner are set to be installed into TESTSDIR 15# (which should be overriden by the Makefile) and are not required to provide a 16# manpage. 17PLAIN_TESTS_C?= 18PLAIN_TESTS_CXX?= 19PLAIN_TESTS_SH?= 20 21.if !empty(PLAIN_TESTS_C) 22PROGS+= ${PLAIN_TESTS_C} 23_TESTS+= ${PLAIN_TESTS_C} 24.for _T in ${PLAIN_TESTS_C} 25BINDIR.${_T}= ${TESTSDIR} 26MAN.${_T}?= # empty 27SRCS.${_T}?= ${_T}.c 28TEST_INTERFACE.${_T}= plain 29.endfor 30.endif 31 32.if !empty(PLAIN_TESTS_CXX) 33PROGS_CXX+= ${PLAIN_TESTS_CXX} 34_TESTS+= ${PLAIN_TESTS_CXX} 35.for _T in ${PLAIN_TESTS_CXX} 36BINDIR.${_T}= ${TESTSDIR} 37MAN.${_T}?= # empty 38SRCS.${_T}?= ${_T}.cc 39TEST_INTERFACE.${_T}= plain 40.endfor 41.endif 42 43.if !empty(PLAIN_TESTS_SH) 44SCRIPTS+= ${PLAIN_TESTS_SH} 45_TESTS+= ${PLAIN_TESTS_SH} 46.for _T in ${PLAIN_TESTS_SH} 47SCRIPTSDIR_${_T}= ${TESTSDIR} 48TEST_INTERFACE.${_T}= plain 49CLEANFILES+= ${_T} ${_T}.tmp 50# TODO(jmmv): It seems to me that this SED and SRC functionality should 51# exist in bsd.prog.mk along the support for SCRIPTS. Move it there if 52# this proves to be useful within the tests. 53PLAIN_TESTS_SH_SED_${_T}?= # empty 54PLAIN_TESTS_SH_SRC_${_T}?= ${_T}.sh 55${_T}: ${PLAIN_TESTS_SH_SRC_${_T}} 56 cat ${.ALLSRC} | sed ${PLAIN_TESTS_SH_SED_${_T}} >${.TARGET}.tmp 57 chmod +x ${.TARGET}.tmp 58 mv ${.TARGET}.tmp ${.TARGET} 59.endfor 60.endif 61 62.include <bsd.test.mk> 63