develooper Front page | perl.perl5.porters | Postings from August 2009

Re: Win32, spaces and directories named t (was Re: Building from ext/ doesn't like VMS debug builds))

Thread Previous | Thread Next
From:
Steve Hay
Date:
August 29, 2009 19:56
Subject:
Re: Win32, spaces and directories named t (was Re: Building from ext/ doesn't like VMS debug builds))
Message ID:
db930dff0908291956m1ee8b45v78379dd4183d627e@mail.gmail.com
2009/8/29 Nicholas Clark <nick@ccl4.org>

> On Sat, Aug 29, 2009 at 07:39:20AM +0100, Nicholas Clark wrote:
>
> It's to do with paths that contain a directory 't' being made absolute on
> Win32. But I don't think that it's *all* cases of tests that spawn child
> perl programs.
>
> > I think that the connection is that all the failures spawn a new perl
> > But I'm not sure why they don't like spawning ../../t/perl when
> ../../perl
> > worked just fine.
>

I picked one at random and had a very quick look at it (it's a tad late...).

With http://perl5.git.perl.org/perl.git/commit/7f96267 reverted I get this:

C:\gitclients\perl\t>..\perl harness ../ext/B/t/optree_misc.t
# Failed at t/optree_misc.t line 102
#      got 'Can't locate XSLoader.pm in @INC (@INC contains: ../lib
C:\gitclient
s\perl\lib:C:\gitclients\perl\t C:/gitclients/perl/t/lib .) at B.pm line 12.
# BEGIN failed--compilation aborted at B.pm line 12.
# Compilation failed in require at O.pm line 5.
# BEGIN failed--compilation aborted at O.pm line 5.
# Compilation failed in require.
# BEGIN failed--compilation aborted.
# '
# expected /(?ms-xi:^8  <\@> leave\[\d+ refs?\] vKP/REFC ->\(end\)
# 1     <0> enter ->2
# 2     <;> (?:next|db)state\([^()]*?\) v:{ ->3
# 7     <2> sassign vKS/2 ->8
# 5        <\@> index\[t\d+\] sK/2 ->6
# -           <0> ex-pushmark s ->3
# 3           <\$> const\[PV ".*?"\] s ->4
# 4           <\$> const\[GV ".*?"\] s ->5
# -        <1> ex-rv2sv sKRM\*/1 ->7
# 6           <\#> gvsv\[\*_\] s ->7
# $)/
[...]

so it looks like it simply can't find the XSLoader module.

At first I thought it was just because -I..\lib is useless given that the
test is run from ext/B. That could make a difference because the top-level
perl.exe will find the lib/ alongside itself anyway (perl.exe on Win32
always looks for a lib/ and site/lib/ alongside itself), whereas the
t/perl.exe won't find a useful lib/ alongside itself.

However, I then noticed that the @INC in the above error message is
nonsense: C:\gitclients\perl\lib and C:\gitclients\perl\t are joined
together with a ":" character.

The culprit for that is fixed by
http://perl5.git.perl.org/perl.git/commit/1ff5bc3, which also reverts your
workaround.

I'm still seeing a couple of failures (in lib/maintainers.t and
lib/strict.t) but it's waaaaay past my bedtime now...

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About