Upgrade to CPAN 1.87_63
[p5sagit/p5-mst-13.2.git] / ext / B / t / debug.t
CommitLineData
87a42246 1#!./perl
2
3BEGIN {
5638aaac 4 if ($ENV{PERL_CORE}){
5 chdir('t') if -d 't';
6 if ($^O eq 'MacOS') {
7 @INC = qw(: ::lib ::macos:lib);
8 } else {
9 @INC = '.';
10 push @INC, '../lib';
11 }
87a42246 12 } else {
5638aaac 13 unshift @INC, 't';
87a42246 14 }
9cd8f857 15 require Config;
16 if (($Config::Config{'extensions'} !~ /\bB\b/) ){
17 print "1..0 # Skip -- Perl configured without B module\n";
18 exit 0;
19 }
87a42246 20}
21
22$| = 1;
23use warnings;
24use strict;
25use Config;
26
27print "1..3\n";
28
29my $test = 1;
30
31sub ok { print "ok $test\n"; $test++ }
32
33
34my $a;
35my $Is_VMS = $^O eq 'VMS';
36my $Is_MacOS = $^O eq 'MacOS';
37
38my $path = join " ", map { qq["-I$_"] } @INC;
39my $redir = $Is_MacOS ? "" : "2>&1";
40
41$a = `$^X $path "-MO=Debug" -e 1 $redir`;
42print "not " unless $a =~
43/\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s;
44ok;
45
46
47$a = `$^X $path "-MO=Terse" -e 1 $redir`;
48print "not " unless $a =~
49/\bLISTOP\b.*leave.*\n OP\b.*enter.*\n COP\b.*nextstate.*\n OP\b.*null/s;
50ok;
51
52$a = `$^X $path "-MO=Terse" -ane "s/foo/bar/" $redir`;
53$a =~ s/\(0x[^)]+\)//g;
54$a =~ s/\[[^\]]+\]//g;
55$a =~ s/-e syntax OK//;
56$a =~ s/[^a-z ]+//g;
57$a =~ s/\s+/ /g;
58$a =~ s/\b(s|foo|bar|ullsv)\b\s?//g;
59$a =~ s/^\s+//;
60$a =~ s/\s+$//;
61my $is_thread = $Config{use5005threads} && $Config{use5005threads} eq 'define';
62if ($is_thread) {
63 $b=<<EOF;
64leave enter nextstate label leaveloop enterloop null and defined null
65threadsv readline gv lineseq nextstate aassign null pushmark split pushre
241416b8 66threadsv const null pushmark rvav gv nextstate subst const unstack
87a42246 67EOF
68} else {
69 $b=<<EOF;
70leave enter nextstate label leaveloop enterloop null and defined null
71null gvsv readline gv lineseq nextstate aassign null pushmark split pushre
241416b8 72null gvsv const null pushmark rvav gv nextstate subst const unstack
87a42246 73EOF
74}
75$b=~s/\n/ /g;$b=~s/\s+/ /g;
76$b =~ s/\s+$//;
77print "# [$a]\n# vs\n# [$b]\nnot " if $a ne $b;
78ok;
79