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';
58 $a = `$^X "-I../lib" "-MO=Deparse" -anle 1 2>&1`;
59 $a =~ s/-e syntax OK\n//g;
62 LINE: while (defined($_ = <ARGV>)) {
64 @F = split(/\s+/, $_, 0);
72 print "# [$a]\n\# vs\n# [$b]\nnot " if $a ne $b;
76 $a = `$^X "-I../lib" "-MO=Debug" -e 1 2>&1`;
77 print "not " unless $a =~
78 /\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s;
82 $a = `$^X "-I../lib" "-MO=Terse" -e 1 2>&1`;
83 print "not " unless $a =~
84 /\bLISTOP\b.*leave.*\bOP\b.*enter.*\bCOP\b.*nextstate.*\bOP\b.*null/s;
87 $a = `$^X "-I../lib" "-MO=Terse" -ane "s/foo/bar/" 2>&1`;
88 $a =~ s/\(0x[^)]+\)//g;
89 $a =~ s/\[[^\]]+\]//g;
90 $a =~ s/-e syntax OK//;
93 $a =~ s/\b(s|foo|bar|ullsv)\b\s?//g;
96 my $is_thread = $Config{use5005threads} && $Config{use5005threads} eq 'define';
99 leave enter nextstate label leaveloop enterloop null and defined null
100 threadsv readline gv lineseq nextstate aassign null pushmark split pushre
101 threadsv const null pushmark rvav gv nextstate subst const unstack nextstate
105 leave enter nextstate label leaveloop enterloop null and defined null
106 null gvsv readline gv lineseq nextstate aassign null pushmark split pushre
107 null gvsv const null pushmark rvav gv nextstate subst const unstack nextstate
110 $b=~s/\n/ /g;$b=~s/\s+/ /g;
112 print "# [$a]\n# vs\n# [$b]\nnot " if $a ne $b;
115 chomp($a = `$^X "-I../lib" "-MB::Stash" "-Mwarnings" -e1`);
116 $a = join ',', sort split /,/, $a;
117 $a =~ s/-uWin32,// if $^O eq 'MSWin32';
118 $a =~ s/-u(Cwd|File|File::Copy|OS2),//g if $^O eq 'os2';
119 $a =~ s/-uCwd,// if $^O eq 'cygwin';
120 if ($Config{static_ext} eq ' ') {
121 $b = '-uCarp,-uCarp::Heavy,-uDB,-uExporter,-uExporter::Heavy,-uattributes,'
122 . '-umain,-uwarnings';
123 print "# [$a] vs [$b]\nnot " if $a ne $b;
126 print "ok $test # skipped: one or more static extensions\n"; $test++;
130 print "# use5005threads: test $test skipped\n";
132 $a = `$^X "-I../lib" "-MO=Showlex" -e "my %one" 2>&1`;
133 print "# [$a]\nnot " unless $a =~ /sv_undef.*PVNV.*%one.*sv_undef.*HV/s;