In DEC OSF aka Digital UNIX aka Tru64 add the version
[p5sagit/p5-mst-13.2.git] / t / lib / b.t
CommitLineData
ccc418af 1#!./perl
2
3BEGIN {
4 chdir 't' if -d 't';
5 unshift @INC, '../lib';
6}
7
8$| = 1;
9use warnings;
10use strict;
11use Config;
12
13print "1..10\n";
14
15my $test = 1;
16
17sub ok { print "ok $test\n"; $test++ }
18
19use B::Deparse;
20my $deparse = B::Deparse->new() or print "not ";
21ok;
22
23print "not " if "{\n 1;\n}" ne $deparse->coderef2text(sub {1});
24ok;
25
26print "not " if "{\n '???';\n 2;\n}" ne
27 $deparse->coderef2text(sub {1;2});
28ok;
29
30print "not " if "{\n \$test /= 2 if ++\$test;\n}" ne
31 $deparse->coderef2text(sub {++$test and $test/=2;});
32ok;
33
885a8af1 34my $a;
35my $Is_VMS = $^O eq 'VMS';
36if ($Is_VMS) {
37 $^X = "MCR $^X";
38 $a = `$^X "-I../lib" "-MO=Deparse" -anle "1"`;
39}
40else {
41 $a = `$^X -I../lib -MO=Deparse -anle 1 2>&1`;
42}
5fb4d820 43$a =~ s/-e syntax OK\n//g;
ccc418af 44$b = <<'EOF';
ccc418af 45
46LINE: while (defined($_ = <ARGV>)) {
47 chomp $_;
48 @F = split(/\s+/, $_, 0);
49 '???'
50}
51continue {
52 '???'
53}
54
55EOF
5fb4d820 56print "# [$a]\n\# vs\n# [$b]\nnot " if $a ne $b;
ccc418af 57ok;
58
59#6
885a8af1 60if ($Is_VMS) {
61 $a = `$^X "-I../lib" "-MO=Debug" -e "1"`;
62}
63else {
64 $a = `$^X -I../lib -MO=Debug -e 1 2>&1`;
65}
ccc418af 66print "not " unless $a =~
67/\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s;
68ok;
69
70#7
885a8af1 71if ($Is_VMS) {
72 $a = `$^X "-I../lib" "-MO=Terse" -e "1"`;
73}
74else {
75 $a = `$^X -I../lib -MO=Terse -e 1 2>&1`;
76}
ccc418af 77print "not " unless $a =~
78/\bLISTOP\b.*leave.*\bOP\b.*enter.*\bCOP\b.*nextstate.*\bOP\b.*null/s;
79ok;
80
885a8af1 81if ($Is_VMS) {
82 $a = `$^X "-I../lib" "-MO=Terse" -ane "s/foo/bar/"`;
83}
84else {
85 $a = `$^X -I../lib -MO=Terse -ane "s/foo/bar/" 2>&1`;
86}
ccc418af 87$a =~ s/\(0x[^)]+\)//g;
88$a =~ s/\[[^\]]+\]//g;
89$a =~ s/-e syntax OK//;
90$a =~ s/[^a-z ]+//g;
91$a =~ s/\s+/ /g;
b2ec7025 92$a =~ s/\b(s|foo|bar|ullsv)\b\s?//g;
ccc418af 93$a =~ s/^\s+//;
94$a =~ s/\s+$//;
95$b=<<EOF;
96leave enter nextstate label leaveloop enterloop null and defined null
97null gvsv readline gv lineseq nextstate aassign null pushmark split pushre
98null gvsv const null pushmark rvav gv nextstate subst const unstack
99nextstate
100EOF
101$b=~s/\n/ /g;$b=~s/\s+/ /g;
102$b =~ s/\s+$//;
103print "# [$a] vs [$b]\nnot " if $a ne $b;
104ok;
105
885a8af1 106if ($Is_VMS) {
107 chomp($a = `$^X "-I../lib" "-MB::Stash" "-Mwarnings" -e "1"`);
108}
109else {
110 chomp($a = `$^X -I../lib -MB::Stash -Mwarnings -e1`);
111}
ccc418af 112$a = join ',', sort split /,/, $a;
754a99e1 113$a =~ s/-uWin32,// if $^O eq 'MSWin32';
114$a =~ s/-u(Cwd|File|File::Copy|OS2),//g if $^O eq 'os2';
f3ff050f 115if ($Config{static_ext} eq ' ') {
116 $b = '-uCarp,-uCarp::Heavy,-uDB,-uExporter,-uExporter::Heavy,-uattributes,'
117 . '-umain,-uwarnings';
118 print "# [$a] vs [$b]\nnot " if $a ne $b;
119 ok;
120} else {
121 print "ok $test # skipped: one or more static extensions\n"; $test++;
122}
ccc418af 123
885a8af1 124if ($Is_VMS) {
125 $a = `$^X "-I../lib" "-MO=Showlex" -e "my %one"`;
126}
127else {
128 $a = `$^X -I../lib -MO=Showlex -e "my %one" 2>&1`;
129}
ccc418af 130print "# [$a]\nnot " unless $a =~ /sv_undef.*PVNV.*%one.*sv_undef.*HV/s;
131ok;