summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2020-10-31 09:57:13 -0400
committerZack Weinberg <zackw@panix.com>2020-10-31 09:57:13 -0400
commitbf19f95cf4766c8a22583dfdbbbbc67a97c4b6b0 (patch)
tree7dfb5dcc05d53efdac0cc640b47ae52b341b0fbe
parent5147a642966e2247827cfd9e6f71464439c6d773 (diff)
downloadautoconf-bf19f95cf4766c8a22583dfdbbbbc67a97c4b6b0.tar.gz
Ignore stderr when testing parallel autotest (#110351).
Non-release versions of bash (notably 5.1.0(1)-rc1, which was uploaded to Debian unstable) print internal debugging messages like TRACE: pid 411364: bgp_delete: deleting 432074 to the test driver’s stderr while executing the parallel test driver. This causes spurious failures in the test suite. Chet Ramsey assures me these are not a symptom of a bug in either bash or the driver code (see https://lists.gnu.org/archive/html/bug-autoconf/2020-10/msg00047.html) so have the test suite ignore them. This fixes Savannah bug #110351. * tests/autotest.at: Ignore stderr whenever running a micro-suite in parallel mode, to avoid spurious failures due to internal debugging messages that may be printed by bash.
-rw-r--r--tests/autotest.at23
1 files changed, 17 insertions, 6 deletions
diff --git a/tests/autotest.at b/tests/autotest.at
index 2892b1dd..40acc013 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -1447,16 +1447,23 @@ AT_CHECK([grep 'non-numeric argument' stderr], [], [ignore])
AT_SKIP_PARALLEL_TESTS
+# The parallel test driver makes some shells generate internal
+# debugging messages on stderr (notably bash 5.x in compile-time
+# development mode, see
+# https://lists.gnu.org/archive/html/bug-autoconf/2020-10/msg00047.html)
+# so ignore stderr in all invocations below.
+
# Ensure that all tests run, and lines are not split.
-AT_CHECK([$CONFIG_SHELL ./micro-suite -j[]AT_PARALLEL_NJOBS], [], [stdout])
+AT_CHECK([$CONFIG_SHELL ./micro-suite -j[]AT_PARALLEL_NJOBS],
+ [], [stdout], [ignore])
AT_CHECK([grep -c '^.\{53\}ok' stdout], [], [AT_PARALLEL_NTESTS
])
# Running one test with -j should produce correctly formatted output:
-AT_CHECK([$CONFIG_SHELL ./micro-suite -j 3], [], [stdout])
+AT_CHECK([$CONFIG_SHELL ./micro-suite -j 3], [], [stdout], [ignore])
AT_CHECK([grep -c '^.\{53\}ok' stdout], [], [1
])
# Specifying more jobs than tests should not hang:
-AT_CHECK([$CONFIG_SHELL ./micro-suite -j3 3], [], [stdout])
+AT_CHECK([$CONFIG_SHELL ./micro-suite -j3 3], [], [stdout], [ignore])
AT_CHECK([grep -c '^.\{53\}ok' stdout], [], [1
])
# Not even with zero tests:
@@ -1477,9 +1484,13 @@ AT_CHECK([grep 'AT_PARALLEL_NTESTS tests' stdout], [], [ignore])
AT_CLEANUP
+# stderr is ignored in the next several tests because the parallel
+# driver makes some shells emit internal debugging messages, see
+# https://lists.gnu.org/archive/html/bug-autoconf/2020-10/msg00047.html
+
AT_CHECK_AT_TEST([parallel truth],
[AT_CHECK([:], 0, [], [])],
- [], [], [], [], [AT_SKIP_PARALLEL_TESTS],
+ [], [], [], [ignore], [AT_SKIP_PARALLEL_TESTS],
[], [-j])
AT_CHECK_AT_TEST([parallel fallacy],
@@ -1489,7 +1500,7 @@ AT_CHECK_AT_TEST([parallel fallacy],
AT_CHECK_AT_TEST([parallel skip],
[AT_CHECK([echo output; echo irrelevant >&2; exit 77], 0, [mismatch], [])],
- [], [], [], [], [AT_SKIP_PARALLEL_TESTS],
+ [], [], [], [ignore], [AT_SKIP_PARALLEL_TESTS],
[AT_CHECK([grep skipped micro-suite.log], [], [ignore])], [-j])
AT_CHECK_AT_TEST([parallel syntax error],
@@ -1500,7 +1511,7 @@ AT_CHECK_AT_TEST([parallel syntax error],
AT_CLEANUP
AT_SETUP([another test])
AT_CHECK([:])],
- [], [0], [], [], [AT_SKIP_PARALLEL_TESTS],
+ [], [0], [], [ignore], [AT_SKIP_PARALLEL_TESTS],
[dnl Until we can find a way to avoid catastrophic failure (ash) or
dnl lack of failure (zsh), skip the rest of this test on such shells.
echo 'if' > syntax