Re: RFC: parallelize "make check"

Jan Kratochvil
2009-06-29T21:17:12Z

On Mon, 29 Jun 2009 20:05:10 +0200, Tom Tromey wrote:
> Daniel> I've been having a lot of trouble with foll-fork.exp printing output
> Daniel> after prompts.
>
> I hadn't heard about that one... Jan?

This one is also a common false difference.

> What he did mention to me is:
>
> gdb.mi/mi-file-transfer.exp, gdb.server/file-transfer.exp,
> gdb.base/focus-cmd-prev.exp, gdb.xml/tdesc-regs.exp,
> gdb.base/watchpoint.exp and some others already filtered out randomly
> FAIL when run in parallel

Tried now the new parallel make check with no instabilities on CVS HEAD.

Still getting instable results on gdb-6.8.50.20090302 with the Fedora patchset,
using the diff -I options below to make it a bit comparable.

-ERROR: Process no longer exists
-UNRESOLVED: gdb.base/focus-cmd-prev.exp: focus cmd
-ERROR: Couldn't send focus prev to GDB.
-UNRESOLVED: gdb.base/focus-cmd-prev.exp: focus prev
+PASS: gdb.base/focus-cmd-prev.exp: focus cmd
+PASS: gdb.base/focus-cmd-prev.exp: focus prev

Running ../../../gdb/testsuite/gdb.server/file-transfer.exp ...
-PASS: gdb.server/file-transfer.exp: put binary file
-PASS: gdb.server/file-transfer.exp: get binary file
-PASS: gdb.server/file-transfer.exp: compare intermediate binary file
-PASS: gdb.server/file-transfer.exp: compare binary file
-PASS: gdb.server/file-transfer.exp: deleted binary file
-PASS: gdb.server/file-transfer.exp: verified deleted binary file
-PASS: gdb.server/file-transfer.exp: put text file
-PASS: gdb.server/file-transfer.exp: get text file
-PASS: gdb.server/file-transfer.exp: compare intermediate text file
-PASS: gdb.server/file-transfer.exp: compare text file
-PASS: gdb.server/file-transfer.exp: deleted text file
-PASS: gdb.server/file-transfer.exp: verified deleted text file
+ERROR: tcl error sourcing ../../../gdb/testsuite/gdb.server/file-transfer.exp.
+ERROR: : spawn id exp18 not open
+ while executing
+"expect_background -nobrace -i exp18 full_buffer { } eof {
+ # The spawn ID is already closed now (but not yet waited for).
+ wait -i $expect_out..."
+ invoked from within
+"expect_background {
+ -i $server_spawn_id
+ full_buffer { }
+ eof {
+ # The spawn ID is already closed now (but not yet waited for).
+ wait -i $exp..."
+ (procedure "gdbserver_start" line 54)
+ invoked from within
+"gdbserver_start "" $arguments"
+ (procedure "gdbserver_spawn" line 11)
+ invoked from within
+"gdbserver_spawn $child_args"
+ (procedure "gdbserver_run" line 20)
+ invoked from within
+"gdbserver_run """
+ (file "../../../gdb/testsuite/gdb.server/file-transfer.exp" line 39)
+ invoked from within
+"source ../../../gdb/testsuite/gdb.server/file-transfer.exp"
+ ("uplevel" body line 1)
+ invoked from within
+"uplevel #0 source ../../../gdb/testsuite/gdb.server/file-transfer.exp"
+ invoked from within
+"catch "uplevel #0 source $test_file_name""

etc.

I do not know more now, it is a bit difficult to catch to debug it.

Regards,
Jan

#! /bin/sh
exec diff \
-I '^Test Run By ' \
-I '^gnatbind ' \
-I '^gnatlink ' \
-I '^gnatmake: ' \
-I '^gcc ' \
-I '^UNSUPPORTED: ' \
-I '^UNTESTED: ' \
-I '^UNRESOLVED: ' \
-I '^ERROR: ' \
-I '^WARNING: ' \
-I '^\(PASS\|FAIL\): gdb.server/ext-run.exp: get process list$' \
-I '^\(PASS\|FAIL\): gdb.base/checkpoint.exp: info checkpoints with at least 600 checkpoints$' \
-I '^\(PASS\|FAIL\): gdb.base/checkpoint.exp: break2 with many checkpoints$' \
-I '^\(PASS\|FAIL\): gdb.base/interrupt.exp: ' \
-I '^\(PASS\|FAIL\): gdb.base/gdb1250.exp: ' \
-I '^KFAIL: gdb.threads/watchthreads2.exp: gdb can drop watchpoints in multithreaded app (PRMS: gdb/10116)$' \
-I '^PASS: gdb.threads/watchthreads2.exp: all threads incremented x$' \
-I '^FAIL: gdb.base/sigbpt.exp: Verify that SIGSEGV occurs at the last STEPI insn (none 0x[a-f0-9]*)$' \
-I '^PASS: gdb.threads/threadcrash.exp: core file: ' \
-I '^PASS: gdb.threads/watchthreads.exp: disable [0-9]*$' \
-I '^FAIL: gdb.mi/mi-nsmoribund.exp: unexpected stop$' \
-I '^PASS: gdb.mi/mi-nsmoribund.exp: resume all, program exited normally$' \
-I '^gdb compile failed, ' \
-I '^gdb compile failed, /usr/bin/ld: /tmp/[a-zA-Z0-9]*.o: relocation R_X86_64_32S against `a local symbol. can not be used when making a shared object; recompile with -fPIC$' \
-I '^/tmp/[a-zA-Z0-9]*.o: could not read symbols: Bad value$' \
-I '^# of ' \
-I '^/home/' \
-I '^PASS: gdb.arch/i386-biarch-core.exp: core-file /home/.*/i386-biarch-core.core$' \
-ru "$@" | grep -v '^diff '