Hash :
5b44ce39
Author :
Date :
2012-02-23T13:07:57
tests: quote 'like this', not `like this', as per GCS recommendation This patch converts the automake testsuite and related files, to the use of new quoting format 'like this' or "like this" rather than `like this'. This is done for consistency with the new recommendations in the GNU Coding Standards, and, well, because I've come to actually prefer the '...' and "..." quoting formats over the `...' one. * tests/README: Update quoting format throughout. Remove some "excessive" use of quoting, and throw in minor rewording where appropriate. * tests/Makefile.am: Likewise, for comments. * tests/CheckListOfTests.am: Likewise. * tests/defs-static.in: Likewise. * tests/defs: Likewise. * tests/trivial-test-driver: Likewise. * Many tests/*.tap, tests/*.test and tests/*.sh files: Likewise, and for the diagnostic and informational messages as well. * tests/gen-testsuite-part: Likewise, and for the generated tests as well.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
#! /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/>.
# Sanity check for the automake testsuite.
# Check that, in case of failing commands, the correct exit status is
# passed to the exit trap installed by the './defs' script.
# Also check that the 'errexit' shell flag is active.
am_create_testdir=no
. ./defs || Exit 99
plan_ 34
# This test becomes more cumbersome if we keep the 'errexit' shell flag
# set. And removing it is no big deal, as this test is a TAP-based one,
# so that false positives remain very unlikely.
set +e
AM_TESTS_REEXEC=no; export AM_TESTS_REEXEC
# It's especially important that the 'unset' is done before sourcing
# ./defs, i.e., when 'set -e' is not active yet, for the benefit of shells
# (like Bash 2.05 and Solaris 10 /bin/ksh) that returns a non-zero status
# when unsetting an already-unset variable.
init='stderr_fileno_=2; unset am_explicit_skips; . ./defs'
for st in 1 2 3 4 5 77 99 126 127 128 129 130 255; do
for exit_cmd in "Exit $st" "sh -c 'exit $st'"; do
$SHELL -c "$init; $exit_cmd; :"
command_ok_ "$exit_cmd" test $? -eq $st
done
done
for sig in 1 2 13 15; do
if is_blocked_signal $sig; then
skip_ -r "signal $sig seems blocked"
continue
fi
if test $sig -eq 2; then
# Some Korn shells might otherwise get a spurious SIGINT signal when
# one is sent to the child $SHELL. For more details, see:
# <http://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
trap : 2
fi
$SHELL -c "$init; kill -$sig \$\$; :"
rc=$?
if test $sig -eq 2; then
# Reset default SIGINT handler as portably as possible.
trap 2 || trap - 2
fi
if test x"$sh_errexit_works" = x"yes"; then
# The exit trap should turn into an hard errors any failure
# caused by signals.
command_ok_ "kill -$sig" test $rc -eq 99
else
# The exit trap is not installed, so that the shell should exit
# with status 128+n when receiving signal number n. But don't
# be too strict in the check, as POSIX only says that "The exit
# status of a command that terminated because it received a
# signal shall be reported as greater than 128".
command_ok_ "kill -$sig" test $rc -gt 128
fi
unset rc
done
: Non-existent program.
# Solaris 10 /bin/sh erroneously exit with success right away when the
# following three conditions are met at the same time:
# 1. the 'errexit' flag is active,
# 2. an exit trap is installed, and
# 3. a non-existing command is issued.
# Note that the non-existent command is issued as the last command to
# the shell in the next line; this is deliberate.
if $SHELL -c 'set -e; trap "exit \$?" 0; non-existent-program'; then
maybe_todo=TODO reason="known Solaris /bin/sh bug"
else
maybe_todo="" reason=""
fi
$SHELL -c "$init; non-existent-program; :"
command_ok_ "command not found" -D "$maybe_todo" -r "$reason" \
-- test $? -gt 0
: Non-executable command.
test -f Makefile && test ! -x Makefile || \
framowork_failure_ "no proper Makefile in the current directory"
$SHELL -c "$init; ./Makefile; :"
command_ok_ "permission denied" test $? -gt 0
: Syntax errors in the test code.
$SHELL -c "$init; if :; then"
command_ok_ "syntax error 1" test $? -gt 0
$SHELL -c "$init; fi"
command_ok_ "syntax error 2" test $? -gt 0
: