blob: 9d6879b113dcf530e6bd7e6d96b533852beca920 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
#!./perl
BEGIN {
if ($ENV{PERL_CORE}){
chdir('t') if -d 't';
if ($^O eq 'MacOS') {
@INC = qw(: ::lib ::macos:lib);
} else {
@INC = '.';
push @INC, '../lib';
}
} else {
unshift @INC, 't';
}
require Config;
if (($Config::Config{'extensions'} !~ /\bB\b/) ){
print "1..0 # Skip -- Perl configured without B module\n";
exit 0;
}
}
$| = 1;
use warnings;
use strict;
use Config;
print "1..1\n";
my $test = 1;
sub ok { print "ok $test\n"; $test++ }
my $got;
my $Is_VMS = $^O eq 'VMS';
my $Is_MacOS = $^O eq 'MacOS';
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|Cygwin)$/ } @got if $^O eq 'cygwin';
if ($Is_VMS) {
@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 Internals main Regexp utf8 version warnings";
if ($] < 5.009) {
$expected =~ s/version //;
$expected =~ s/DB/DB Exporter Exporter::Heavy/;
}
{
no strict 'vars';
use vars '$OS2::is_aout';
}
if ((($Config{static_ext} eq ' ') || ($Config{static_ext} eq ''))
&& !($^O eq 'os2' and $OS2::is_aout)
) {
print "# got [$got]\n# vs.\n# expected [$expected]\nnot " if $got ne $expected;
ok;
} else {
print "ok $test # skipped: one or more static extensions\n"; $test++;
}
|