testsuite: Make check-parallel return non-zero if a test failed

When using the check-parallel target, the return code of make is always 0,
regardless of test results.  This patch makes it return the same code as
the "make do-check-parallel" sub-command.  So if there is a FAIL somewhere,
non-zero will be returned by make.

For the sake of example, I introduced a failure in gdb.base/break.exp.

  $ make check-single TESTS="gdb.base/break.exp gdb.python/py-value.exp" && echo 'Success :D' || echo 'Fail :('
  ...
  FAIL: gdb.base/break.exp: allo
  ...
  Fail :(

I think the parallel run should do the same.  Currently:

  $ make check-parallel TESTS="gdb.base/break.exp gdb.python/py-value.exp" && echo 'Success :D' || echo 'Fail :('
  ...
  FAIL: gdb.base/break.exp: allo
  ...
  Success :D

And with the patch (no big surprises there):

  $ make check-parallel TESTS="gdb.base/break.exp gdb.python/py-value.exp" && echo 'Success :D' || echo 'Fail :('
  ...
  FAIL: gdb.base/break.exp: allo
  ...
  Fail :(

What do you think?

gdb/testsuite/ChangeLog:

	* Makefile.in (check-parallel): Propagate return code from make
	do-check-parallel.
This commit is contained in:
Simon Marchi 2016-01-18 14:07:10 -05:00
parent a6e69c1f1d
commit bef95aacb8
1 changed files with 4 additions and 2 deletions

View File

@ -198,11 +198,13 @@ check-single:
check-parallel:
-rm -rf cache outputs temp
$(MAKE) -k do-check-parallel; \
result=$$?; \
$(SHELL) $(srcdir)/dg-extract-results.sh \
`find outputs -name gdb.sum -print` > gdb.sum; \
$(SHELL) $(srcdir)/dg-extract-results.sh -L \
`find outputs -name gdb.log -print` > gdb.log
@sed -n '/=== gdb Summary ===/,$$ p' gdb.sum
`find outputs -name gdb.log -print` > gdb.log; \
sed -n '/=== gdb Summary ===/,$$ p' gdb.sum; \
exit $$result
# Turn a list of .exp files into "check/" targets. Only examine .exp
# files appearing in a gdb.* directory -- we don't want to pick up