Condition Coverage

blib/lib/WebDyne.pm
Criterion Covered Total %
condition 101 467 21.6


and 2 conditions

line l !l condition
1422 0 0 not exists $_[2]{$_[3]} and 1

and 3 conditions

line !l l&&!r l&&r condition
520 0 7 1 my $meta_hr = $container_ar->[0] and $cache_inode_hr->{'meta'}
604 18 0 0 my $cache = $self->{'_cache'} || $meta_hr->{'cache'} and not $self->{'_cache_run_fg'}++
698 0 4 14 $meta_hr and $meta_hr->{'html'} || $meta_hr->{'static'}
711 14 0 0 $cache_pn and -f (my $fn = "$cache_pn.html")
14 0 0 $cache_pn and -f (my $fn = "$cache_pn.html") and (stat _)[9] >= $srce_mtime
0 0 0 $cache_pn and -f (my $fn = "$cache_pn.html") and (stat _)[9] >= $srce_mtime and not $self->{'_compile'}
717 0 0 0 $WebDyne::MOD_PERL and not $WebDyne::MP2
923 0 18 0 $r eq ($r->main || $r) and not +(my $nrun = ++$Package{'_nrun'}) % 256
1387 7 0 0 ref $html_sr eq "ARRAY" and not $tag_fg
1428 0 0 0 ref $value and overload::Overloaded($value)
1918 0 0 0 $status != &Apache::OK and not &is_success($status)
0 0 0 $status != &Apache::OK and not &is_success($status) and not &is_redirect($status)
2102 0 0 0 $status and not &is_success($status)
2972 7 0 0 exists $attr_hr->{'display'} and not $attr_hr->{'display'}
3585 0 0 0 $data_ar and not $param_hr->{'nocache'}
3659 0 0 0 $data_ar and not $param_hr->{'nocache'}
3698 0 0 0 $data_ar and not $param_hr->{'nocache'}
3803 224 0 0 $depth_max and ++$depth > $depth_max

or 2 conditions

line l !l condition
159 12 0 $opt_hr->{'r'} || 'WebDyne::Request::Fake'->new(%{$opt_hr;}) || (return err())
170 0 12 $handler ||= __PACKAGE__
332 18 0 md5_hex(ref $self, $r->location, $srce_pn) || (return $self->err_html("could not get md5 for file $srce_pn, $!"))
342 18 0 ($Package{'_cache'}{$srce_inode} ||= {'data', undef, 'mtime', undef, 'nrun', undef, 'lrun', undef}) || (return $self->err_html('unable to initialize cache_inode_hr ref'))
456 0 0 $@ || 'undefined error'
463 8 0 $self->compile({'srce', $srce_pn, 'dest', $cache_pn}) || (return $self->err_html)
497 0 0 Storable::lock_retrieve($cache_pn) || (return $self->err_html("Storable error when retreiveing cached file '${cache_pn}', $!"))
510 0 0 $meta_hr->{'perl_debug'} || (return err('unable to load perl_debug array reference'))
638 0 0 errstr() || $@ || 'no inode returned'
651 0 0 errstr() || $@ || 'no inode returned'
1277 0 0 $safe_or->reval("sub{$eval_text}->(\$::_self, \$::_eval_param_hr)", $WebDyne::WEBDYNE_EVAL_USE_STRICT) || (return errstr() ? err() : err($@ || 'undefined return from Safe->reval()'))
1375 7 0 &$eval_perl_cr(@_) || (return err())
1388 0 0 \join(undef, map({ref $_ eq 'SCALAR' ? ${$_;} : $_;} @{$html_sr;})) || (return err('unable to generate scalar from %s', Dumper($html_sr)))
1570 0 0 $self->{'_perl'}[0][2] || (return err('unable to get HTML data array'))
1601 19 0 $param{'data'} || (return err('unable to get HTML data array'))
1612 19 0 $self->{'_html_tiny_or'} || $self->html_tiny || (return err('unable to get HTML::Tiny object from self ref'))
1628 14 5 $Package{'_render_cr'} ||= \&WebDyne::render_cr
1711 1 0 $self->subst_attr($data_ar, $attr_hr, $param_data_hr) || (return err())
1830 1 0 $html_or->$html_tag(grep({$_;} $attr_hr || {}, $html_chld)) || (return err("CGI tag '<$html_tag>' did not return any text"))
1841 0 0 $html_or->$html_tag($html_chld) || (return err("CGI tag '<$html_tag>' did not return any text"))
1852 0 0 $html_or->$html_tag || (return err("CGI tag '<$html_tag>' did not return any text"))
1908 0 0 $self->subrequest($param_hr) || (return err())
1916 0 0 $self->r || (return err())
1941 1 0 $param_hr->{'html'} || $param_hr->{'text'} || $param_hr->{'json'} || (return err('no data supplied to redirect method'))
1947 2 0 $self->r || (return err())
1961 2 0 $r->headers_out || (return err())
2027 0 0 $r->headers_out || (return err())
2053 0 0 $r->lookup_uri($uri) || (return err('undefined lookup_uri error'))
2073 0 0 $r->lookup_file($file_pn) || (return err('undefined lookup_file error'))
2175 0 0 $param_hr->{'name'} || $param_hr->{'block'} || (return err('no block name specified'))
2208 0 0 $param_hr->{'name'} || $param_hr->{'block'} || (return err('no block name specified'))
2252 0 0 $self->find_node({'data_ar', $data_ar, 'tag', 'block', 'all_fg', 1}) || (return err())
2281 0 0 $self->{'_block_cache'}{$name} ||= []
2317 0 0 $self->{'_block_param'}{$name} ||= []
2350 0 0 $self->render_data_ar('data', $data_block_ar->[2], 'param', $param_hr->{'param'}) || (return err())
2361 0 0 $self->{'_block_render'}{$name}{$data_block_ar} ||= []
2415 0 0 $attr_hr->{'name'} || (return err('no block name specified'))
2475 0 0 $self->render_data_ar('data', $data_ar->[2], 'param', $param_data_block_hr) || (return err())
2541 0 0 'JSON'->new || (return err('unable to create new JSON object'))
2546 0 0 eval { do { $json_or->encode($json_xr) } } || (return err('error %s on json_encode of %s', $@, Dumper($json_xr)))
2553 0 0 $self->{'_html_tiny_or'} || $self->html_tiny || (return err())
2583 1 0 $self->r || (return err('unable to get request handler !'))
2594 0 0 $hx_request or $attr_hr->{'force'} or 0
2625 0 0 $handler ||= "*perl*"
2627 0 0 $self->perl($data_ar, $attr_hr) || (return err())
2637 1 0 $self->render_data_ar('data', $data_ar->[2]) || (return err())
2690 0 1 $route[2] ||= undef
2701 1 0 $ENV{'PATH_INFO'} ||= ""
2718 1 0 $self->perl(undef, {'json', 1, %attr, 'param', $match_hr}) || (return err())
2725 1 0 'JSON'->new || (return err('unable to create new JSON object'))
2729 1 0 eval { do { $json_or->encode($json_xr) } } || (return err('error %s on json_encode of %s', $@, Dumper($json_xr)))
2832 0 0 join('::', grep({$_;} map({$attr_hr->{$_} if exists $attr_hr->{$_};} 'package', 'method', 'handler'))) || (return err('could not determine perl routine to run'))
2939 0 0 $self->render(%{$html_sr;}) || (return err())
3290 0 0 $Package{'_eval_cr'} || (return err('unable to get eval code ref table'))
3311 0 0 $$eval_cr{$_[0]}($self, $data_ar, $param_data_hr, $_[1], $_[2]) || (return err())
3341 115 0 $Package{'_eval_cr'} || (return err('unable to get eval code ref table'))
3383 2 0 $eval_cr->{$oper}->($self, $data_ar, $param_hr, $eval_text, $attr_name, 1) || (return err())
3395 0 0 $$eval_cr{$_[0]}($self, $data_ar, $param_hr, $_[1], $_[2]) || (return err())
3465 0 0 $self->r || (return err())
3467 0 0 $self->cwd || (return err('unable to determine cwd for requested file %s', $r->filename))
3474 0 0 $param_hr->{'file'} || (return err('no file name supplied with include tag'))
3525 0 0 $@ || 'undefined error'
3532 0 0 $self->compile(\%option) || (return err())
3543 0 0 $meta_hr->{'perl_debug'} || (return err('unable to load perl_debug array reference'))
3552 0 0 $self->find_node({'data_ar', $block_data_ar, 'tag', $node}) || (return err())
3590 0 0 $self->render_data_ar('data', $block_ar->[2], 'param', $param_hr->{'param'}) || (return err())
3615 0 0 $@ || 'undefined error'
3622 0 0 $self->compile(\%option) || (return err())
3631 0 0 $self->find_node({'data_ar', $block_data_ar, 'tag', 'block', 'attr_hr', {'name', $block}}) || (return err())
3667 0 0 $self->render_data_ar('data', $block_ar->[2], 'param', $param_hr->{'param'} || $param_data_hr) || (return err())
3680 0 0 'IO::File'->new($pn, 0) || (return err("unable to open file '${fn}' for read, $!"))
3881 5 0 $data_ar->[2][$data_chld_ix] || (return err("unable to get chld node from $data_ar"))
3944 7 0 'WebDyne::CGI'->new($self->{'_r'}) || (return err('unable to get WebDyne::CGI object'))
4015 0 0 $self->CGI || (return err())
4231 0 0 'IO::File'->new($cache_pn, 577) || (return warn("unable to open cache file $cache_pn for write, $!"))
4272 1 0 delete $self->{'_meta_hr'} || {}
4312 0 0 $self->meta->{'static'} || $self->{'_static'} || 0
4325 0 0 shift() || (return err('cache code ref or method name must be supplied'))
4337 0 0 shift() || (return err('filter name must be supplied'))
4350 0 0 $self->meta || (return err())
4373 0 0 $self->r || (return err('unable to get request handler'))
4433 0 0 $self->{'_print_ar'} ||= []
4444 0 0 $self->{'_print_ar'} ||= []
4468 0 0 $self->{'_print_ar'} ||= []

or 3 conditions

line l !l&&r !l&&!r condition
150 0 12 0 $opt_hr->{'outfile'} || do { require IO::String; 'IO::String'->new($html) }
219 0 18 0 ref $self || do { my(%self) = ('_time', $time, '_r', $r, %{delete $self->{'_self'};}); $self = bless(\%self, $self); ref $self }
305 18 0 0 $r->filename || do { '???'; return $WebDyne::MP2 ? &Apache::DECLINED : $r->status(404) }
312 18 0 0 -f $srce_pn && (stat _)[9] || do { '???'; return $WebDyne::MP2 ? &Apache::DECLINED : $r->status(404) }
332 0 18 0 $self->{'_inode'} ||= md5_hex(ref $self, $r->location, $srce_pn) || (return $self->err_html("could not get md5 for file $srce_pn, $!"))
364 0 18 0 ${return $self->err_html unless $self->source_mtime($srce_mtime);} || $srce_mtime
389 0 8 10 $self->{'_compile'} or $cache_inode_hr->{'mtime'} < $srce_mtime
8 0 10 $self->{'_compile'} or $cache_inode_hr->{'mtime'} < $srce_mtime or $cache_mtime > $cache_inode_hr->{'mtime'}
446 0 8 0 $self->{'_compile'} or $cache_mtime < $srce_mtime
484 0 8 0 $cache_mtime || &WebDyne::time()
524 6 0 0 $cache_inode_hr->{'meta'}{$_} ||= $meta_hr->{$_}
571 0 0 18 $meta_hr->{'handler'} || $r->dir_config('WebDyneHandler')
604 0 0 18 $self->{'_cache'} || $meta_hr->{'cache'}
667 0 0 0 $cache_inode ne $srce_inode or $self->{'_compile'}
698 2 12 4 $meta_hr->{'html'} || $meta_hr->{'static'}
0 14 4 $self->{'_static'} or $meta_hr and $meta_hr->{'html'} || $meta_hr->{'static'}
754 0 0 0 $meta_hr->{'static'} || $self->{'_static'}
766 12 0 2 $meta_hr->{'static'} || $self->{'_static'}
796 0 18 0 $self->{'_select'} ||= CORE::select
805 16 0 0 $self->render_data_ar('data', $data_ar, 'param', $param_hr) || do { RENDER_ERROR: '???'; '???'; CORE::select $select if $select; untie *WEBDYNE; return $self->err_html }
923 0 18 0 $r->main || $r
1069 7 0 0 \&WebDyne::request || *r
1088 9 0 0 $self->{'_inode'} || $self->inode
1094 2 7 0 $self->{'_CGI'} || $self->CGI
1096 2 7 0 $self->{'_eval_cgi_hr'} ||= do { $cgi_or->Vars }
1106 1 8 0 $Package{'_cache'}{$inode}{'eval_cr'}{$data_ar}{$index} ||= do { no strict 'vars'; '???'; my $sub_cr = &eval_cr($inode, \$eval_text, $html_line_no); if ($@) { my $err = $@; eval { do { () } }; return $self->err_eval("eval of code returned error: $err", \$eval_text, $inode); } elsif (not defined $sub_cr) { return err("eval of code did not return a true value"); } elsif (not ref $sub_cr eq "CODE") { return err("eval of code did not return a code ref"); } ; $sub_cr }
1174 0 0 9 not @eval or $@
0 0 9 not @eval or $@ or not $eval[0]
1178 0 0 0 errstr() || $@
1235 0 0 0 $self->{'_inode'} || $self->inode
1239 0 0 0 $self->{'_CGI'} || $self->CGI
1241 0 0 0 $self->{'_eval_cgi_hr'} ||= do { $cgi_or->Vars }
1250 0 0 0 $self->{'_eval_safe'} || do { '???'; require Safe; require Opcode; 'Safe'->new }
1259 0 0 0 $self->{'_eval_safe'} ||= do { $safe_or->permit_only(@{$WebDyne::WEBDYNE_EVAL_SAFE_OPCODE_AR;}); $safe_or }
1283 0 0 0 not defined $html_sr or $@
1288 0 0 0 errstr() || $@
1361 0 0 0 &$eval_perl_cr(@_) || err()
1583 0 0 0 $self->render_data_ar('data', $data_ar, 'param', \%param) || err()
1752 1 0 8 not $WebDyne::CGI_TAG_WEBDYNE{$html_tag} or $html_tag eq "subst"
1884 0 2 0 ref $param_hr or $param_hr = {@_[1 .. $#_]}
1903 0 0 2 $param_hr->{'uri'} or $param_hr->{'file'}
0 0 2 $param_hr->{'uri'} or $param_hr->{'file'} or $param_hr->{'location'}
2102 0 0 0 $status and not &is_success($status) or my $errstr = errstr()
2106 0 0 0 $r_child->uri || $param_hr->{'file'}
2112 0 0 0 $r_child->uri || $param_hr->{'file'}
2148 0 0 0 $status || $r_child->status
2217 0 0 0 $self->{'_perl'}[0] || do { push @{$self->{'_block_param'}{$name} ||= [];}, $param_hr->{'param'}; return \(undef) }
2465 0 0 0 $param_data_block_hr ||= $param_data_hr
2493 0 0 0 $self->render_data_ar('data', $data_ar->[2], 'param', $param_data_hr) || err()
2524 0 0 0 $attr_hr->{'handler'} or $attr_hr->{'perl'}
2594 1 0 0 $hx_request or $attr_hr->{'force'}
2620 0 0 1 my $handler = $attr_hr->{'handler'} or $attr_hr->{'perl'}
2685 0 1 0 $self->{'_rest_or'} ||= "Router::Simple"->new
2784 7 0 0 $self->{'_inode'} || $self->inode
2814 1 4 2 $attr_hr->{'param'} || $self->{'_perl_data'}[0]
2821 7 0 0 $Package{'_eval_cr'}{'!'}->($self, $data_ar, $perl_param_hr, $perl_code) || err()
2972 0 0 7 $attr_hr->{'hidden'} or exists $attr_hr->{'display'} and not $attr_hr->{'display'}
3005 0 0 0 $self->{'_inode'} || $self->inode
3029 0 0 0 $require_fn =~ m([./\\]) or $attr_hr->{'file'}
3043 0 0 0 &$eval_cr($eval) || err()
3091 0 0 0 &$eval_cr($eval) || err()
3147 2 0 0 $self->{'_inode'} || $self->inode
3253 0 0 2 $@ || errstr()
3374 2 0 192 $attr_value =~ /^\s*([\@%!+*^])\{(\1?)(.*)\2}\s*$/so or $attr_value =~ /^\s*(\$)\{(\1?)([^{]+)\2}\s*$/so
3916 1 0 0 &$find_cr($find_cr, $data_ar) || err()
3932 2 7 0 $self->{'_CGI'} ||= do { '???'; local $SIG{'__DIE__'} = sub { } ; my $cgi_or = 'WebDyne::CGI'->new($self->{'_r'}) || (return err('unable to get WebDyne::CGI object')); $self->CGI_param_expand($cgi_or); '???'; eval { do { () } } if @_; $cgi_or }
3964 20 0 0 'WebDyne::HTML::Tiny'->new('mode', 'html', 'r', $self->{'_r'}) || err('unable to instantiate new WebDybe::HTTP::Tiny object')
26 20 0 $self->{'_html_tiny_or'} ||= 'WebDyne::HTML::Tiny'->new('mode', 'html', 'r', $self->{'_r'}) || err('unable to instantiate new WebDybe::HTTP::Tiny object')
4018 0 0 0 $attr_hr->{'force'} or $attr_hr->{'display'}
4028 0 0 0 $attr_hr->{'env'} or $attr_hr->{'all'}
4040 0 0 0 $attr_hr->{'lib'} or $attr_hr->{'inc'}
0 0 0 $attr_hr->{'lib'} or $attr_hr->{'inc'} or $attr_hr->{'all'}
4057 0 0 0 $attr_hr->{'constant'} or $attr_hr->{'all'}
4082 0 0 0 $attr_hr->{'dir_config'} or $attr_hr->{'all'}
4109 0 0 0 $self->{'_html_tiny_or'} || $self->html_tiny
4128 2 7 0 $self->{'_cwd'} ||= do { '???'; my $fn = $self->{'_r'}->filename; my $dn; if (-d ($dn = "File::Spec"->rel2abs($fn))) { '???'; $dn; } else { $dn = ('File::Spec'->splitpath($fn))[1] || fastcwd(); '???'; $dn; } }
4135 7 0 0 ('File::Spec'->splitpath($fn))[1] || fastcwd()
4272 0 1 0 $Package{'_cache'}{$inode}{'meta'} ||= delete $self->{'_meta_hr'} || {}
4379 0 0 0 $self->{'_inode'} ||= md5_hex(ref $self, $r->location, $r->filename)
4405 0 0 0 $data_ar ||= $self->data_ar_err
4419 0 0 0 $data_ar ||= $self->data_ar_err