[PATCH] gcc parallel make check

Jakub Jelinek jakub@redhat.com
Fri Oct 10 14:20:00 GMT 2014


On Fri, Oct 10, 2014 at 04:09:39PM +0200, Christophe Lyon wrote:
> my.exp contains the following construct which is often used in the testsuite:
> ==========
> foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
>     # If we're only testing specific files and this isn't one of them,
> skip it.
>     if ![runtest_file_p $runtests $src] then {
>         continue
>     }
>     c-torture-execute $src $additional_flags
>     gcc-dg-runtest $src "" $additional_flags
> }
> ==========
> Note that gcc-dg-runtest calls runtest_file_p too.

Such my.exp is invalid, you need to guarantee gcc_parallel_test_run_p
is run the same number of times in all instances unless
gcc_parallel_test_enable has been disabled.

See the patches I've posted when adding the fine-grained parallelization,
e.g. go testsuite has been fixed that way, etc.
So, in your above example, you'd need:
    gcc_parallel_test_enable 0
line before c-torture-execute and
    gcc_parallel_test_enable 1
line after gcc-dg-runtest.  That way, if runtest_file_p says the test should
be scheduled by current instance, all the subtests will be run there.

If my.exp is part of gcc/testsuite, I'm sorry for missing it, if it is
elsewhere, just fix it up.

Note, there are #verbose lines in gcc_parallel_test_run_p, you can uncomment
them and through sed on the log files verify that each instance performs the
same parallelization checks (same strings).

	Jakub



More information about the Libstdc++ mailing list