autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

testsuite failures with dash: 80 151


From: Ralf Wildenhues
Subject: testsuite failures with dash: 80 151
Date: Thu, 27 Nov 2008 08:30:05 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

Beside the parallel tests, I currently get two failures with dash 0.5.4
on Debian GNU/Linux.  (The numbers are probably skewed due to local
changes).

$ CONFIG_SHELL=/bin/dash /bin/dash ./testsuite 80 151

seems to consistently provoke both, while with
$ /bin/dash ./testsuite 80 151

test 151 passes consistently and test 80 fails only some of the time.

Failures look like this:

| 80. m4sh.at:1261: testing ...
| ../../autoconf/tests/m4sh.at:1275: autom4te --language=m4sh script.as -o 
script 
| ../../autoconf/tests/m4sh.at:1276: ./script
| stdout:
| hello from parent
| SHELL=/bin/sh
| ../../autoconf/tests/m4sh.at:1277: grep 'SHELL=.' stdout
| stdout:
| SHELL=/bin/sh
| ../../autoconf/tests/m4sh.at:1279: ./child
| ../../autoconf/tests/m4sh.at:1284: ./script
| ../../autoconf/tests/m4sh.at:1285: cmp child child.bak
| ../../autoconf/tests/m4sh.at:1286: grep 'SHELL=.' stdout
| stdout:
| SHELL=/bin/sh
| ../../autoconf/tests/m4sh.at:1288: ./child
| ../../autoconf/tests/m4sh.at:1311: autom4te --language=m4sh script.as -o 
script 
| ../../autoconf/tests/m4sh.at:1312: ./script
| --- -   2008-11-27 08:21:54.342435560 +0100
| +++ /tmp/autoconf/build/tests/testsuite.dir/at-groups/80/stdout      
2008-11-27 08:21:54.000000000 +0100
| @@ -1,5 +1,3 @@
| -script: hello from parent
| -hello1 from child
| -child: hello2 from child
| -child: hello3 from child
| +hello from parent
| +SHELL=/bin/sh
[...]
| ../../autoconf/tests/autotest.at:594: $CONFIG_SHELL ./micro-suite -C nonesuch
| stderr:
| cd: 913: can't cd to nonesuch
| micro-suite: error: unable to change directory
| stdout:
| ../../autoconf/tests/autotest.at:594: exit code was 2, expected 1
| micro-suite.log:
| sed: can't read micro-suite.log: No such file or directory


With the patch below, the failure go away when CONFIG_SHELL is not set
(/bin/sh is bash).  With CONFIG_SHELL set, test 151 still passes, and
80 now fails like this:

| 80. m4sh.at:1261: testing ...
| ../../autoconf/tests/m4sh.at:1275: autom4te --language=m4sh script.as -o 
script 
| ../../autoconf/tests/m4sh.at:1276: ./script
| stdout:
| hello from parent
| SHELL=/bin/dash
| ../../autoconf/tests/m4sh.at:1277: grep 'SHELL=.' stdout
| stdout:
| SHELL=/bin/dash
| ../../autoconf/tests/m4sh.at:1279: ./child
| ../../autoconf/tests/m4sh.at:1284: ./script
| ../../autoconf/tests/m4sh.at:1285: cmp child child.bak
| ../../autoconf/tests/m4sh.at:1286: grep 'SHELL=.' stdout
| stdout:
| SHELL=/bin/dash
| ../../autoconf/tests/m4sh.at:1288: ./child
| ../../autoconf/tests/m4sh.at:1312: autom4te --language=m4sh script.as -o 
script 
| ../../autoconf/tests/m4sh.at:1313: ./script
| ../../autoconf/tests/m4sh.at:1318: sed 's,:[0-9][0-9]*:,:0:,' log
| --- -   2008-11-27 08:27:21.183365446 +0100
| +++ /tmp/autoconf/build/tests/testsuite.dir/at-groups/80/stdout      
2008-11-27 08:27:20.000000000 +0100
| @@ -1,3 +1,3 @@
|  script:0: hello from parent
| -child:0: hello3 from child
| +child:: hello3 from child

I'm not quite sure why this happens, I have not been able to reproduce
it manually.

OK to apply?

Thanks,
Ralf

        Fix a couple of test failures with dash.
        * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Normalize
        exit status of `cd'.
        * tests/m4sh.at (AS_MESSAGE_LOG_FD): Remove script before
        regeneration, to avoid timing effects.

diff --git a/tests/autotest.at b/tests/autotest.at
index 6eb4d19..576eb80 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -616,9 +616,9 @@ AT_CHECK([$CONFIG_SHELL ./micro-suite --clean 
--directory="`pwd`/sub2"])
 AT_CHECK([test -f sub2/micro-suite.log], [1])
 AT_CHECK([test -f sub2/micro-suite.dir], [1])
 dnl check for failure detection with bad, missing, or empty directory.
-AT_CHECK([$CONFIG_SHELL ./micro-suite -C nonesuch], [1], [ignore], [ignore])
+AT_CHECK([$CONFIG_SHELL ./micro-suite -C nonesuch || exit 1], [1], [ignore], 
[ignore])
 AT_CHECK([$CONFIG_SHELL ./micro-suite -C ''], [1], [ignore], [ignore])
-AT_CHECK([$CONFIG_SHELL ./micro-suite -C -], [1], [ignore], [ignore])
+AT_CHECK([$CONFIG_SHELL ./micro-suite -C - || exit 1], [1], [ignore], [ignore])
 AT_CHECK([$CONFIG_SHELL ./micro-suite -C], [1], [ignore], [ignore])
 dnl check that --help overrides bad directory selection.
 AT_CHECK([$CONFIG_SHELL ./micro-suite -C nonesuch --help], [0], [ignore], [])
diff --git a/tests/m4sh.at b/tests/m4sh.at
index 0c575de..daedc0e 100644
--- a/tests/m4sh.at
+++ b/tests/m4sh.at
@@ -1308,6 +1308,7 @@ exec AS_MESSAGE_LOG_FD>-
 ./$child
 ]])
 
+rm -f script
 AT_CHECK_M4SH
 AT_CHECK([./script], [0], [[script: hello from parent
 hello1 from child





reply via email to

[Prev in Thread] Current Thread [Next in Thread]