summaryrefslogtreecommitdiffstats
path: root/share/mk/netbsd-tests.test.mk
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2014-11-04 00:19:10 +0000
committerngie <ngie@FreeBSD.org>2014-11-04 00:19:10 +0000
commit45ca3cac9513a8d0c987137956bdd965a077b441 (patch)
tree3711d9d8d613c3c6cd05d7d6f2891a1b691b6085 /share/mk/netbsd-tests.test.mk
parentfa36aa77787fbeb88d7756e7150c590f8daee614 (diff)
downloadFreeBSD-src-45ca3cac9513a8d0c987137956bdd965a077b441.zip
FreeBSD-src-45ca3cac9513a8d0c987137956bdd965a077b441.tar.gz
Add Makefile snippet to ease porting NetBSD testcases to FreeBSD from
contrib/netbsd-tests This Makefile snippet handles polluting testcases with -lnetbsd, specific headers for ATF version differences, and does necessary rewriting for the testcases to match the format discussed on the TestSuite wiki page (t_<foo> -> <foo>_test) One must define SRCTOP (inspired by projects/bmake), OBJTOP, and TESTSRC (e.g. contrib/netbsd-tests/lib/libc/gen) to use the Makefile snippet Test programs are specific either via NETBSD_ATF_TESTS_C or NETBSD_ATF_TESTS_SH C++ analogs aren't currently implemented. The imported testcases will be cleaned up to use this Makefile snippet pseudo "API".
Diffstat (limited to 'share/mk/netbsd-tests.test.mk')
-rw-r--r--share/mk/netbsd-tests.test.mk49
1 files changed, 49 insertions, 0 deletions
diff --git a/share/mk/netbsd-tests.test.mk b/share/mk/netbsd-tests.test.mk
new file mode 100644
index 0000000..150f663
--- /dev/null
+++ b/share/mk/netbsd-tests.test.mk
@@ -0,0 +1,49 @@
+# $FreeBSD$
+
+.if !target(__netbsd_tests.test.mk__)
+__netbsd_tests.test.mk__:
+
+.if !defined(OBJTOP)
+.error "Please define OBJTOP to the absolute path of the top of the object tree"
+.endif
+
+.if !defined(SRCTOP)
+.error "Please define SRCTOP to the absolute path of the top of the source tree"
+.endif
+
+.if !defined(TESTSRC)
+.error "Please define TESTSRC to the absolute path of the test sources, e.g. contrib/netbsd-tests/lib/libc/stdio"
+.endif
+
+.PATH: ${TESTSRC}
+
+LIBNETBSD_SRCDIR= ${SRCTOP}/lib/libnetbsd
+LIBNETBSD_OBJDIR= ${OBJTOP}/lib/libnetbsd
+
+.for t in ${NETBSD_ATF_TESTS_C}
+# XXX: needed for atf-c/config.h after v0.2.1 upgrade. See NetBSD PR #
+# misc/49356 for more details
+CFLAGS.$t+= -I${SRCTOP}/contrib/atf
+CFLAGS.$t+= -I${LIBNETBSD_SRCDIR} -I${SRCTOP}/contrib/netbsd-tests
+LDFLAGS.$t+= -L${LIBNETBSD_OBJDIR}
+
+DPADD.$t+= ${LIBNETBSD}
+LDADD.$t+= -lnetbsd
+
+SRCS.$t?= ${t:C/^/t_/:C/_test$//g}.c
+.endfor
+
+ATF_TESTS_C+= ${NETBSD_ATF_TESTS_C}
+
+# A C++ analog isn't provided because there aren't any C++ testcases in
+# contrib/netbsd-tests
+
+.for t in ${NETBSD_ATF_TESTS_SH}
+ATF_TESTS_SH_SRC_$t?= ${t:C/^/t_/:C/_test$//g}.sh
+.endfor
+
+ATF_TESTS_SH+= ${NETBSD_ATF_TESTS_SH}
+
+.endif
+
+# vim: syntax=make
OpenPOWER on IntegriCloud