4 delete $ENV{PERL_DL_NONLAZY} if $] < 5.005_58; #Perl_byterun problem
8 @INC = qw(: ::lib ::macos:lib);
17 if (($Config::Config{'extensions'} !~ /\bB\b/) ){
18 print "1..0 # Skip -- Perl configured without B module\n";
27 use Test::More tests => 8;
32 my $Is_VMS = $^O eq 'VMS';
33 my $Is_MacOS = $^O eq 'MacOS';
35 my $path = join " ", map { qq["-I$_"] } @INC;
36 my $redir = $Is_MacOS ? "" : "2>&1";
38 $a = `$^X $path "-MO=Debug" -e 1 $redir`;
39 like($a, qr/\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s);
42 $a = `$^X $path "-MO=Terse" -e 1 $redir`;
43 like($a, qr/\bLISTOP\b.*leave.*\n OP\b.*enter.*\n COP\b.*nextstate.*\n OP\b.*null/s);
45 $a = `$^X $path "-MO=Terse" -ane "s/foo/bar/" $redir`;
46 $a =~ s/\(0x[^)]+\)//g;
47 $a =~ s/\[[^\]]+\]//g;
48 $a =~ s/-e syntax OK//;
51 $a =~ s/\b(s|foo|bar|ullsv)\b\s?//g;
54 $a =~ s/\s+nextstate$//; # if $] < 5.008001; # 5.8.0 adds it. 5.8.8 not anymore
55 my $is_thread = $Config{use5005threads} && $Config{use5005threads} eq 'define';
58 leave enter nextstate label leaveloop enterloop null and defined null
59 threadsv readline gv lineseq nextstate aassign null pushmark split pushre
60 threadsv const null pushmark rvav gv nextstate subst const unstack
64 leave enter nextstate label leaveloop enterloop null and defined null null
65 gvsv readline gv lineseq nextstate aassign null pushmark split pushre null
66 gvsv const null pushmark rvav gv nextstate subst const unstack
69 #$b .= " nextstate" if $] < 5.008001; # ??
70 $b=~s/\n/ /g;$b=~s/\s+/ /g;
74 like(B::Debug::_printop(B::main_root), qr/LISTOP\s+\[OP_LEAVE\]/);
75 like(B::Debug::_printop(B::main_start), qr/OP\s+\[OP_ENTER\]/);
77 $a = `$^X $path "-MO=Debug" -e "B::main_root->debug" $redir`;
78 like($a, qr/op_next\s+0x0/m);
79 $a = `$^X $path "-MO=Debug" -e "B::main_start->debug" $redir`;
80 like($a, qr/PL_ppaddr\[OP_ENTER\]/m);
82 # pass missing FETCHSIZE, fixed with 1.06
85 print TMP 'BEGIN{tie @a, __PACKAGE__;sub TIEARRAY {bless{}} sub FETCH{1}};
88 $a = `$^X $path "-MO=Debug" $tmp $redir`;
90 unlike($a, qr/locate object method "FETCHSIZE"/m);