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