Author: rpaulo Date: Sat Oct 19 06:50:56 2013 New Revision: 256763 URL: http://svnweb.freebsd.org/changeset/base/256763
Log: Add the automatic generation of Kyuafile files. These files are generated from bsd.test.mk because kyua is able to run test programs implemented using different libraries/frameworks. In order to make this possible, this change also extends the various *.test.mk file to explicitly indicate the interface of every test program. Submitted by: Julio Merino jmmv google.com MFC after: 2 weeks Modified: head/share/mk/atf.test.mk head/share/mk/bsd.test.mk Modified: head/share/mk/atf.test.mk ============================================================================== --- head/share/mk/atf.test.mk Sat Oct 19 06:50:17 2013 (r256762) +++ head/share/mk/atf.test.mk Sat Oct 19 06:50:56 2013 (r256763) @@ -38,31 +38,37 @@ ATFFILE?= auto .if !empty(ATF_TESTS_C) PROGS+= ${ATF_TESTS_C} +_TESTS+= ${ATF_TESTS_C} .for _T in ${ATF_TESTS_C} BINDIR.${_T}= ${TESTSDIR} MAN.${_T}?= # empty SRCS.${_T}?= ${_T}.c DPADD.${_T}+= ${LIBATF_C} LDADD.${_T}+= -latf-c +TEST_INTERFACE.${_T}= atf .endfor .endif .if !empty(ATF_TESTS_CXX) PROGS_CXX+= ${ATF_TESTS_CXX} PROGS+= ${ATF_TESTS_CXX} +_TESTS+= ${ATF_TESTS_CXX} .for _T in ${ATF_TESTS_CXX} BINDIR.${_T}= ${TESTSDIR} MAN.${_T}?= # empty SRCS.${_T}?= ${_T}${CXX_SUFFIX:U.cc} DPADD.${_T}+= ${LIBATF_CXX} ${LIBATF_C} LDADD.${_T}+= -latf-c++ -latf-c +TEST_INTERFACE.${_T}= atf .endfor .endif .if !empty(ATF_TESTS_SH) SCRIPTS+= ${ATF_TESTS_SH} +_TESTS+= ${ATF_TESTS_SH} .for _T in ${ATF_TESTS_SH} SCRIPTSDIR_${_T}= ${TESTSDIR} +TEST_INTERFACE.${_T}= atf CLEANFILES+= ${_T} ${_T}.tmp ATF_TESTS_SH_SRC_${_T}?= ${_T}.sh ${_T}: ${ATF_TESTS_SH_SRC_${_T}} Modified: head/share/mk/bsd.test.mk ============================================================================== --- head/share/mk/bsd.test.mk Sat Oct 19 06:50:17 2013 (r256762) +++ head/share/mk/bsd.test.mk Sat Oct 19 06:50:56 2013 (r256763) @@ -33,6 +33,23 @@ TESTSUITE?= FreeBSD # SUBDIR for directories that may contain helper binaries and/or data files. TESTS_SUBDIRS?= +# Knob to control the handling of the Kyuafile for this Makefile. +# +# If 'yes', a Kyuafile exists in the source tree and is installed into +# TESTSDIR. +# +# If 'auto', a Kyuafile is automatically generated based on the list of test +# programs built by the Makefile and is installed into TESTSDIR. This is the +# default and is sufficient in the majority of the cases. +# +# If 'no', no Kyuafile is installed. +KYUAFILE?= auto + +# List of all tests being built. This variable is internal should not be +# defined by the Makefile. The various *.test.mk modules extend this variable +# as needed. +_TESTS?= + .if !empty(TESTS_SUBDIRS) SUBDIR+= ${TESTS_SUBDIRS} .endif @@ -47,6 +64,33 @@ WITHOUT_MAN=yes PROG_VARS+= BINDIR PROGS_TARGETS+= install +.if ${KYUAFILE:tl} != "no" +FILES+= Kyuafile +FILESDIR_Kyuafile= ${TESTSDIR} + +.if ${KYUAFILE:tl} == "auto" +CLEANFILES+= Kyuafile Kyuafile.tmp + +Kyuafile: Makefile + @{ \ + echo '-- Automatically generated by bsd.test.mk.'; \ + echo; \ + echo 'syntax(2)'; \ + echo; \ + echo 'test_suite("${TESTSUITE}")'; \ + echo; \ + } >Kyuafile.tmp +.for _T in ${_TESTS} + @echo "${TEST_INTERFACE.${_T}}_test_program{name=\"${_T}\"}" \ + >>Kyuafile.tmp +.endfor +.for _T in ${TESTS_SUBDIRS:N.WAIT} + @echo "include(\"${_T}/Kyuafile\")" >>Kyuafile.tmp +.endfor + @mv Kyuafile.tmp Kyuafile +.endif +.endif + beforetest: .PHONY .if defined(TESTSDIR) .if ${TESTSDIR} == ${TESTSBASE} _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"