From: Stefano Lattarini Date: Fri, 12 Aug 2011 11:38:34 +0000 (+0200) Subject: coverage: TAP errors after a "Bail out!" directive aren't reported X-Git-Tag: ng-0.5a~89^2~101^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf69289c8b6f060de7946fe455c12c2fbdddd053;p=thirdparty%2Fautomake.git 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. --- diff --git a/ChangeLog b/ChangeLog index c596fe53c..42b23f591 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2011-08-12 Stefano Lattarini + + 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 testsuite: reorganize tests on TAP plans diff --git a/tests/Makefile.am b/tests/Makefile.am index b44b0d5a1..376802f80 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -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 \ diff --git a/tests/Makefile.in b/tests/Makefile.in index d1366750d..b205f5691 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -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-badexit.test b/tests/tap-bailout-suppress-badexit.test similarity index 100% rename from tests/tap-bailout-badexit.test rename to tests/tap-bailout-suppress-badexit.test diff --git a/tests/tap-bailout-suppress-later-errors.test b/tests/tap-bailout-suppress-later-errors.test new file mode 100755 index 000000000..19aa9e280 --- /dev/null +++ b/tests/tap-bailout-suppress-later-errors.test @@ -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 . + +# 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 + +: