5 unshift @INC, '../lib';
17 sub ok { print "ok $test\n"; $test++ }
20 my $deparse = B::Deparse->new() or print "not ";
23 print "not " if "{\n 1;\n}" ne $deparse->coderef2text(sub {1});
26 print "not " if "{\n '???';\n 2;\n}" ne
27 $deparse->coderef2text(sub {1;2});
30 print "not " if "{\n \$test /= 2 if ++\$test;\n}" ne
31 $deparse->coderef2text(sub {++$test and $test/=2;});
36 $test = sub : lvalue {
43 print "not " if $deparse->coderef2text(sub{$test = sub : lvalue { 1 }}) ne $a;
46 $a =~ s/lvalue/method/;
47 print "not " if $deparse->coderef2text(sub{$test = sub : method { 1 }}) ne $a;
50 $a =~ s/method/locked method/;
51 print "not " if $deparse->coderef2text(sub{$test = sub : method locked { 1 }})
57 my $Is_VMS = $^O eq 'VMS';
60 $a = `$^X "-I../lib" "-MO=Deparse" -anle "1"`;
63 $a = `$^X -I../lib -MO=Deparse -anle 1 2>&1`;
65 $a =~ s/-e syntax OK\n//g;
68 LINE: while (defined($_ = <ARGV>)) {
70 @F = split(/\s+/, $_, 0);
78 print "# [$a]\n\# vs\n# [$b]\nnot " if $a ne $b;
83 $a = `$^X "-I../lib" "-MO=Debug" -e "1"`;
86 $a = `$^X -I../lib -MO=Debug -e 1 2>&1`;
88 print "not " unless $a =~
89 /\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s;
94 $a = `$^X "-I../lib" "-MO=Terse" -e "1"`;
97 $a = `$^X -I../lib -MO=Terse -e 1 2>&1`;
99 print "not " unless $a =~
100 /\bLISTOP\b.*leave.*\bOP\b.*enter.*\bCOP\b.*nextstate.*\bOP\b.*null/s;
104 $a = `$^X "-I../lib" "-MO=Terse" -ane "s/foo/bar/"`;
107 $a = `$^X -I../lib -MO=Terse -ane "s/foo/bar/" 2>&1`;
109 $a =~ s/\(0x[^)]+\)//g;
110 $a =~ s/\[[^\]]+\]//g;
111 $a =~ s/-e syntax OK//;
114 $a =~ s/\b(s|foo|bar|ullsv)\b\s?//g;
118 leave enter nextstate label leaveloop enterloop null and defined null
119 null gvsv readline gv lineseq nextstate aassign null pushmark split pushre
120 null gvsv const null pushmark rvav gv nextstate subst const unstack
123 $b=~s/\n/ /g;$b=~s/\s+/ /g;
125 print "# [$a] vs [$b]\nnot " if $a ne $b;
129 chomp($a = `$^X "-I../lib" "-MB::Stash" "-Mwarnings" -e "1"`);
132 chomp($a = `$^X -I../lib -MB::Stash -Mwarnings -e1`);
134 $a = join ',', sort split /,/, $a;
135 $a =~ s/-uWin32,// if $^O eq 'MSWin32';
136 $a =~ s/-u(Cwd|File|File::Copy|OS2),//g if $^O eq 'os2';
137 if ($Config{static_ext} eq ' ') {
138 $b = '-uCarp,-uCarp::Heavy,-uDB,-uExporter,-uExporter::Heavy,-uattributes,'
139 . '-umain,-uwarnings';
140 print "# [$a] vs [$b]\nnot " if $a ne $b;
143 print "ok $test # skipped: one or more static extensions\n"; $test++;
147 $a = `$^X "-I../lib" "-MO=Showlex" -e "my %one"`;
150 $a = `$^X -I../lib -MO=Showlex -e "my %one" 2>&1`;
152 print "# [$a]\nnot " unless $a =~ /sv_undef.*PVNV.*%one.*sv_undef.*HV/s;