X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FB%2Ft%2Fstash.t;h=f3fd07b7518ded7acfab66474fe0dca5b7327c60;hb=86aa26c7997eeb0550f8a87185a3ca36cced8245;hp=ba58d172b9edc2291695d13d7dfcc07d22cdb7dd;hpb=6e356b8f4d90311cf77d53d935b91ba1c37e82ce;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/B/t/stash.t b/ext/B/t/stash.t index ba58d17..f3fd07b 100755 --- a/ext/B/t/stash.t +++ b/ext/B/t/stash.t @@ -1,8 +1,11 @@ #!./perl BEGIN { + chdir 't' if -d 't'; if ($^O eq 'MacOS') { @INC = qw(: ::lib ::macos:lib); + } else { + @INC = '../lib'; } } @@ -18,7 +21,7 @@ my $test = 1; sub ok { print "ok $test\n"; $test++ } -my $a; +my $got; my $Is_VMS = $^O eq 'VMS'; my $Is_MacOS = $^O eq 'MacOS'; @@ -26,33 +29,54 @@ my $path = join " ", map { qq["-I$_"] } @INC; $path = '"-I../lib" "-Iperl_root:[lib]"' if $Is_VMS; # gets too long otherwise my $redir = $Is_MacOS ? "" : "2>&1"; +chomp($got = `$^X $path "-MB::Stash" "-Mwarnings" -e1`); + +$got =~ s/-u//g; + +print "# got = $got\n"; + +my @got = map { s/^\S+ //; $_ } + sort { $a cmp $b } + map { lc($_) . " " . $_ } + split /,/, $got; + +print "# (after sorting)\n"; +print "# got = @got\n"; + +@got = grep { ! /^(PerlIO|open)(?:::\w+)?$/ } @got; + +print "# (after perlio censorings)\n"; +print "# got = @got\n"; + +@got = grep { ! /^Win32$/ } @got if $^O eq 'MSWin32'; +@got = grep { ! /^NetWare$/ } @got if $^O eq 'NetWare'; +@got = grep { ! /^(Cwd|File|File::Copy|OS2)$/ } @got if $^O eq 'os2'; +@got = grep { ! /^Cwd$/ } @got if $^O eq 'cygwin'; -chomp($a = `$^X $path "-MB::Stash" "-Mwarnings" -e1`); -$a = join ',', sort split /,/, $a; -$a =~ s/-u(PerlIO|open)(?:::\w+)?,//g; -$a =~ s/-uWin32,// if $^O eq 'MSWin32'; -$a =~ s/-uNetWare,// if $^O eq 'NetWare'; -$a =~ s/-u(Cwd|File|File::Copy|OS2),//g if $^O eq 'os2'; -$a =~ s/-uCwd,// if $^O eq 'cygwin'; - $b = '-uCarp,-uCarp::Heavy,-uDB,-uExporter,-uExporter::Heavy,-uattributes,' - . '-umain,-ustrict,-uutf8,-uwarnings'; if ($Is_VMS) { - $a =~ s/-uFile,-uFile::Copy,//; - $a =~ s/-uVMS,-uVMS::Filespec,//; - $a =~ s/-uSocket,//; # Socket is optional/compiler version dependent + @got = grep { ! /^File(?:::Copy)?$/ } @got; + @got = grep { ! /^VMS(?:::Filespec)?$/ } @got; + @got = grep { ! /^vmsish$/ } @got; + # Socket is optional/compiler version dependent + @got = grep { ! /^Socket$/ } @got; } +print "# (after platform censorings)\n"; +print "# got = @got\n"; + +$got = "@got"; + +my $expected = "attributes Carp Carp::Heavy DB Exporter Exporter::Heavy Internals main utf8 version warnings"; + { no strict 'vars'; use vars '$OS2::is_aout'; } + if ((($Config{static_ext} eq ' ') || ($Config{static_ext} eq '')) && !($^O eq 'os2' and $OS2::is_aout) ) { - if (ord('A') == 193) { # EBCDIC sort order is qw(a A) not qw(A a) - $b = join ',', sort split /,/, $b; - } - print "# [$a]\n# vs.\n# [$b]\nnot " if $a ne $b; + print "# [$got]\n# vs.\n# [$expected]\nnot " if $got ne $expected; ok; } else { print "ok $test # skipped: one or more static extensions\n"; $test++;