autoconf-patches
[Top][All Lists]
Advanced

[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




reply via email to

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