123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- #! /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 <http://www.gnu.org/licenses/>.
- # TAP support: whitespace normalization (or lack thereof) in the testsuite
- # progress output on console. We keep all of these checks here in a single
- # script so that a potential cosmetic change in the output format won't
- # force us to tweak dozens of other tests (hopefully).
- # See also related test 'tap-todo-skip-whitespace.sh'.
- . test-init.sh
- cat > Makefile.am << 'END'
- TEST_LOG_COMPILER = cat
- TESTS =
- END
- : > exp
- spaces_a=${sp}${tab}${tab}${sp}${sp}${tab}
- spaces_b=${tab}${tab}${sp}${tab}${sp}${sp}${sp}
- #-----------------------------------------------------------------------
- echo TESTS += numbers.test >> Makefile.am
- cat > numbers.test <<END
- 1..6
- ok${spaces_a}1
- ok 2${spaces_b}
- ok${spaces_a}3${spaces_b}
- not ok${spaces_b}4
- not ok 5${spaces_a}
- not ok${spaces_b}6${spaces_a}
- END
- cat >> exp <<END
- PASS: numbers.test 1
- PASS: numbers.test 2
- PASS: numbers.test 3
- FAIL: numbers.test 4
- FAIL: numbers.test 5
- FAIL: numbers.test 6
- END
- #-----------------------------------------------------------------------
- echo TESTS += description.test >> Makefile.am
- cat > description.test <<END
- 1..8
- ok${spaces_a}+foo
- ok +bar${spaces_b}
- ok${spaces_a}+baz${spaces_b}
- not ok${spaces_b}-foo
- not ok -bar${spaces_a}
- not ok${spaces_b}-baz${spaces_a}
- ok u${spaces_b}v${spaces_a}w${sp}
- not ok${spaces_a}x${spaces_a}y${tab}z${tab}
- END
- cat >> exp <<END
- PASS: description.test 1 +foo
- PASS: description.test 2 +bar
- PASS: description.test 3 +baz
- FAIL: description.test 4 -foo
- FAIL: description.test 5 -bar
- FAIL: description.test 6 -baz
- PASS: description.test 7 u${spaces_b}v${spaces_a}w
- FAIL: description.test 8 x${spaces_a}y${tab}z
- END
- #-----------------------------------------------------------------------
- # "Bail out!" magic.
- echo TESTS += bailout.test >> Makefile.am
- cat > bailout.test <<END
- 1..1
- Bail out!${tab}${sp}${sp}${tab}We're out of disk space.
- ok 1
- END
- cat >> exp <<END
- ERROR: bailout.test - Bail out! We're out of disk space.
- END
- echo TESTS += bailout2.test >> Makefile.am
- cat > bailout2.test <<END
- 1..1
- Bail out!foo${tab}${sp}
- ok 1
- END
- cat >> exp <<END
- ERROR: bailout2.test - Bail out! foo
- END
- #-----------------------------------------------------------------------
- # Diagnostic lines.
- echo AM_TEST_LOG_DRIVER_FLAGS = --comments >> Makefile.am
- echo TESTS += cmnt.test >> Makefile.am
- cat > cmnt.test <<END
- 1..1
- ok 1
- #Leading whitespace gets added
- # ${tab}${tab} ${tab}Extra leading whitespace is stripped
- # Trailing whitespace is stripped ${tab} ${tab}${tab}
- # Middle${tab}whitespace is${tab} ${tab}${tab} kept
- # ${tab} And only${tab}middle ${tab}whitespace ${tab}${tab} ${tab}
- END
- cat >> exp <<END
- PASS: cmnt.test 1
- # cmnt.test: Leading whitespace gets added
- # cmnt.test: Extra leading whitespace is stripped
- # cmnt.test: Trailing whitespace is stripped
- # cmnt.test: Middle${tab}whitespace is${tab} ${tab}${tab} kept
- # cmnt.test: And only${tab}middle ${tab}whitespace
- END
- #-----------------------------------------------------------------------
- # TODO: we should have more checks here ... (but let's not over-do FTM).
- #-----------------------------------------------------------------------
- chmod a+x *.test
- . tap-setup.sh
- # We don't care about exit status or number of test results, they
- # should be checked for in many other tests.
- run_make -O -e FAIL check
- LC_ALL=C sort exp > t
- mv -f t exp
- # We need the sort below to account for parallel make usage.
- LC_ALL=C grep '[a-z0-9][a-z0-9]*\.test' stdout | LC_ALL=C sort > got
- cat exp
- cat got
- diff exp got
- :
|