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