diff options
Diffstat (limited to 't/tap-no-spurious.sh')
-rwxr-xr-x | t/tap-no-spurious.sh | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/t/tap-no-spurious.sh b/t/tap-no-spurious.sh new file mode 100755 index 000000000..ac6e6687d --- /dev/null +++ b/t/tap-no-spurious.sh @@ -0,0 +1,114 @@ +#! /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: +# - don't spuriously recognize lines that are "almost" TAP lines as +# real TAP lines + +am_parallel_tests=yes +. ./defs || Exit 1 + +. "$am_testauxdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" + +echo 1..5 > all.test + +# The only recognized directives are "TODO" and "SKIP". +# So the following should count as passed tests. +cat >> all.test <<END +ok 1 # XFAIL +ok 2 # SKIPPED +ok 3 # TO DO +ok 4 # TODOALL +ok 5 # FIXME +END + +# According to documentation of Test::Harness::TAP(3): +# +# ``Lines written to standard output matching /^(not )?ok\b/ +# must be interpreted as test lines. All other lines must +# not be considered test output.'' + +cat >> all.test <<END + ok + ok 1 +${tab}ok +${tab}ok 1 + not ok + not ok 1 +${tab}not ok +${tab}not ok 1 +notok +notok 1 +not${tab}ok +not${tab}ok 1 +not ok +not ok 1 +no ok +no ok 1 +# ok +# not ok +# ok 1 +# not ok 1 +#ok +#not ok +#ok 1 +#not ok 1 +END + +set +x # Don't pollute logs too much. +for r in 'ok' 'not ok'; do + for s1 in \ + a b c d e f g h i j k l m n o p q r s t u v w x y z \ + A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \ + 0 1 2 3 4 5 6 7 8 9 _ ab 0a 23 a1B2c _o _x_y_ + do + for s2 in '' @ % + - = / . : \; \* \? \& \! \# \$ \< \> \\; do + printf '%s\n' "$r$s1$s2" + done + done +done >> all.test +set -x # Reset shell xtraces. + +# The prove(1) utility doesn't bail out on these, so our driver +# shouldn't either. +# See comments in 'tap-bailout-leading-space.test' for an explanation +# of why we don't have a whitespace-prepended "Bail out!" line here. +cat >> all.test <<'END' +bailout +bailout! +bail out +bail out! +Bailout +Bailout! +Bail out + Bail out +#Bail out! +# Bail out! +END + +cat all.test # For debugging. + +# Minor sanity check. +test `grep -c '^ok1$' all.test` -eq 1 \ + && test `grep -c '^not ok1$' all.test` -eq 1 \ + || framework_failure_ "creating all.test" + +$MAKE check >stdout || { cat stdout; Exit 1; } +cat stdout + +count_test_results total=5 pass=5 fail=0 xpass=0 xfail=0 skip=0 error=0 + +: |