Sorry, I'm away from home for the long US holiday.  I expect to be able
to do a bunch of work and possibly make another RC on Monday or so.

The change you made below looks like it should work, but I haven't had
a chance to try it.  I really don't know why the extra /bin/sh is there
but I've traced back the Git history and it's been there since the
initial checkin of the test suite.

On Fri, 2019-08-30 at 11:58 +0300, Eli Zaretskii wrote:
> Ping!  Is it OK to push the change I propose below?
> 
> > Date: Wed, 28 Aug 2019 19:01:39 +0300
> > From: Eli Zaretskii <e...@gnu.org>
> > Cc: bug-make@gnu.org
> > 
> > > From: Paul Smith <psm...@gnu.org>
> > > Cc: bug-make@gnu.org
> > > Date: Wed, 28 Aug 2019 11:25:25 -0400
> > > 
> > >    $string = `sh -c "$make_path -f null.mk $redir"`;
> > >    if ($string =~ /(.*): \*\*\* No targets\.  Stop\./) {
> > >      $make_name = $1;
> > >    }
> > >    else {
> > >      $make_path =~ /^(?:.*$pathsep)?(.+)$/;
> > >      $make_name = $1;
> > >    }
> > > 
> > > I don't know why we use sh -c here instead of just invoking the
> > > command
> > > normally via Perl ``... but that certainly fails for you since
> > > you have
> > > no sh, so it goes to the else part and tries to grab the
> > > filename.
> > > 
> > > You can either try removing the sh -c and just running make
> > > directly
> > > and grabbing the name from the output, or you can fix the else-
> > > part to
> > > remove a .exe if it exists.
> > 
> > Thanks.  Does the below look right?  I'm mainly worried about the
> > redir part, although this did work for me on Windows.  (Perl is
> > largely a read-only language for me.)
> > 
> > diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl
> > index 7e969a9..55bae33 100644
> > --- a/tests/run_make_tests.pl
> > +++ b/tests/run_make_tests.pl
> > @@ -436,7 +436,7 @@ sub set_more_defaults
> >  
> >     my $redir = '2>&1';
> >     $redir = '' if os_name eq 'VMS';
> > -   $string = `sh -c "$make_path -f null.mk $redir"`;
> > +   $string = `$make_path -f null.mk $redir`;
> >     if ($string =~ /(.*): \*\*\* No targets\.  Stop\./) {
> >       $make_name = $1;
> >     }
> > 
> > With this change, I'm down to 236 failed tests.
> > 
> > _______________________________________________
> > Bug-make mailing list
> > Bug-make@gnu.org
> > https://lists.gnu.org/mailman/listinfo/bug-make


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to