]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
coverage: TAP errors after a "Bail out!" directive aren't reported
authorStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 12 Aug 2011 11:38:34 +0000 (13:38 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 12 Aug 2011 12:46:31 +0000 (14:46 +0200)
This is compatible with the behaviour of the `prove' utility.

* tests/tap-bailout-suppress-later-errors.test: New test.
* tests/tap-bailout-badexit.test: Renamed ...
* tests/tap-bailout-suppress-badexit.test: ... to this, for
consistency.
* tests/Makefile.am (tap_with_common_setup_tests): Update.

ChangeLog
tests/Makefile.am
tests/Makefile.in
tests/tap-bailout-suppress-badexit.test [moved from tests/tap-bailout-badexit.test with 100% similarity]
tests/tap-bailout-suppress-later-errors.test [new file with mode: 0755]

index c596fe53c8c7a381bf3995150fee08433a37ba14..42b23f591aad014f7c4d4aab6900841fe965545d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       coverage: TAP errors after a "Bail out!" directive aren't reported
+       This is compatible with the behaviour of the `prove' utility.
+       * tests/tap-bailout-suppress-later-errors.test: New test.
+       * tests/tap-bailout-badexit.test: Renamed ...
+       * tests/tap-bailout-suppress-badexit.test: ... to this, for
+       consistency.
+       * tests/Makefile.am (tap_with_common_setup_tests): Update.
+
 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 
        testsuite: reorganize tests on TAP plans
index b44b0d5a19c558ea8c4b51dccad400c7fbbd0c40..376802f806903c6ef2ce50fc40a461dfb5b78b07 100644 (file)
@@ -1144,7 +1144,8 @@ testsuite-summary-count-many.log: extract-testsuite-summary
 tap_with_common_setup_tests = \
 tap-autonumber.test \
 tap-bailout.test \
-tap-bailout-badexit.test \
+tap-bailout-suppress-badexit.test \
+tap-bailout-suppress-later-errors.test \
 tap-color.test \
 tap-deps.test \
 tap-diagnostic.test \
index d1366750d835725115bae88cf4370b07a80d0ed9..b205f5691a3ee235a7ed1a9c81f976838e05175e 100644 (file)
@@ -1384,7 +1384,8 @@ $(parallel_tests)
 tap_with_common_setup_tests = \
 tap-autonumber.test \
 tap-bailout.test \
-tap-bailout-badexit.test \
+tap-bailout-suppress-badexit.test \
+tap-bailout-suppress-later-errors.test \
 tap-color.test \
 tap-deps.test \
 tap-diagnostic.test \
diff --git a/tests/tap-bailout-suppress-later-errors.test b/tests/tap-bailout-suppress-later-errors.test
new file mode 100755 (executable)
index 0000000..19aa9e2
--- /dev/null
@@ -0,0 +1,74 @@
+#! /bin/sh
+# Copyright (C) 2011 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:
+#  - A "Bail out!" directive causes the driver to ignore any TAP
+#    result or error in the rest of the following TAP stream.
+
+parallel_tests=yes
+. ./defs || Exit 1
+
+. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh"
+
+# Various errors that can all be squashed into a single test script.
+cat > foo.test << 'END'
+1..5
+Bail out!
+# All possible test results.
+# Test out-of-order.
+ok 4
+# Extra TAP plan.
+1..2
+# Another bailout directive.
+Bail out! Not seen.
+# Stop now, with too few tests run.
+END
+
+# Tests run after a "SKIP" plan.
+cat > bar.test << 'END'
+1..0 # SKIP
+Bail out!
+ok 1
+END
+
+# Too many tests run.
+cat > baz.test << 'END'
+1..1
+ok 1
+Bail out!
+ok 2
+ok 3
+END
+
+TESTS='foo.test bar.test baz.test' $MAKE -e check >stdout \
+  && { cat stdout; Exit 1; }
+cat stdout
+
+count_test_results total=5 pass=1 fail=0 xpass=0 xfail=0 skip=1 error=3
+
+grep '^ERROR: foo\.test - Bail out!$' stdout
+grep '^ERROR: bar\.test - Bail out!$' stdout
+grep '^SKIP: bar\.test'               stdout
+grep '^ERROR: baz\.test - Bail out!$' stdout
+grep '^PASS: baz\.test 1$'            stdout
+
+$FGREP 'Not seen' stdout && Exit 1
+
+test `$FGREP -c ': foo.test' stdout` -eq 1
+test `$FGREP -c ': bar.test' stdout` -eq 2
+test `$FGREP -c ': baz.test' stdout` -eq 2
+
+: