13 .if defined(ATF_TESTS_SUBDIRS)
14 # Only visit subdirs when building, etc because ATF does this it on its own.
16 SUBDIR+= ${ATF_TESTS_SUBDIRS}
18 ATF_TESTS+= ${ATF_TESTS_SUBDIRS}
20 .include <bsd.subdir.mk>
24 ATF_TESTS+= ${TESTS_C}
27 DPADD.${_T}+= ${LIBATF_C}
32 .if defined(TESTS_CXX)
33 ATF_TESTS+= ${TESTS_CXX}
34 .for _T in ${TESTS_CXX}
35 SRCS.${_T}?= ${_T}${CXX_SUFFIX:U.cc}
36 DPADD.${_T}+= ${LIBATF_CXX} ${LIBATF_C}
37 LDADD.${_T}+= -latf-c++ -latf-c
42 ATF_TESTS+= ${TESTS_SH}
43 .for _T in ${TESTS_SH}
44 CLEANFILES+= ${_T} ${_T}.tmp
45 TESTS_SH_SRC_${_T}?= ${_T}.sh
46 ${_T}: ${TESTS_SH_SRC_${_T}}
47 echo '#! /usr/bin/atf-sh' > ${.TARGET}.tmp
48 cat ${.ALLSRC} >> ${.TARGET}.tmp
49 chmod +x ${.TARGET}.tmp
50 mv ${.TARGET}.tmp ${.TARGET}
56 .if ${ATFFILE:tl} != "no"
58 FILESDIR_Atffile= ${TESTSDIR}
60 .if ${ATFFILE:tl} == "auto"
61 CLEANFILES+= Atffile Atffile.tmp
64 @{ echo 'Content-Type: application/X-atf-atffile; version="1"'; \
66 echo '# Automatically generated by atf-test.mk.'; \
68 echo 'prop: test-suite = "'`uname -o`'"'; \
70 for tp in ${ATF_TESTS}; do \
73 @mv Atffile.tmp Atffile
77 # Generate support variables for atf-test.
79 # atf-test can only work for native builds, i.e. a build host of a particular
80 # OS building a release for the same OS version and architecture. The target
81 # runs ATF, which is on the build host, and the tests execute code built for
84 # Due to the dependencies of the binaries built by the source tree and how they
85 # are used by tests, it is highly possible for a execution of "make test" to
86 # report bogus results unless the new binaries are put in place.
88 # XXX (gcooper): Executing ATF from outside the source tree is improper; it
89 # should be built as part of the OS toolchain build for the host OS and
90 # executed from there.
91 ATF_PATH+= ${DESTDIR}/bin ${DESTDIR}/sbin ${DESTDIR}/usr/bin ${DESTDIR}/usr/sbin
92 TESTS_ENV+= PATH=${ATF_PATH:ts:}:${PATH}
94 ATF_BUILD_CC?= ${DESTDIR}/usr/bin/cc
95 ATF_BUILD_CPP?= ${DESTDIR}/usr/bin/cpp
96 ATF_BUILD_CXX?= ${DESTDIR}/usr/bin/c++
97 ATF_CONFDIR?= ${DESTDIR}/etc
98 ATF_INCLUDEDIR?= ${DESTDIR}/usr/include
99 ATF_LIBDIR?= ${DESTDIR}/usr/lib
100 ATF_LIBEXECDIR?= ${DESTDIR}/usr/libexec
101 ATF_PKGDATADIR?= ${DESTDIR}/usr/share/atf
102 ATF_SHELL?= ${DESTDIR}/bin/sh
103 LD_LIBRARY_PATH?= ${TESTS_LD_LIBRARY_PATH:tW:S/ /:/g}
116 .for v in ${ATF_ENV_VARS}
122 _TESTS_FIFO= ${.OBJDIR}/atf-run.fifo
123 _TESTS_LOG= ${.OBJDIR}/atf-run.log
124 CLEANFILES+= ${_TESTS_FIFO} ${_TESTS_LOG}
126 ATF_BIN?= ${DESTDIR}/usr/bin
127 ATF_REPORT?= ${ATF_BIN}/atf-report
128 ATF_RUN?= ${ATF_BIN}/atf-run
132 .if defined(TESTSDIR)
134 cd ${DESTDIR}${TESTSDIR}; \
135 rm -f ${_TESTS_FIFO}; \
136 mkfifo ${_TESTS_FIFO}; \
137 tee ${_TESTS_LOG} < ${_TESTS_FIFO} | ${TESTS_ENV} ${ATF_REPORT} & \
139 ${TESTS_ENV} ${ATF_RUN} >> ${_TESTS_FIFO}; \
142 rm -f ${_TESTS_FIFO}; \
144 echo "*** The verbatim output of atf-run has been saved to ${_TESTS_LOG}"; \
148 .include <bsd.test.mk>