X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FB%2Ft%2Foptree_specials.t;h=5db9d020781f5f0b4815a11275fab4ad26bcce1e;hb=ce5d06123ae0253bf2e33033ffbfba16ce3bb79e;hp=35871339f78109a7840e0ee05dd45d47e708afde;hpb=d5ec2987912a76b3059b7bd1d06cf02b4d0dae0c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/B/t/optree_specials.t b/ext/B/t/optree_specials.t index 3587133..5db9d02 100644 --- a/ext/B/t/optree_specials.t +++ b/ext/B/t/optree_specials.t @@ -27,7 +27,7 @@ BEGIN { use OptreeCheck; # ALSO DOES @ARGV HANDLING !!!!!! use Config; -plan tests => 7; +plan tests => 8; require_ok("B::Concise"); @@ -38,7 +38,7 @@ my $out = runperl( #print "out:$out\n"; -my $src = q[our ($beg, $chk, $init, $end) = qq{'foo'}; BEGIN { $beg++ } CHECK { $chk++ } INIT { $init++ } END { $end++ }]; +my $src = q[our ($beg, $chk, $init, $end, $uc) = qq{'foo'}; BEGIN { $beg++ } CHECK { $chk++ } INIT { $init++ } END { $end++ } UNITCHECK {$uc++}]; my @warnings_todo; @@ -47,11 +47,11 @@ my @warnings_todo; . "propagated to 5.8.x") if $] < 5.009; - checkOptree ( name => 'BEGIN', bcopts => 'BEGIN', prog => $src, @warnings_todo, + @open_todo, expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT'); # BEGIN 1: # b <1> leavesub[1 ref] K/REFC,1 ->(end) @@ -102,6 +102,7 @@ EONT_EONT checkOptree ( name => 'END', bcopts => 'END', prog => $src, + @open_todo, expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT'); # END 1: # 4 <1> leavesub[1 ref] K/REFC,1 ->(end) @@ -124,6 +125,7 @@ EONT_EONT checkOptree ( name => 'CHECK', bcopts => 'CHECK', prog => $src, + @open_todo, expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT'); # CHECK 1: # 4 <1> leavesub[1 ref] K/REFC,1 ->(end) @@ -142,11 +144,34 @@ EOT_EOT # 2 <$> gvsv(*chk) s ->3 EONT_EONT +checkOptree ( name => 'UNITCHECK', + bcopts => 'UNITCHECK', + prog => $src, + @open_todo, + expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT'); +# UNITCHECK 1: +# 4 <1> leavesub[1 ref] K/REFC,1 ->(end) +# - <@> lineseq KP ->4 +# 1 <;> nextstate(main 3 -e:4) v:{ ->2 +# 3 <1> postinc[t3] sK/1 ->4 +# - <1> ex-rv2sv sKRM/1 ->3 +# 2 <#> gvsv[*uc] s ->3 +EOT_EOT +# UNITCHECK 1: +# 4 <1> leavesub[1 ref] K/REFC,1 ->(end) +# - <@> lineseq KP ->4 +# 1 <;> nextstate(main 3 -e:4) v:{ ->2 +# 3 <1> postinc[t2] sK/1 ->4 +# - <1> ex-rv2sv sKRM/1 ->3 +# 2 <$> gvsv(*uc) s ->3 +EONT_EONT + checkOptree ( name => 'INIT', bcopts => 'INIT', #todo => 'get working', prog => $src, + @open_todo, expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT'); # INIT 1: # 4 <1> leavesub[1 ref] K/REFC,1 ->(end) @@ -166,10 +191,11 @@ EOT_EOT EONT_EONT -checkOptree ( name => 'all of BEGIN END INIT CHECK -exec', - bcopts => [qw/ BEGIN END INIT CHECK -exec /], +checkOptree ( name => 'all of BEGIN END INIT CHECK UNITCHECK -exec', + bcopts => [qw/ BEGIN END INIT CHECK UNITCHECK -exec /], prog => $src, @warnings_todo, + @open_todo, expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT'); # BEGIN 1: # 1 <;> nextstate(B::Concise -234 Concise.pm:328) v:*,&,{,$ @@ -203,6 +229,11 @@ checkOptree ( name => 'all of BEGIN END INIT CHECK -exec', # p <#> gvsv[*chk] s # q <1> postinc[t3] sK/1 # r <1> leavesub[1 ref] K/REFC,1 +# UNITCHECK 1: +# s <;> nextstate(main 6 -e:1) v:{ +# t <#> gvsv[*uc] s +# u <1> postinc[t3] sK/1 +# v <1> leavesub[1 ref] K/REFC,1 EOT_EOT # BEGIN 1: # 1 <;> nextstate(B::Concise -234 Concise.pm:328) v:*,&,{,$ @@ -236,6 +267,11 @@ EOT_EOT # p <$> gvsv(*chk) s # q <1> postinc[t2] sK/1 # r <1> leavesub[1 ref] K/REFC,1 +# UNITCHECK 1: +# s <;> nextstate(main 6 -e:1) v:{ +# t <$> gvsv(*uc) s +# u <1> postinc[t2] sK/1 +# v <1> leavesub[1 ref] K/REFC,1 EONT_EONT