Den 2010-08-06 15:15 skrev Stefano Lattarini:
To help us pinpoint the problem, could you please try to run the attached "fake" test scripts multiple times, and post the outputs? Please forgive me the for the ugliness of such scripts, but I'm just taking wild guesses here.
For tmp.test, I swapped the order of the sleep and the echo in the fake automake (and changed the sleep to 4) to better emulate the real automake, failure and success stories follows: kill failure: === Running test ./tmp.test ++ pwd /home/peda/automake/git/automake/tests/tmp.dir + set -e + cat + cat + sh -c 'echo %aclocal pid: $$; sleep 2' %aclocal pid: 12252 + pid=4504 + sh -c 'echo %automake pid: $$; sleep 4; echo variable OPT_SRC recursively defined >&2' + try=1 + test 1 -le 30 + kill -0 4504 ./tmp.test: line 54: kill: (4504) - No such process + cat stderr %automake pid: 4504 + grep 'variable.*OPT_SRC.*recursively defined' stderr + exit_status=1 + set +e + cd /home/peda/automake/git/automake/tests + case $exit_status,$keep_testdirs in + test 0 '!=' 0 + echo 'tmp: exit 1' tmp: exit 1 + exit 1 kill success: === Running test ./tmp.test ++ pwd /home/peda/automake/git/automake/tests/tmp.dir + set -e + cat + cat + sh -c 'echo %aclocal pid: $$; sleep 2' %aclocal pid: 12228 + pid=13504 + sh -c 'echo %automake pid: $$; sleep 4; echo variable OPT_SRC recursively defined >&2' + try=1 + test 1 -le 30 + kill -0 13504 + : process 13504 is still alive, wait and retry + sleep 1 %automake pid: 13504 ++ expr 1 + 1 + try=2 + test 2 -le 30 + kill -0 13504 + : process 13504 is still alive, wait and retry + sleep 1 ++ expr 2 + 1 + try=3 + test 3 -le 30 + kill -0 13504 + : process 13504 is still alive, wait and retry + sleep 1 ++ expr 3 + 1 + try=4 + test 4 -le 30 + kill -0 13504 + : process 13504 is still alive, wait and retry + sleep 1 ++ expr 4 + 1 + try=5 + test 5 -le 30 + kill -0 13504 ./tmp.test: line 54: kill: (13504) - No such process + cat stderr variable OPT_SRC recursively defined + grep 'variable.*OPT_SRC.*recursively defined' stderr variable OPT_SRC recursively defined + Exit 0 + set +e + exit 0 + exit 0 + exit_status=0 + set +e + cd /home/peda/automake/git/automake/tests + case $exit_status,$keep_testdirs in + find tmp.dir -type d '!' -perm -200 -exec chmod u+w '{}' ';' + rm -rf tmp.dir + test 0 '!=' 0 + echo 'tmp: exit 0' tmp: exit 0 + exit 0 For tmp2.test, my MSYS install does not have sync, so that's a nono... tmp3.test "always" works, but takes different branches depending on if kill worked or not. kill failure: === Running test ./tmp3.test ++ pwd /c/cygwin/home/peda/automake/git/automake/tests/tmp3.dir + set -e + cat + cat + aclocal-1.11 -Werror + pid=10128 + try=1 + automake-1.11 --foreign -Werror -Wall + test 1 -le 30 + kill -0 10128 ./tmp3.test: line 54: kill: (10128) - No such process + cat stderr + grep 'variable.*OPT_SRC.*recursively defined' stderr + sleep 20 + cat stderr Makefile.am:8: variable `OPT_SRC' recursively defined + grep 'variable.*OPT_SRC.*recursively defined' stderr Makefile.am:8: variable `OPT_SRC' recursively defined + Exit 0 + set +e + exit 0 + exit 0 + exit_status=0 + set +e + cd /c/cygwin/home/peda/automake/git/automake/tests + case $exit_status,$keep_testdirs in + find tmp3.dir -type d '!' -perm -200 -exec chmod u+w '{}' ';' + rm -rf tmp3.dir + test 0 '!=' 0 + echo 'tmp3: exit 0' tmp3: exit 0 + exit 0 kill success: === Running test ./tmp3.test ++ pwd /home/peda/automake/git/automake/tests/tmp3.dir + set -e + cat + cat + aclocal-1.11 -Werror + pid=3524 + automake-1.11 --foreign -Werror -Wall + try=1 + test 1 -le 30 + kill -0 3524 + : process 3524 is still alive, wait and retry + sleep 10 ++ expr 1 + 1 + try=2 + test 2 -le 30 + kill -0 3524 ./tmp3.test: line 54: kill: (3524) - No such process + cat stderr Makefile.am:8: variable `OPT_SRC' recursively defined + grep 'variable.*OPT_SRC.*recursively defined' stderr Makefile.am:8: variable `OPT_SRC' recursively defined + Exit 0 + set +e + exit 0 + exit 0 + exit_status=0 + set +e + cd /home/peda/automake/git/automake/tests + case $exit_status,$keep_testdirs in + find tmp3.dir -type d '!' -perm -200 -exec chmod u+w '{}' ';' + rm -rf tmp3.dir + test 0 '!=' 0 + echo 'tmp3: exit 0' tmp3: exit 0 + exit 0 So, nothing unexpected given my previous message... Cheers, Peter