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