summaryrefslogtreecommitdiffstats
path: root/share/mk/tap.test.mk
diff options
context:
space:
mode:
authorjmmv <jmmv@FreeBSD.org>2014-03-06 13:30:36 +0000
committerjmmv <jmmv@FreeBSD.org>2014-03-06 13:30:36 +0000
commit74e392eb6c6b063a59702d6c9e0c4aeda35bf2d0 (patch)
tree95551b1c20ac8b5e39b67098f5da7f6eb5e9ce34 /share/mk/tap.test.mk
parentccebcfd33be062df09a39f66bdcedd42460c15f4 (diff)
downloadFreeBSD-src-74e392eb6c6b063a59702d6c9e0c4aeda35bf2d0.zip
FreeBSD-src-74e392eb6c6b063a59702d6c9e0c4aeda35bf2d0.tar.gz
MFC a couple of improvements to the test suite mk files.
- r260632 Support defining test program metadata from the Makefiles. - r260633 Support perl-based TAP-compliant test programs.
Diffstat (limited to 'share/mk/tap.test.mk')
-rw-r--r--share/mk/tap.test.mk27
1 files changed, 27 insertions, 0 deletions
diff --git a/share/mk/tap.test.mk b/share/mk/tap.test.mk
index 394f685..9c1ef54 100644
--- a/share/mk/tap.test.mk
+++ b/share/mk/tap.test.mk
@@ -18,8 +18,12 @@
# manpage.
TAP_TESTS_C?=
TAP_TESTS_CXX?=
+TAP_TESTS_PERL?=
TAP_TESTS_SH?=
+# Perl interpreter to use for test programs written in this language.
+TAP_PERL_INTERPRETER?= /usr/local/bin/perl
+
.if !empty(TAP_TESTS_C)
PROGS+= ${TAP_TESTS_C}
_TESTS+= ${TAP_TESTS_C}
@@ -42,6 +46,29 @@ TEST_INTERFACE.${_T}= tap
.endfor
.endif
+.if !empty(TAP_TESTS_PERL)
+SCRIPTS+= ${TAP_TESTS_PERL}
+_TESTS+= ${TAP_TESTS_PERL}
+.for _T in ${TAP_TESTS_PERL}
+SCRIPTSDIR_${_T}= ${TESTSDIR}
+TEST_INTERFACE.${_T}= tap
+TEST_METADATA.${_T}+= required_programs="${TAP_PERL_INTERPRETER}"
+CLEANFILES+= ${_T} ${_T}.tmp
+# TODO(jmmv): It seems to me that this SED and SRC functionality should
+# exist in bsd.prog.mk along the support for SCRIPTS. Move it there if
+# this proves to be useful within the tests.
+TAP_TESTS_PERL_SED_${_T}?= # empty
+TAP_TESTS_PERL_SRC_${_T}?= ${_T}.pl
+${_T}: ${TAP_TESTS_PERL_SRC_${_T}}
+ { \
+ echo '#! ${TAP_PERL_INTERPRETER}'; \
+ cat ${.ALLSRC} | sed ${TAP_TESTS_PERL_SED_${_T}}; \
+ } >${.TARGET}.tmp
+ chmod +x ${.TARGET}.tmp
+ mv ${.TARGET}.tmp ${.TARGET}
+.endfor
+.endif
+
.if !empty(TAP_TESTS_SH)
SCRIPTS+= ${TAP_TESTS_SH}
_TESTS+= ${TAP_TESTS_SH}
OpenPOWER on IntegriCloud