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
_______________________________________________
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"

Reply via email to