1# $FreeBSD$ 2# 3# You must include bsd.test.mk instead of this file from your Makefile. 4# 5# Logic to build and install GoogleTest based test programs. 6# 7# GoogleTest is a C++ test framework, thus, it does not describe/articulate how 8# to write tests in other languages, e.g., C or shell, unlike the ATF, plain, 9# and TAP raw test interfaces. 10# 11# For now this is a thin wrapper around the `plain` test interface, but in the 12# future this will rely on a newer version of kyua which will integrate in 13# GoogleTest support. 14 15.if !target(__<bsd.test.mk>__) 16.error googletest.test.mk cannot be included directly. 17.endif 18 19# List of GoogleTest test programs to build. 20# 21# Programs listed here are built according to the semantics of bsd.progs.mk for 22# PROGS_CXX. 23# 24# Test programs registered in this manner are set to be installed into TESTSDIR 25# (which should be overridden by the Makefile) and are not required to provide a 26# manpage. 27GTESTS?= 28 29.if !empty(GTESTS) 30.include <googletest.test.inc.mk> 31 32PROGS_CXX+= ${GTESTS} 33.for _T in ${GTESTS} 34BINDIR.${_T}= ${TESTSDIR} 35CXXFLAGS.${_T}+= ${GTESTS_CXXFLAGS} 36MAN.${_T}?= # empty 37SRCS.${_T}?= ${_T}.cc 38.if !empty(GTESTS_WRAPPER_SH.${_T}) 39# A stopgap/workaround to let kyua execute test case one by one 40ATF_TESTS_SH+= ${GTESTS_WRAPPER_SH.${_T}} 41.else 42_TESTS+= ${_T} 43TEST_INTERFACE.${_T}= plain 44.endif 45 46.endfor 47.endif 48