--- testsuite 2015-02-11 17:19:21.654646439 -0800 +++ testsuite 2015-02-11 17:15:03.810653032 -0800 @@ -4669,6 +4669,73 @@ fi exec 6<&- wait +elif test $at_jobs -ne 1 && + test "$IS_WIN32" = "yes"; then + # FIFO job dispatcher. + trap 'at_pids= + for at_pid in `jobs -p`; do + at_pids="$at_pids $at_job_group$at_pid" + done + if test -n "$at_pids"; then + at_sig=TSTP + test "${TMOUT+set}" = set && at_sig=STOP + kill -$at_sig $at_pids 2>/dev/null + fi + kill -STOP $$ + test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP + + echo + # Turn jobs into a list of numbers, starting from 1. + running_jobs="`pwd`/tests/jobdispatcher" + mkdir -p $running_jobs + at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p` + + set X $at_joblist + shift + for at_group in $at_groups; do + $at_job_control_on 2>/dev/null + ( + # Start one test group. + $at_job_control_off + touch $running_jobs/$at_group + trap 'set +x; set +e + trap "" PIPE + echo stop > "$at_stop_file" + rm -f $running_jobs/$at_group + as_fn_exit 141' PIPE + at_fn_group_prepare + if cd "$at_group_dir" && + at_fn_test $at_group && + . "$at_test_source" + then :; else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 +$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} + at_failed=: + fi + rm -f $running_jobs/$at_group + at_fn_group_postprocess + ) & + $at_job_control_off + shift # Consume one token. + if test $# -gt 0; then :; else + while [ "`ls -l $running_jobs 2>/dev/null | wc -l`" -gt "$at_jobs" ]; do + sleep 0.1 + done + set x $* + fi + test -f "$at_stop_file" && break + done + # Read back the remaining ($at_jobs - 1) tokens. + set X $at_joblist + shift + if test $# -gt 0; then + shift + while [ "`ls -l $running_jobs | wc -l`" -gt 1 ]; do + sleep 0.1 + done + fi + rmdir $running_jobs + wait else # Run serially, avoid forks and other potential surprises. for at_group in $at_groups; do