Branch Coverage

blib/lib/WebDyne.pm
Criterion Covered Total %
branch 132 522 25.2


line true false branch
138 0 12 if (ref $fn) { }
12 0 elsif (ref $opt_hr ne 'HASH') { }
142 12 0 if $opt_hr
144 12 0 unless ref $fn
166 0 12 if ($handler)
167 0 0 unless eval "require $handler"
175 0 12 unless defined $handler->handler(grep({$_;} $r, $opt_hr->{'param'}))
185 12 0 if (ref $html_fh eq 'IO::String') { }
249 0 0 if ($caller[3] eq "(eval)")
261 0 0 unless ($eval_nest[0][0] =~ /^WebDyne(?:::|$)/)
275 0 0 unless $@
293 0 18 if ($r->header_only)
389 8 10 if ($self->{'_compile'} or $cache_inode_hr->{'mtime'} < $srce_mtime or $cache_mtime > $cache_inode_hr->{'mtime'}) { }
429 8 0 unless (eval { do { require Symbol; &Symbol::delete_package("WebDyne::$srce_inode") } })
430 0 8 if $@
446 8 0 if ($self->{'_compile'} or $cache_mtime < $srce_mtime) { }
456 0 8 unless eval { do { require WebDyne::Compile } }
474 0 8 if errstr()
482 0 8 if $cache_pn
508 0 0 if (my $meta_hr = $container_ar->[0])
509 0 0 if (my $perl_ar = $meta_hr->{'perl'})
512 0 0 unless $self->perl_init($perl_ar, $perl_debug_ar)
520 1 7 if (my $meta_hr = $container_ar->[0] and $cache_inode_hr->{'meta'}) { }
7 0 elsif ($meta_hr) { }
571 0 18 if (my $handler_ar = $meta_hr->{'handler'} || $r->dir_config('WebDyneHandler'))
573 0 0 ref $handler_ar ? :
574 0 0 if (ref $self ne $handler)
576 0 0 unless ($Package{'_handler_load'}{$handler})
580 0 0 unless eval { do { require $handler_fn } }
582 0 0 unless UNIVERSAL::can($handler, "handler")
604 0 18 if (my $cache = $self->{'_cache'} || $meta_hr->{'cache'} and not $self->{'_cache_run_fg'}++) { }
608 0 0 if (ref $cache eq 'CODE') { }
638 0 0 unless &$eval_cr($self, undef, \%param, "\$_[1]->{'cache_cr'}->(\$_[0], \$_[1]->{'srce_inode'})", 0)
651 0 0 unless &$eval_cr($self, undef, $srce_inode, $cache, 0)
667 0 0 if ($cache_inode ne $srce_inode or $self->{'_compile'}) { }
698 14 4 if ($self->{'_static'} or $meta_hr and $meta_hr->{'html'} || $meta_hr->{'static'}) { }
711 0 14 if ($cache_pn and -f (my $fn = "$cache_pn.html") and (stat _)[9] >= $srce_mtime and not $self->{'_compile'}) { }
0 14 elsif ($cache_pn) { }
717 0 0 if ($WebDyne::MOD_PERL and not $WebDyne::MP2) { }
754 0 0 $meta_hr->{'static'} || $self->{'_static'} ? :
756 0 0 $WebDyne::MP2 ? :
766 12 2 $meta_hr->{'static'} || $self->{'_static'} ? :
768 0 14 $WebDyne::MP2 ? :
798 0 18 unless tie *WEBDYNE, "WebDyne::TieHandle", $self
800 18 0 if $select
828 16 0 if $select
836 0 16 if errstr()
837 0 16 if &CGI::Simple::cgi_error()
844 0 16 if (my $block_param_hr = delete $self->{'_block_param'})
847 0 0 unless (exists $self->{'_block_render'}{$block_name})
851 0 0 if (@block_error)
861 0 16 unless $r->status
904 16 0 unless $WebDyne::MP2
910 0 16 $WebDyne::MP2 ? :
923 0 18 if ($r eq ($r->main || $r) and not +(my $nrun = ++$Package{'_nrun'}) % 256) { }
939 0 0 $WebDyne::MP2 ? :
979 0 18 $WebDyne::MP2 ? :
992 0 7 if ($WebDyne::MP2) { }
0 7 elsif ($ENV{'MOD_PERL'}) { }
1003 0 0 unless eval { do { require Apache::Log; require Apache::Response; require Apache::SubRequest; require Apache::Const; "Apache::Const"->import("-compile", ("OK", "DECLINED")); require APR::Table; require APR::Pool } }
1014 0 0 if $@
1015 0 0 unless (UNIVERSAL::can("Apache", "OK"))
1016 0 0 if (UNIVERSAL::can('Apache2::Const', 'OK')) { }
0 0 elsif (UNIVERSAL::can('Apache::Const', 'OK')) { }
1026 0 0 unless defined &Apache::OK
1028 0 0 unless defined &Apache::DECLINED
1039 0 0 unless (eval { do { require Apache::Constants; "Apache::Constants"->import("OK", "DECLINED"); *Apache::OK = \&Apache::Constants::OK; *Apache::DECLINED = \&Apache::Constants::DECLINED } })
1042 0 0 if $@
1054 0 7 if (-d "")
1118 0 8 if ($@) { }
0 8 elsif (not defined $sub_cr) { }
0 8 elsif (not ref $sub_cr eq 'CODE') { }
1170 2 7 $tag_fg ? :
1174 0 9 if (not @eval or $@ or not $eval[0]) { }
0 9 elsif ($eval[0] eq $self) { }
1178 0 0 if (my $err = errstr() || $@) { }
1206 1 10 if ref $_
0 9 if (grep {not ref($_) =~ /(?:SCALAR|ARRAY|HASH|JSON)/ if ref $_;} @eval)
1283 0 0 if (not defined $html_sr or $@)
1288 0 0 if (my $err = errstr() || $@) { }
1308 0 0 if (ref $html_sr eq "ARRAY")
1309 0 0 if (ref $_) { }
1316 0 0 if (my $print_ar = delete $self->{'_print_ar'}) { }
1320 0 0 ref $_ eq 'SCALAR' ? :
1321 0 0 ref $html_sr ? :
1332 0 0 ref $html_sr ? :
1346 0 2 unless &$eval_perl_cr(@_)
1387 0 7 if (ref $html_sr eq "ARRAY" and not $tag_fg)
1396 0 7 if (my $print_ar = delete $self->{'_print_ar'}) { }
1400 0 0 ref $item eq 'SCALAR' ? :
1401 0 0 ref $html_sr ? :
1411 1 6 ref $html_sr ? :
1421 0 0 unless ($value)
1422 0 0 if (not exists $_[2]{$_[3]} and 1)
1428 0 0 if (ref $value and overload::Overloaded($value))
1429 0 0 ref $value ? :
1447 0 0 UNIVERSAL::can($r, $m) ? :
1484 0 0 if (@cache > 64) { }
1536 0 0 unless $WebDyne::MP2
1549 0 0 if ($data_ar) { }
1565 0 0 ref $param_hr eq 'HASH' ? :
1577 0 0 unless exists $param{$_}
1640 9 25 if (ref $node_data_ar) { }
1648 0 7 unless &$render_cr($render_cr, $self, $html_or, $node_data_ar, $param{'param'})
1710 1 8 if ($data_ar->[3])
1729 0 9 if (exists $attr_hr->{'param'})
1730 0 0 if (ref $attr_hr->{'param'} eq 'HASH') { }
0 0 elsif (ref $attr_hr->{'param'}) { }
1752 1 8 if (not $WebDyne::CGI_TAG_WEBDYNE{$html_tag} or $html_tag eq 'subst') { }
1758 0 1 $data_ar->[2] ? :
1770 0 1 if (ref $data_chld_ar) { }
1777 0 0 unless &$render_cr($render_cr, $self, $html_or, $data_chld_ar, $param_data_hr)
1812 8 1 if ($WebDyne::CGI_TAG_WEBDYNE{$html_tag}) { }
1 0 elsif ($attr_hr) { }
0 0 elsif ($html_chld) { }
1818 0 6 unless $self->$html_tag($data_ar, $attr_hr, $param_data_hr, $html_chld)
1884 2 0 if $param_hr
1895 2 0 if (my $select = $self->{'_select'})
1903 0 2 if ($param_hr->{'uri'} or $param_hr->{'file'} or $param_hr->{'location'}) { }
1918 0 0 if (my $errstr = errstr()) { }
0 0 elsif (&is_error($status)) { }
0 0 elsif ($status != &Apache::OK and not &is_success($status) and not &is_redirect($status)) { }
1948 1 1 if ($param_hr->{'html'}) { }
0 1 elsif ($param_hr->{'text'}) { }
1 0 elsif ($param_hr->{'json'}) { }
1962 1 1 ref $html_sr ? :
1968 2 0 unless $WebDyne::MP2
1974 1 1 ref $html_sr ? :
1999 0 0 unless $self->$_
2006 0 0 if (my $location = $param_hr->{'location'})
2011 0 0 if (UNIVERSAL::can($r, 'redirect')) { }
2030 0 0 unless $WebDyne::MP2
2035 0 0 if (my $uri = $param_hr->{'uri'}) { }
0 0 elsif (my $file = $param_hr->{'file'}) { }
2039 0 0 if (UNIVERSAL::can($r, 'internal_redirect')) { }
2102 0 0 if ($status and not &is_success($status) or my $errstr = errstr())
2103 0 0 if ($errstr) { }
2145 0 0 ref($r_child) =~ /^WebDyne::/ ? :
0 0 unless defined($status = ref($r_child) =~ /^WebDyne::/ ? $r_child->run($self) : $r_child->run)
2170 0 0 unless ref $param_hr
2203 0 0 unless ref $param_hr
2242 0 0 if (exists $self->{'_block_cache'}{$name}) { }
2323 0 0 unless (@data_block_ar)
2370 0 0 if (@html_sr) { }
2376 0 0 $#html_sr ? :
2422 0 0 if (exists $self->{'_block_render'}{$name}{$data_ar}) { }
0 0 elsif (exists $self->{'_block_param'}{$name}) { }
0 0 elsif ($attr_hr->{'display'}) { }
2524 0 0 unless $attr_hr->{'handler'} or $attr_hr->{'perl'}
2531 0 0 unless defined(my $json_xr = $self->perl(undef, {"json", 1, %{$attr_hr;}}))
2533 0 0 if (ref $json_xr eq "SCALAR")
2544 0 0 $attr_hr->{'canonical'} ? :
0 0 defined $attr_hr->{'canonical'} ? :
2545 0 0 $attr_hr->{'pretty'} ? :
0 0 defined $attr_hr->{'pretty'} ? :
2587 1 0 if $hx_request = $r->headers_in->{$header}
2594 0 0 unless ($hx_request or $attr_hr->{'force'} or 0)
2607 0 1 if (exists $attr_hr->{'display'})
2608 0 0 unless ($attr_hr->{'display'})
2620 0 1 if (my $handler = $attr_hr->{'handler'} or $attr_hr->{'perl'}) { }
2646 1 0 if ($hx_request) { }
2678 1 0 if (my $perl = $attr{'perl'})
2706 1 0 if (my $match_hr = $rest_or->match(\%ENV)) { }
2728 0 1 defined $attr_hr->{'canonical'} ? :
2762 0 7 if (exists $attr_hr->{'run'})
2763 0 0 unless ($attr_hr->{'run'})
2789 0 7 if (my $require_fn = $attr_hr->{'require'})
2794 0 0 unless $self->eval_require($require_fn, $attr_hr)
2807 7 0 if (my $perl_code = $attr_hr->{'perl'}) { }
0 0 elsif (grep {$attr_hr->{$_};} 'package', 'method', 'handler') { }
2855 0 0 unless $method
2861 0 0 if ($package)
2863 0 0 unless $self->eval_require($package, $attr_hr)
2878 0 0 unless ($function =~ /::/)
2887 0 0 if (exists $attr_hr->{'param'})
2888 0 0 if (ref $attr_hr->{'param'} eq 'HASH') { }
0 0 elsif (not ref $attr_hr->{'param'}) { }
2911 0 0 $param_scalar ? :
0 0 unless (defined($html_sr = $Package{'_eval_cr'}{'!'}->($self, $data_ar, $param_scalar ? $param_scalar : \%param, "&$function", undef, $tag_fg)))
2933 0 0 if (not $attr_hr->{'json'}) { }
2934 0 0 if ((my $ref = ref $html_sr) eq 'HASH') { }
0 0 elsif ($ref ne 'SCALAR') { }
2972 0 7 if ($attr_hr->{'hidden'} or exists $attr_hr->{'display'} and not $attr_hr->{'display'}) { }
3013 0 0 if $@
3015 0 0 if ($@) { }
0 0 elsif (not $ret) { }
3029 0 0 if ($require_fn =~ m([./\\]) or $attr_hr->{'file'}) { }
3058 0 0 if (ref $attr_hr->{'import'} eq 'ARRAY') { }
3080 0 0 if ($INC{$package_fn}) { }
3173 0 2 if $Package{'_cache'}{$inode}{'perl_init'}{$perl_sr}++
3253 0 2 if (my $err = $@ || errstr()) { }
0 2 elsif (not $ret) { }
3314 0 0 unless &$cr($1, $3, $index++)
3369 0 194 if $attr_name eq "perl"
3374 2 192 if ($attr_value =~ /^\s*([\@%!+*^])\{(\1?)(.*)\2}\s*$/so or $attr_value =~ /^\s*(\$)\{(\1?)([^{]+)\2}\s*$/so) { }
3385 0 2 ref $eval eq 'SCALAR' ? :
3397 0 0 unless ref $sr eq "SCALAR"
3403 0 0 unless &$cr($1, $3, $attr_name)
3442 0 0 if (ref $_[0] eq 'ARRAY') { }
3453 0 0 unless ref $param_hr
3476 0 0 unless (ref $fn_ar eq "ARRAY")
3502 0 0 if (my $node = (grep {exists $param_hr->{$_};} 'head', 'body')[0]) { }
0 0 elsif (my $block = $param_hr->{'block'}) { }
3525 0 0 unless eval { do { require WebDyne::Compile } }
3541 0 0 if (my $meta_hr = $container_ar->[0])
3542 0 0 if (my $perl_ar = $meta_hr->{'perl'})
3545 0 0 unless $self->perl_init($perl_ar, $perl_debug_ar)
3559 0 0 unless @{$block_ar;}
3571 0 0 unless $self->optimise_one($block_ar)
3572 0 0 unless $self->optimise_two($block_ar)
3585 0 0 if $data_ar and not $param_hr->{'nocache'}
3615 0 0 unless eval { do { require WebDyne::Compile } }
3639 0 0 unless @{$block_ar;}
3659 0 0 if $data_ar and not $param_hr->{'nocache'}
3688 0 0 if (my $tag = $param_hr->{'wrap'})
3698 0 0 if ($data_ar and not $param_hr->{'nocache'})
3759 150 110 if ((my $data_ar_tag = $data_ar->[0]) eq $tag) { }
3774 150 0 if (grep({$tag_attr_hr->{$_} eq $attr_hr->{$_};} keys %{$tag_attr_hr;}) == keys %{$attr_hr;})
3787 0 150 $prnt_fg ? :
3788 36 114 unless $all_fg
3803 0 224 if $depth_max and ++$depth > $depth_max
3808 105 119 $data_ar->[2] ? :
3815 187 153 if (ref $data_child_ar)
3820 36 151 if (my $data_match_ar = &$find_cr($find_cr, $data_child_ar, $data_ar))
3825 36 0 unless $all_fg
3885 1 4 if ($data_chld_ar eq $node_ar) { }
3900 0 4 unless &$find_cr($find_cr, $data_chld_ar)
1 3 if ${return err() unless &$find_cr($find_cr, $data_chld_ar);}
3948 0 7 if @_
3977 0 7 unless $cgi_or
3985 2 4 unless defined $value
4002 0 3 @_ ? :
4018 0 0 if ($attr_hr->{'force'} or $attr_hr->{'display'}) { }
4028 0 0 if ($attr_hr->{'env'} or $attr_hr->{'all'})
4040 0 0 if ($attr_hr->{'lib'} or $attr_hr->{'inc'} or $attr_hr->{'all'})
4057 0 0 if ($attr_hr->{'constant'} or $attr_hr->{'all'})
4071 0 0 $cv eq $wv ? :
4082 0 0 if ($attr_hr->{'dir_config'} or $attr_hr->{'all'})
4132 0 7 if (-d ($dn = 'File::Spec'->rel2abs($fn))) { }
4187 0 0 unless $self->cache_filename(@_)
4189 0 0 $inode_pn ? :
4210 0 0 @_ ? :
4227 0 0 if ($html_sr)
4246 0 0 if @_
4274 0 1 if (@param == 2) { }
0 1 elsif (@param) { }
4299 0 0 if (defined $static) { }
4351 0 0 if @_
4375 0 0 if (@_) { }
4405 0 0 if ($data_ar ||= $self->data_ar_err)
4419 0 0 if ($data_ar ||= $self->data_ar_err)
4420 0 0 wantarray ? :
4431 0 0 if $self->{'_autonewline'}
4433 0 0 if (ref $_ eq 'ARRAY') { }
4455 14 0 if (@_)
4456 0 14 $_[0] ? :
4470 0 0 if (ref $item eq 'ARRAY') { }
0 0 elsif (ref $item eq 'SCALAR') { }
4496 8 10 if $self->{'_CGI'}
4545 0 0 if $caller{$caller}++
4547 0 0 if (my $cr = UNIVERSAL::can($caller, $method))