#! /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 .
# TAP support:
# - log file creation
# - log file removal
# - stdout and stderr of a script go in its log file
# - TEST_SUITE_LOG redefinition, at either automake or make time
# - VERBOSE environment variable support
# Keep in sync with 'test-log.test'.
am_parallel_tests=yes
. ./defs || Exit 1
cat > Makefile.am << 'END'
TESTS = pass.test skip.test xfail.test fail.test xpass.test error.test
TEST_SUITE_LOG = global.log
END
. "$am_testauxdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh"
# Custom markers, for use in grepping checks.
cmarker=::: # comment marker
pmarker=%%% # plain maker
cat > pass.test <&2
echo "# $cmarker pass $cmarker" >&2
echo "ok 1"
END
cat > skip.test < xfail.test <&2
echo "# $cmarker xfail $cmarker" >&2
echo "not ok 1 # TODO"
END
cat > fail.test < xpass.test <&2
echo "# $cmarker xpass $cmarker" >&2
echo "ok 1 # TODO"
END
cat > error.test <stdout && { cat stdout; Exit 1; }
cat stdout
cat global.log
test ! -f my.log
test ! -f test-suite.log
# Check that VERBOSE causes the global testsuite log to be
# emitted on stdout.
out=`cat stdout`
log=`cat global.log`
case $out in *"$log"*) ;; *) Exit 1;; esac
touch error2.log test-suite.log my.log
$MAKE clean
ls -l # For debugging.
test ! -f global.log
test ! -f pass.log
test ! -f fail.log
test ! -f xfail.log
test ! -f xpass.log
test ! -f skip.log
test ! -f error.log
# "make clean" shouldn't remove unrelated log files.
test -f error2.log
test -f test-suite.log
test -f my.log
rm -f *.log
: