[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: testsuite failures with dash: 80 151
From: |
Ralf Wildenhues |
Subject: |
Re: testsuite failures with dash: 80 151 |
Date: |
Thu, 27 Nov 2008 20:12:35 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Hi Eric,
* Eric Blake wrote on Thu, Nov 27, 2008 at 02:29:22PM CET:
> According to Ralf Wildenhues on 11/27/2008 12:30 AM:
> >
> > $ CONFIG_SHELL=/bin/dash /bin/dash ./testsuite 80 151
> >
> > seems to consistently provoke both, while with
> > $ /bin/dash ./testsuite 80 151
>
> Well, the former is supposed to work, while the latter is in the gray area
> (running the file with a different shell than /bin/sh without telling the
> script that you are doing so via CONFIG_SHELL should work if the alternate
> shell passes all of the required/suggested tests that /bin/sh passes, but
> it certainly isn't the recommended approach).
Agreed.
> > | ../../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
>
> Have you inspected testsuite.dir/080/{script,child} after this failure, to
> see whether the script favored /bin/sh or dash in its prologue, based on
> your settings of CONFIG_SHELL?
If I don't set CONFIG_SHELL, then /bin/sh is in both. If I set
CONFIG_SHELL to dash, then sometimes the above failure happens,
sometimes the one pasted below. In both cases, 'script' has /bin/sh,
and 'child' has /bin/dash in the shebang line.
> > | ../../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
>
> That one is probably a LINENO issue. Since the parent script is supposed
> to detect that dash lacks LINENO, then the parent should have been rerun
> as script.lineno, which in turn should generate child with a hard-coded
> number in the hello3 AS_MESSAGE in the child. But maybe we've done
> something wrong, where the child script gets a literal $LINENO instead of
> a pre-expanded value, which then expands to an empty string and fails the
> sed substitution in the testsuite.
I guess it to be something like that. But I fail to see the issue so
far.
> > OK to apply?
> > 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.
>
> Yes, both of these are okay.
Thanks, pushed.
Cheers,
Ralf