diff options
Diffstat (limited to 't/tap-signal.tap')
-rw-r--r-- | t/tap-signal.tap | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/t/tap-signal.tap b/t/tap-signal.tap deleted file mode 100644 index 86d487377..000000000 --- a/t/tap-signal.tap +++ /dev/null @@ -1,133 +0,0 @@ -#! /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 <https://www.gnu.org/licenses/>. - -# TAP support: -# - a test script terminated by a signal causes an hard error - -. test-init.sh - -fetch_tap_driver - -plan_ 10 - -cat >> configure.ac <<END -AC_OUTPUT -END - -cat > Makefile.am << END -TEST_LOG_DRIVER = \$(srcdir)/tap-driver -TEST_LOG_COMPILER = $PERL -w -## Will be updated later. -TESTS = -END - -all_signals='1 2 3 9 13 15' -blocked_signals='' -for sig in $all_signals; do - # Ignore blocked signals - if is_blocked_signal $sig; then - blocked_signals="$blocked_signals $sig" - continue - fi - # Write the dummy test scripts in perl, not as shell scripts, to work - # around unportabilities in the handling of signals (in fact, even - # with bash, the older script were unable to properly deliver a SIGQUIT - # to themselves consistently). The shebang is dummy here, as we prefer - # to rely on the definition of TEST_LOG_COMPILER instead. - unindent > signal-$sig.test <<END - #! /usr/bin/env perl - # We need autoflush to avoid losing output, which could cause spurious - # "no test plan seen" in the TAP driver. - BEGIN { $| = 1 } - use warnings FATAL => "all"; - print "1..1\\n"; - print "ok 1\\n"; - kill $sig, \$\$; - print "Bail out! \$0 not killed?\\n"; -END - echo TESTS += signal-$sig.test >> Makefile.am -done -results_count=$(ls *.test | wc -l | tr -d "$tab$sp") - -chmod a+x *.test - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - -system=$(uname -s -r || echo unknown) # Needed later. - -signal_caught () -{ - numeric=$1 - case $numeric in - 1) symbolic=HUP;; - 2) symbolic=INT;; - 3) symbolic=QUIT;; - 9) symbolic=KILL;; - 13) symbolic=PIPE;; - 15) symbolic=TERM;; - *) fatal_ "unexpected signal number '$numeric'" - esac - # Sending a SIGQUIT on Cygwin 1.5 can cause a segmentation fault - # instead (sometimes). Don't let this older bug pollute the results - # of our testsuite. - case $numeric,$system in - 3,CYGWIN*\ 1.5.*) sig_re="((SIG)?($symbolic|SEGV)|$numeric|11)";; - *) sig_re="((SIG)?$symbolic|$numeric)";; - esac - wbound_re="($|[^a-zA-Z0-9_-])" - pfx_re="^ERROR: signal-$numeric\\.test" - rx="${pfx_re} .*terminated by signal ${sig_re}${wbound_re}" - desc="TAP driver catch test termination by signal SIG${symbolic}" - case " $blocked_signals " in - *" $numeric "*) skip_ -r "SIG$symbolic is blocked" "$desc" ;; - *) command_ok_ "$desc" env LC_ALL=C $EGREP "$rx" stdout ;; - esac -} - -command_ok_ '"make check" fails' eval ' - ( - run_make -e IGNORE -O check - # Extra "echo" and silencing of xtraces required to avoid possible - # garbled output with NetBSD make, which would miss some final - # newlines in the expected places and thus mess up our TAP output. - set +x; echo - test $am_make_rc -gt 0 - ) -' -cat stdout # For debugging. - -command_ok_ "count of test results" count_test_results \ - total=$(($results_count * 2)) \ - pass=$results_count error=$results_count \ - fail=0 xpass=0 xfail=0 skip=0 - -for sig in $all_signals; do - signal_caught $sig -done - -echo 'TEST_LOG_DRIVER_FLAGS = --ignore-exit' >> Makefile - -command_ok_ '"make check" passes [--ignore-exit]' run_make -O check - -command_ok_ "count of test results [--ignore-exit]" count_test_results \ - total=$results_count pass=$results_count \ - fail=0 xpass=0 xfail=0 skip=0 error=0 - -: |