# HG changeset patch
# User Joerg Sonnenberger <joerg@bec.de>
# Date 1364701190 -7200
# Node ID ce9347338583cd4c774e3e3ca07173a33c676c64
# Parent  0af03c5571e0b93ff919a039aa4b7e1025ba93b8
ATF glue

diff -r 0af03c5571e0 -r ce9347338583 tests/Makefile
--- a/tests/Makefile	Sat Mar 30 23:29:08 2013 -0400
+++ b/tests/Makefile	Sun Mar 31 05:39:50 2013 +0200
@@ -1,9 +1,18 @@
-TRADCPP=../obj/tradcpp  # XXX
+#	$NetBSD$
+
+all: run-tests .WAIT show-diffs
+
+TESTDIR=	${TESTSBASE}/usr.bin/tradcpp
+
+TESTS_SH+=	tradcpp
+
+.include <bsd.test.mk>
+
+TRADCPP_OBJDIR!=	${MAKE} -C .. -V .OBJDIR
+TRADCPP=	${TRADCPP_OBJDIR}/tradcpp
 
 TESTS=t01 t02 t03 t04 t05 t06 t07 t08 t09 t10 t11 t12
 
-all: run-tests .WAIT show-diffs
-
 .for T in $(TESTS)
 run-tests: $(T).diff
 
diff -r 0af03c5571e0 -r ce9347338583 tests/tradcpp.sh
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/tradcpp.sh	Sun Mar 31 05:39:50 2013 +0200
@@ -0,0 +1,35 @@
+test_case() {
+	local name="$1"
+	local source="$2"
+	local tradcpp="$3"
+	local descr="Test tradcpp behavior"
+	atf_test_case ${name}
+	if [ -e "$(atf_get_srcdir)/${name}.txt" ]; then
+		descr=$(cat "$(atf_get_srcdir)/${name}.txt")
+	fi
+	eval "${name}_head() { \
+		atf_set descr \"${descr}\"; \
+		atf_set require.progs \"/usr/bin/tradcpp\"; \
+	}"
+	local stdout="file:$(atf_get_srcdir)/${name}.good"
+	local options=""
+	local options_file="$(atf_get_srcdir)/${name}.cmdline"
+	if [ -e ${options_file} ]; then
+		options=$(cat ${options_file})
+	fi
+	eval "${name}_body() { \
+		atf_check -s eq:0 -o ${stdout} "${tradcpp} ${options} ${source} 2\>\&1"; \
+	}"
+}
+
+atf_init_test_cases() {
+	local tradcpp=$(make -V .OBJDIR -C $(atf_get_srcdir)/..)/tradcpp
+	if [ ! -x ${tradcpp} ]; then
+		tradcpp=/usr/bin/tradcpp
+	fi
+	for testfile in $(atf_get_srcdir)/t*.c; do
+		local name=$(basename ${testfile%%.c})
+		test_case ${name} ${testfile} ${tradcpp}
+		atf_add_test_case ${name}
+	done
+}