Merge branch 'master' into test-protocols
[platform/upstream/automake.git] / tests / tap-plan-errors.test
index 539cb8f..9d8abcd 100755 (executable)
 
 # TAP support: the following situations should be flagged as errors:
 #  - unmatched test plan (too few tests run)
-#  - misplaced test plan
 #  - multiple test plans
 #  - missing test plan
-# Checks about unplanned tests are performed in 'tap-unplanned.test'.
-# More checks about corner-cases in TAP plans are performed in
-# 'tap-plan-corner.test' and 'tap-plan-corner2.test'.
+#  - misplaced test plan (tests run after a late plan)
+# Checks about unplanned tests are performed in 'tap-unplanned.test'
+# and 'tap-skip-whole-badcount.test'.  More checks about corner-cases
+# in TAP plans are performed in 'tap-plan-corner.test'.
 
 parallel_tests=yes
 . ./defs || Exit 1
 
-cp "$top_testsrcdir"/lib/tap-driver . \
-  || fatal_ "failed to fetch auxiliary script tap-driver"
-
-cat >> configure.in <<END
-AC_SUBST([PERL], ['$PERL'])
-AC_OUTPUT
-END
-
-cat > Makefile.am << 'END'
-TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver
-TEST_LOG_COMPILER = cat
-TESTS = foo.test
-END
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE
-
-./configure
+. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh"
 
 my_check ()
 {
-  cat > foo.test
+  cat > all.test
   test -n "$err" || fatal_ "\$err not set before calling my_check"
-  cat foo.test # For debugging.
+  cat all.test # For debugging.
   $MAKE check >stdout && { cat stdout; Exit 1; }
   cat stdout
   count_test_results "$@"
-  grep "^ERROR: foo\\.test - $err$" stdout
+  grep "^ERROR: all\\.test $err$" stdout
   unset err
 }
 
-err='too few tests run (expected 2, got 1)'
+err='too few tests run (expected 2, got 1)'
 my_check total=2 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
 1..2
 ok 1
 END
 
-err='too few tests run (expected 12, got 3)'
+err='too few tests run (expected 12, got 3)'
 my_check total=4 pass=2 fail=0 xpass=0 xfail=1 skip=0 error=1 <<END
 ok 1
 ok 2
@@ -72,29 +54,36 @@ not ok 3 # TODO
 1..12
 END
 
-err='too few tests run (expected 1, got 0)'
+err='too few tests run (expected 1, got 0)'
 my_check total=1 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
 1..1
 END
 
-err='test plan in middle of output'
-my_check total=3 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
-oops
-1..2
+err='2 # AFTER LATE PLAN'
+my_check total=2 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
 ok 1
+1..2
 ok 2
 END
 
-err='test plan in middle of output'
-my_check total=3 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
+err='5 # AFTER LATE PLAN'
+my_check total=5 pass=4 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
 ok 1
 ok 2
-1..2
-oops
+ok 3
+ok 4
+1..5
+ok 5
+END
+
+err='- missing test plan'
+my_check total=2 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
+ok 1
 END
 
+
 # The two test plans here are deliberately equal.
-err='multiple test plans'
+err='multiple test plans'
 my_check total=3 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
 1..2
 ok 1
@@ -102,9 +91,24 @@ ok 2
 1..2
 END
 
-err='missing test plan'
-my_check total=2 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
+# The second plan is diagnosed as extra, and only the first one is
+# relevant w.r.t. the number of the expected test.
+err='- multiple test plans'
+my_check total=4 pass=3 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
+1..3
 ok 1
+ok 2
+1..2
+ok 3
+END
+
+# As above, in a slightly different situation.
+err='- multiple test plans'
+my_check total=3 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=1 <<END
+1..2
+ok 1
+ok 2
+1..4
 END
 
 :