123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- #! /bin/sh
- # Copyright (C) 2011-2017 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.
- . test-init.sh
- 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.
- run_make TESTS='foo.test foo2.sh foo-log foolog.test a.log.b.sh 0.exe' 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 ! -e foo.trs
- test ! -e bar.trs
- test ! -e 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 ! -e foo.trs
- test ! -e bar.trs
- test ! -e 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.
- #
- run_make TESTS=foo.test check
- test -f foo.trs
- test ! -e bar.trs
- test ! -e sub/zardoz.trs
- $MAKE clean
- test ! -e foo.trs
- run_make TESTS='foo.test bar.sh' check
- test -f foo.trs
- test -f bar.trs
- test ! -e sub/zardoz.trs
- # "make clean" shouldn't remove '.trs' files for tests not in $(TESTS).
- run_make TESTS=bar.sh clean
- test -f foo.trs
- test ! -e bar.trs
- $MAKE clean
- #
- # Try with a subset of TEST_LOGS.
- #
- run_make TEST_LOGS=sub/zardoz.log check
- test ! -e foo.trs
- test ! -e bar.trs
- test -f sub/zardoz.trs
- $MAKE clean
- test ! -e sub/zardoz.trs
- run_make TEST_LOGS='foo.log bar.log' check
- test -f foo.trs
- test -f bar.trs
- test ! -e sub/zardoz.trs
- # "make clean" shouldn't remove '.trs' files for tests whose log
- # is not in $(TEST_LOGS).
- run_make TEST_LOGS=foo.log clean
- test ! -e foo.trs
- test -f bar.trs
- test ! -e sub/zardoz.trs
- :
|