glibc/manual
Joseph Myers d6fe5e582d Do not terminate default test runs on test failure.
This patch is an updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00198.html> and
<https://sourceware.org/ml/libc-alpha/2014-03/msg00180.html>.

Normal practice for software testsuites is that rather than
terminating immediately when a test fails, they continue running and
report at the end on how many tests passed or failed.

The principle behind the glibc testsuite stopping on failure was
probably that the expected state is no failures and so any failure
indicates a problem such as miscompilation.  In practice, while this
is fairly close to true for native testing on x86_64 and x86 (kernel
bugs and race conditions can still cause intermittent failures), it's
less likely to be the case on other platforms, and so people testing
glibc run the testsuite with "make -k" and then examine the logs to
determine whether the failures are what they expect to fail on that
platform, possibly with some automation for the comparison.

This patch switches the glibc testsuite to the normal convention of
not stopping on failure - unless you use stop-on-test-failure=y, in
which case it behaves essentially as it did before (and does not
generate overall test summaries on failure).  Instead, the summary
tests.sum may contain tests that FAILed.  At the end of the test run,
any FAIL or ERROR lines from tests.sum are printed, and then it exits
with error status if there were any such lines.  In addition, build
failures will also cause the test run to stop - this has the
justification that those *do* indicate serious problems that should be
promptly fixed and aren't generally hard to fix (but apart from that,
avoiding the build stopping on those failures seems harder).

Note that unlike the previous patches in this series, this *does*
require people with automation around testing glibc to change their
processes - either to start using tests.sum / xtests.sum to track
failures and compare them with expectations (with or without also
using "make -k" and examining "make" logs to identify build failures),
or else to use stop-on-test-failure=y and ignore the new tests.sum /
xtests.sum mechanism.  (If all you check is the exit status from "make
check", no changes are needed unless you want to avoid test runs
continuing after the first failure.)

Tested x86_64.

	* scripts/evaluate-test.sh: Handle fourth argument to determine
	whether test run should stop on failure.
	* Makeconfig (stop-on-test-failure): New variable.
	(evaluate-test): Pass fourth argument to evaluate-test.sh based on
	$(stop-on-test-failure).
	* Makefile (tests): Give a summary of results from testing and
	exit with failure status if they include an ERROR or FAIL.
	(xtests): Likewise.
	* manual/install.texi (Configuring and compiling): Mention
	stop-on-test-failure=y.
	* INSTALL: Regenerated.
2014-03-14 21:02:40 +00:00
..
examples Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
argp.texi * manual/argp.texi: Document MTASC-safety properties. 2014-01-29 05:24:32 -02:00
arith.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
charset.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
check-safety.sh * manual/check-safety.sh: New. 2014-02-01 04:31:05 -02:00
conf.texi * manual/conf.texi: Document MTASC-safety properties. 2014-01-29 05:26:47 -02:00
contrib.texi Update contrib.texi 2014-02-06 11:01:35 +05:30
creature.texi Remove _BSD_SOURCE and _SVID_SOURCE. 2014-02-11 23:40:07 +00:00
crypt.texi * manual/crypt.texi: Document MTASC-safety properties. 2014-01-29 05:27:54 -02:00
ctype.texi * manual/ctype.texi: Document MTASC-safety properties. 2014-01-31 23:14:14 -02:00
debug.texi * manual/debug.texi: Document MTASC-safety properties. 2014-01-30 18:50:57 -02:00
dir .. 2005-11-21 15:45:19 +00:00
errno.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
fdl-1.3.texi BZ#13738: Switch manual to FDL 1.3. 2012-02-24 12:58:10 -08:00
filesys.texi Remove _BSD_SOURCE and _SVID_SOURCE. 2014-02-11 23:40:07 +00:00
freemanuals.texi Update to canonical freemanuals.texi file. 2013-09-24 14:06:56 -07:00
getopt.texi * manual/getopt.texi: Document MTASC-safety properties. 2014-01-31 23:16:56 -02:00
header.texi Use Texinfo macros to refer to the GNU C Library within the manual. 2012-02-28 14:44:20 +00:00
install-plain.texi BZ #15941: Fix INSTALL file regeneration failure with makeinfo 5.x 2013-12-05 09:58:20 +05:30
install.texi Do not terminate default test runs on test failure. 2014-03-14 21:02:40 +00:00
intro.texi * manual/intro.texi: Document safety identifiers and 2014-02-01 03:48:32 -02:00
io.texi Clean up glibc manual references to "GNU system" (bug 6911). 2012-03-08 01:27:38 +00:00
ipc.texi Use @Theglibc{} in manual/ipc.texi. 2014-02-26 13:39:02 -05:00
job.texi Add a new "Inter-Process Communication" chapter. 2014-02-26 11:05:09 -05:00
lang.texi * manual/lang.texi: Document MTASC-safety properties. 2014-01-31 23:21:48 -02:00
lgpl-2.1.texi Use canonical FSF .texi files for LGPL and FDL texts. 2011-06-06 16:16:55 -07:00
libc-texinfo.sh Add @detailmenu to subsection node listing 2013-02-24 21:05:58 +10:00
libc.texinfo Update remaining copyright dates 2014-01-01 22:02:55 +10:00
libcbook.texi
libdl.texi * manual/libdl.texi: New. 2014-01-31 23:23:59 -02:00
libm-err-tab.pl Don't include individual test ulps in libm-test-ulps. 2014-03-05 15:02:38 +00:00
llio.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
locale.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
macros.texi * manual/macros.texi: Add comments before MTASC-safety macros. 2014-02-03 17:26:08 -02:00
maint.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
Makefile Remove INSTALL_INFO setting in manual/Makefile. 2014-03-06 15:57:24 +00:00
math.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
memory.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
message.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
nss.texi manual: Remove frobnicate @pxref. 2013-02-20 13:30:23 -05:00
nsswitch.texi
pattern.texi * manual/pattern.texi: Document MTASC-safety properties. 2014-01-31 23:36:46 -02:00
pipe.texi * manual/pipe.texi: Document MTASC-safety properties. 2014-01-31 23:37:28 -02:00
platform.texi * manual/platform.texi: Document MTASC-safety properties. 2014-01-31 23:40:29 -02:00
probes.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
process.texi Add a new "Inter-Process Communication" chapter. 2014-02-26 11:05:09 -05:00
resource.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
search.texi * manual/search.texi: Document MTASC-safety properties. 2014-01-31 23:47:28 -02:00
setjmp.texi manual/setjmp.texi: Improve clarity of Sys V context doc 2014-03-13 10:39:47 +00:00
signal.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
socket.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
startup.texi Remove _BSD_SOURCE and _SVID_SOURCE. 2014-02-11 23:40:07 +00:00
stdio-fp.c
stdio.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
string.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
summary.awk Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sysinfo.texi * manual/sysinfo.texi: Document MTASC-safety properties. 2014-02-01 01:16:09 -02:00
syslog.texi * manual/syslog.texi: Document MTASC-safety properties. 2014-02-01 01:22:09 -02:00
terminal.texi * manual/terminal.texi: Document MTASC-safety properties. 2014-02-01 03:53:15 -02:00
texinfo.tex Update texinfo.tex, config.guess, config.sub from upstream. 2013-12-19 17:36:10 +00:00
texis.awk
threads.texi Add header and standard information to threads.texi. 2014-02-28 18:30:22 -05:00
time.texi manual: time: fix typo in IST example 2014-03-13 18:31:09 -04:00
tsort.awk Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
users.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
xtract-typefun.awk * manual/xtract-typefun.awk: Swallow [(){}*] from function names. 2003-11-12 00:50:03 +00:00