#! /bin/sh
-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# This test is complex and tricky, but that's acceptable since we are
# testing semantics that are potentially complex and tricky.
-am_parallel_tests=yes
-. ./defs || Exit 1
+. test-init.sh
cat >> configure.ac <<END
AC_OUTPUT
TEST_LOG_COMPILER = $(SHELL)
END
-# Creative quoting below to please maintainer-check.
-echo exit '$TEST_STATUS' > foo.test
-echo exit '$TEST_STATUS' > bar.test
+echo 'exit $TEST_STATUS' > foo.test
+echo 'exit $TEST_STATUS' > bar.test
: > baz.test
TEST_STATUS=0; export TEST_STATUS
rm -f foo.trs bar.trs baz.trs
$MAKE foo.trs
test -f foo.trs
-test ! -f bar.trs
-test ! -f baz.trs
+test ! -e bar.trs
+test ! -e baz.trs
: Recreate by hand, several at the same time.
rm -f foo.trs bar.trs baz.trs
$MAKE foo.trs bar.trs
test -f foo.trs
test -f bar.trs
-test ! -f baz.trs
+test ! -e baz.trs
: Recreate by hand, with a failing test.
rm -f foo.trs bar.trs
-TEST_STATUS=1 $MAKE bar.trs baz.trs >stdout || { cat stdout; Exit 1; }
-cat stdout
-test ! -f foo.trs
+run_make -O TEST_STATUS=1 bar.trs baz.trs
+test ! -e foo.trs
test -f bar.trs
test -f baz.trs
grep '^FAIL: bar\.test' stdout
-$EGREP '^(baz|foo)\.test' stdout && Exit 1
+$EGREP '^(baz|foo)\.test' stdout && exit 1
: Recreate with a sweeping "make check", and ensure that also up-to-date
: '.trs' files are remade.
: ensure that also up-to-date '.trs' files are remade -- this time we
: grep the "make check" output verify that.
rm -f foo.trs bar.trs
-TEST_STATUS=1 $MAKE check >stdout && { cat stdout; Exit 1; }
+run_make -O -e FAIL TEST_STATUS=1 check
test -f foo.trs
test -f bar.trs
grep '^FAIL: foo\.test' stdout
: Recreate with a "make check" with redefined TESTS.
rm -f foo.trs bar.trs baz.trs
-TESTS=foo.test $MAKE -e check
+run_make TESTS=foo.test check
test -f foo.trs
-test ! -f bar.trs
-test ! -f baz.trs
+test ! -e bar.trs
+test ! -e baz.trs
: Recreate with a "make check" with redefined TEST_LOGS.
rm -f foo.trs bar.trs baz.trs
-TEST_LOGS=bar.log $MAKE -e check
-test ! -f foo.trs
+run_make TEST_LOGS=bar.log check
+test ! -e foo.trs
test -f bar.trs
-test ! -f baz.trs
+test ! -e baz.trs
: Interactions with "make recheck" are OK.
rm -f foo.trs bar.trs baz.log baz.trs
-$MAKE recheck >stdout || { cat stdout; Exit 1; }
-cat stdout
+run_make -O recheck
test -f foo.trs
test -f bar.trs
-test ! -f baz.trs
-test ! -f baz.log
+test ! -e baz.trs
+test ! -e baz.log
grep '^PASS: foo\.test' stdout
grep '^PASS: bar\.test' stdout
-grep 'baz\.test' stdout && Exit 1
+grep 'baz\.test' stdout && exit 1
count_test_results total=2 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=0
: Setup for the next check.
: '.trs' files are *not* remade.
update_stamp
rm -f foo.trs bar.trs test-suite.log
-$MAKE test-suite.log >stdout || { cat stdout; Exit 1; }
-cat stdout
+run_make -O test-suite.log
grep '^PASS: foo\.test' stdout
grep '^PASS: bar\.test' stdout
-grep 'baz\.test' stdout && Exit 1
+grep 'baz\.test' stdout && exit 1
stat *.trs *.log stamp || : # For debugging.
# Check that make has updated what it needed to, but no more.
test -f foo.trs
rm -f foo.trs
update_stamp
touch bar.test
-RECHECK_LOGS= $MAKE -e check >stdout || { cat stdout; Exit 1; }
-cat stdout
+run_make -O RECHECK_LOGS= check
# Check that make has updated what it needed to, but no more.
test -f foo.trs
is_newest bar.trs bar.test
is_newest stamp baz.trs
grep '^PASS: foo\.test' stdout
grep '^PASS: bar\.test' stdout
-grep 'baz\.test' stdout && Exit 1
+grep 'baz\.test' stdout && exit 1
: