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;});
35 my $Is_VMS = $^O eq 'VMS';
38 $a = `$^X "-I../lib" "-MO=Deparse" -anle "1"`;
41 $a = `$^X -I../lib -MO=Deparse -anle 1 2>&1`;
43 $a =~ s/-e syntax OK\n//g;
46 LINE: while (defined($_ = <ARGV>)) {
48 @F = split(/\s+/, $_, 0);
56 print "# [$a]\n\# vs\n# [$b]\nnot " if $a ne $b;
61 $a = `$^X "-I../lib" "-MO=Debug" -e "1"`;
64 $a = `$^X -I../lib -MO=Debug -e 1 2>&1`;
66 print "not " unless $a =~
67 /\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s;
72 $a = `$^X "-I../lib" "-MO=Terse" -e "1"`;
75 $a = `$^X -I../lib -MO=Terse -e 1 2>&1`;
77 print "not " unless $a =~
78 /\bLISTOP\b.*leave.*\bOP\b.*enter.*\bCOP\b.*nextstate.*\bOP\b.*null/s;
82 $a = `$^X "-I../lib" "-MO=Terse" -ane "s/foo/bar/"`;
85 $a = `$^X -I../lib -MO=Terse -ane "s/foo/bar/" 2>&1`;
87 $a =~ s/\(0x[^)]+\)//g;
88 $a =~ s/\[[^\]]+\]//g;
89 $a =~ s/-e syntax OK//;
92 $a =~ s/\b(s|foo|bar|ullsv)\b\s?//g;
96 leave enter nextstate label leaveloop enterloop null and defined null
97 null gvsv readline gv lineseq nextstate aassign null pushmark split pushre
98 null gvsv const null pushmark rvav gv nextstate subst const unstack
101 $b=~s/\n/ /g;$b=~s/\s+/ /g;
103 print "# [$a] vs [$b]\nnot " if $a ne $b;
107 chomp($a = `$^X "-I../lib" "-MB::Stash" "-Mwarnings" -e "1"`);
110 chomp($a = `$^X -I../lib -MB::Stash -Mwarnings -e1`);
112 $a = join ',', sort split /,/, $a;
113 $a =~ s/-uWin32,// if $^O eq 'MSWin32';
114 $a =~ s/-u(Cwd|File|File::Copy|OS2),//g if $^O eq 'os2';
115 if ($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;
121 print "ok $test # skipped: one or more static extensions\n"; $test++;
125 $a = `$^X "-I../lib" "-MO=Showlex" -e "my %one"`;
128 $a = `$^X -I../lib -MO=Showlex -e "my %one" 2>&1`;
130 print "# [$a]\nnot " unless $a =~ /sv_undef.*PVNV.*%one.*sv_undef.*HV/s;