diff options
Diffstat (limited to 't/test-trs-basic.sh')
-rwxr-xr-x | t/test-trs-basic.sh | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/t/test-trs-basic.sh b/t/test-trs-basic.sh new file mode 100755 index 000000000..a82d260bd --- /dev/null +++ b/t/test-trs-basic.sh @@ -0,0 +1,158 @@ +#! /bin/sh +# Copyright (C) 2011-2012 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 +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Check parallel harness features: +# - creation and removal of '.trs' auxiliary files +# - check some internals regarding the use of '.trs' files. + +am_parallel_tests=yes +. ./defs || Exit 1 + +cat >> configure.ac <<END +AC_OUTPUT +END + +cat > Makefile.am << 'END' +TEST_EXTENSIONS = .sh .test +TESTS = foo.test bar.sh sub/zardoz.test +TEST_LOG_COMPILER = $(SHELL) +SH_LOG_COMPILER = $(SHELL) + +## Used to check some internal details. And yes, the quotes around +## '$bases' are deliberate: they check for whitespace normalization. +tb: + $(am__set_TESTS_bases); echo "$$bases" > $@ +END + +cat > foo.test << 'END' +#! /bin/sh +exit $FOO_STATUS +END +: > bar.sh +mkdir sub +: > sub/zardoz.test + +FOO_STATUS=0; export FOO_STATUS + +$ACLOCAL +$AUTOCONF +$AUTOMAKE -a + + +# +# Check some internal details first. +# + +for vpath in : false; do + + if $vpath; then + srcdir=.. + mkdir build + cd build + else + srcdir=. + fi + + $srcdir/configure + + $MAKE tb + test x"`cat tb`" = x"foo bar sub/zardoz" + rm -f tb + # Please don't change the order of the stuff in TESTS, below. + TESTS='foo.test foo2.sh foo-log foolog.test a.log.b.sh 0.exe' $MAKE -e tb + test x"`cat tb`" = x"foo foo2 foo-log foolog a.log.b 0.exe" + rm -f tb + + cd $srcdir + +done + +# +# The 'test-suite.stamp' file and the '.trs' files get created by +# "make check" and removed by "make clean" and "make mostlyclean". +# + +: > unrelated.trs +: > sub/foo.trs + +$MAKE check +test -f foo.trs +test -f bar.trs +test -f sub/zardoz.trs +$MAKE clean +test ! -f foo.trs +test ! -f bar.trs +test ! -f sub/zardoz.trs +# Unrelated '.trs' files shouldn't be removed. +test -f unrelated.trs +test -f sub/foo.trs + +# The files should be properly created in case of testsuite failure too. +FOO_STATUS=1 $MAKE check && Exit 1 +test -f foo.trs +test -f bar.trs +test -f sub/zardoz.trs +$MAKE mostlyclean +test ! -f foo.trs +test ! -f bar.trs +test ! -f sub/zardoz.trs +# Unrelated '.trs' files shouldn't be removed. +test -f unrelated.trs +test -f sub/foo.trs + +# +# Try with a subset of TESTS. +# + +TESTS=foo.test $MAKE -e check +test -f foo.trs +test ! -f bar.trs +test ! -f sub/zardoz.trs +$MAKE clean +test ! -f foo.trs +TESTS='foo.test bar.sh' $MAKE -e check +test -f foo.trs +test -f bar.trs +test ! -f sub/zardoz.trs +# "make clean" shouldn't remove '.trs' files for tests not in $(TESTS). +TESTS=bar.sh $MAKE -e clean +test -f foo.trs +test ! -f bar.trs + +$MAKE clean + +# +# Try with a subset of TEST_LOGS. +# + +TEST_LOGS=sub/zardoz.log $MAKE -e check +test ! -f foo.trs +test ! -f bar.trs +test -f sub/zardoz.trs +$MAKE clean +test ! -f sub/zardoz.trs +TEST_LOGS='foo.log bar.log' $MAKE -e check +test -f foo.trs +test -f bar.trs +test ! -f sub/zardoz.trs +# "make clean" shouldn't remove '.trs' files for tests whose log +# is not in $(TEST_LOGS). +TEST_LOGS=foo.log $MAKE -e clean +test ! -f foo.trs +test -f bar.trs +test ! -f sub/zardoz.trs + +: |