diff options
Diffstat (limited to 't/tap-no-spurious-numbers.sh')
-rwxr-xr-x | t/tap-no-spurious-numbers.sh | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/t/tap-no-spurious-numbers.sh b/t/tap-no-spurious-numbers.sh new file mode 100755 index 000000000..2fc993e01 --- /dev/null +++ b/t/tap-no-spurious-numbers.sh @@ -0,0 +1,99 @@ +#! /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/>. + +# TAP support: +# - we shouldn't spuriously recognize as TAP result numbers what it +# not, even if it seems pretty close + +am_parallel_tests=yes +. ./defs || Exit 1 + +. "$am_testauxdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" + +cat > prefixes <<'END' +A +a +_ ++ +- += +/ +* +. +: +, +; +$ +@ +% +& +# +? +! +| +\ +" +` +' +( +) +[ +] +{ +} +< +> +END + +n=`wc -l <prefixes` + +# See the loop below to understand this initialization. +pass=`expr $n '*' 3` +fail=$pass +skip=`expr $pass - 3` +xfail=$skip +xpass=$xfail +error=0 +total=`expr $pass + $fail + $skip + $xfail + $xpass` + +echo 1..$total > all.test + +highno=1000 + +for result in 'ok' 'not ok'; do + for spacing in "" " " "$tab"; do + subst="$result &$spacing$higno" + sed -e "s|.*|$subst|" prefixes + for directive in TODO SKIP; do + test "$result $directive" != "not ok SKIP" || continue + sed -e '/^#$/d' -e "s|.*|$subst # $directive|" prefixes + done + done +done >> all.test + +cat all.test # For debugging. + +# Sanity checks. +grep '#.*#' all.test && framework_failure_ "creating all.test" +test `wc -l <all.test` -lt $highno || framework_failure_ "creating all.test" + +$MAKE check >stdout || : +cat stdout + +count_test_results total=$total pass=$pass fail=$fail skip=$skip \ + xpass=$xpass xfail=$xfail error=$error + +: |