On 7 November 2016 at 17:17, Václav Haisman <vhais...@gmail.com> wrote: > On 7 November 2016 at 09:41, Diego Pignedoli <diego.pigned...@gmail.com> > wrote: >> > > I can see it too with bash. > > +/home/wilx/autoconf/tests/testsuite.dir/212/micro-suite.dir/at-groups/4/test-source: > line 11: kill: : invalid signal specification > > The signal variable is empty in: > > ./micro-suite.at:12: kill -$signal $suite_pid > ++ kill - 3569 > >
So I have been trying to debug this. It seems to me it is related to use of two different shell during the execution. I personally use ZSH for my interactive shell. If I manually set up SHELL and CONFIG_SHELL to both point either ZSH or both on BASH, the test passes. However, if just point SHELL to BASH, it fails due to syntactic error. ~~~ amber2::wilx:~/autoconf> SHELL=/bin/bash CONFIG_SHELL=/bin/bash make check TESTSUITEFLAGS='212' if test -d ./.git \ && git --version >/dev/null 2>&1; then \ cd . && \ git submodule --quiet foreach \ 'test "$(git rev-parse "$sha1")" \ = "$(git merge-base origin "$sha1")"' \ || { echo 'maint.mk: found non-public submodule commit' >&2; \ exit 1; }; \ else \ : ; \ fi make check-am make[1]: Entering directory '/home/wilx/autoconf' make check-local make[2]: Entering directory '/home/wilx/autoconf' /bin/bash tests/testsuite -C tests 212 ## --------------------------------------------- ## ## GNU Autoconf 2.69.171-527f1-dirty test suite. ## ## --------------------------------------------- ## 212: parallel autotest and signal handling ok ## ------------- ## ## Test results. ## ## ------------- ## 1 test was successful. make[2]: Leaving directory '/home/wilx/autoconf' make[1]: Leaving directory '/home/wilx/autoconf' amber2::wilx:~/autoconf> SHELL=/bin/zsh CONFIG_SHELL=/bin/zsh make check TESTSUITEFLAGS='212' if test -d ./.git \ && git --version >/dev/null 2>&1; then \ cd . && \ git submodule --quiet foreach \ 'test "$(git rev-parse "$sha1")" \ = "$(git merge-base origin "$sha1")"' \ || { echo 'maint.mk: found non-public submodule commit' >&2; \ exit 1; }; \ else \ : ; \ fi make check-am make[1]: Entering directory '/home/wilx/autoconf' make check-local make[2]: Entering directory '/home/wilx/autoconf' /bin/bash tests/testsuite -C tests 212 ## --------------------------------------------- ## ## GNU Autoconf 2.69.171-527f1-dirty test suite. ## ## --------------------------------------------- ## 212: parallel autotest and signal handling ok ## ------------- ## ## Test results. ## ## ------------- ## 1 test was successful. make[2]: Leaving directory '/home/wilx/autoconf' make[1]: Leaving directory '/home/wilx/autoconf' amber2::wilx:~/autoconf> SHELL=/bin/bash make check TESTSUITEFLAGS='212' if test -d ./.git \ && git --version >/dev/null 2>&1; then \ cd . && \ git submodule --quiet foreach \ 'test "$(git rev-parse "$sha1")" \ = "$(git merge-base origin "$sha1")"' \ || { echo 'maint.mk: found non-public submodule commit' >&2; \ exit 1; }; \ else \ : ; \ fi make check-am make[1]: Entering directory '/home/wilx/autoconf' make check-local make[2]: Entering directory '/home/wilx/autoconf' /bin/bash tests/testsuite -C tests 212 ## --------------------------------------------- ## ## GNU Autoconf 2.69.171-527f1-dirty test suite. ## ## --------------------------------------------- ## 212: parallel autotest and signal handling FAILED (autotest.at:1582) ## ------------- ## ## Test results. ## ## ------------- ## ERROR: 1 test was run, 1 failed unexpectedly. ## -------------------------- ## ## testsuite.log was created. ## ## -------------------------- ## Please send `tests/testsuite.log' and all information you think might help: To: <bug-autoconf@gnu.org> Subject: [GNU Autoconf 2.69.171-527f1-dirty] testsuite: 212 failed You may investigate any problem if you feel able to do so, in which case the test suite provides a good starting point. Its output may be found below `tests/testsuite.dir'. Makefile:2145: recipe for target 'check-local' failed make[2]: *** [check-local] Error 1 make[2]: Leaving directory '/home/wilx/autoconf' Makefile:1682: recipe for target 'check-am' failed make[1]: *** [check-am] Error 2 make[1]: Leaving directory '/home/wilx/autoconf' Makefile:1684: recipe for target 'check' failed make: *** [check] Error 2 ~~~ Also, I think it might be a good cleanup to use AS_CASE instead of bare case statement: ~~~ diff --git a/tests/autotest.at b/tests/autotest.at index 5109bec..ef8c3dd 100644 --- a/tests/autotest.at +++ b/tests/autotest.at @@ -1605,13 +1605,13 @@ for signal in 2 15; do # Need to normalize exit status here: some make implementations # exit 1 (BSD make), some exit 2 (GNU make). AT_CHECK([$MAKE check TESTSUITEFLAGS=; ]dnl - [case $? in 1|2) exit 1;; *) exit $?;; esac], + AS_CASE([$?], [1|2], [exit 1], [exit $?]), [1], [ignore], [stderr]) AT_CHECK([grep 'bailing out' stderr], [], [ignore]) AT_CHECK([grep 'bailing out' micro-suite.log], [], [ignore]) # Ditto, parallel case. AT_CHECK([$MAKE check TESTSUITEFLAGS=--jobs=3; ]dnl - [case $? in 1|2) exit 1;; *) exit $?;; esac], + AS_CASE([$?], [1|2], [exit 1], [exit $?]), [1], [ignore], [stderr]) AT_CHECK([grep 'bailing out' stderr], [], [ignore]) AT_CHECK([grep 'bailing out' micro-suite.log], [], [ignore]) ~~~ -- VH