svn commit: r274074 - head/share/mk
Garrett Cooper
ngie at FreeBSD.org
Tue Nov 4 00:19:11 UTC 2014
Author: ngie
Date: Tue Nov 4 00:19:10 2014
New Revision: 274074
URL: https://svnweb.freebsd.org/changeset/base/274074
Log:
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".
Added:
head/share/mk/netbsd-tests.test.mk (contents, props changed)
Added: head/share/mk/netbsd-tests.test.mk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/share/mk/netbsd-tests.test.mk Tue Nov 4 00:19:10 2014 (r274074)
@@ -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
More information about the svn-src-all
mailing list