Condition Coverage

blib/lib/WebDyne.pm
Criterion Covered Total %
condition 104 378 27.5


and 3 conditions

line !l l&&!r l&&r condition
246 0 0 0 -f $cache_pn && (stat _)[9]
382 0 10 0 my $meta_hr = $container_ar->[0] and $cache_inode_hr->{'meta'}
406 0 0 10 my $cgi_or = $self->{'_CGI'} and $WebDyne::WEBDYNE_CGI_PARAM_EXPAND
459 10 0 0 my $cache = $self->{'_cache'} || $meta_hr->{'cache'} and not $self->{'_cache_run_fg'}++
511 0 10 0 $meta_hr and $meta_hr->{'html'} || $meta_hr->{'static'}
514 1 0 0 $cache_pn and -f (my $fn = "$cache_pn.html")
1 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'}
664 0 0 10 ($meta_hr->{'no_cache'} || $WebDyne::WEBDYNE_NO_CACHE) && ('Cache-Control', 'no-cache', 'Pragma', 'no-cache', 'Expires', '-5')
700 0 0 10 $WebDyne::WEBDYNE_CACHE_CHECK_FREQ and $r eq ($r->main || $r)
0 10 0 $WebDyne::WEBDYNE_CACHE_CHECK_FREQ and $r eq ($r->main || $r) and not +(my $nrun = ++$Package{'_nrun'}) % $WebDyne::WEBDYNE_CACHE_CHECK_FREQ
845 0 2 0 $WebDyne::WEBDYNE_STARTUP_CACHE_FLUSH and -d $WebDyne::WEBDYNE_CACHE_DN
1150 31 2 4 ref $html_sr eq 'ARRAY' and not $tag_fg
1176 1 0 0 not exists $_[2]{$_[3]} and $WebDyne::WEBDYNE_STRICT_VARS
1182 24 2 0 ref $value and overload::Overloaded($value)
1618 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)
1799 0 0 0 $status and not &is_success($status)
2285 20 0 0 $package and not $INC{$package_fn}
2925 69 0 0 $depth_max and ++$depth > $depth_max

or 2 conditions

line l !l condition
178 10 0 $r->filename || (return $self->err_html('unable to get request filename'))
199 10 0 md5_hex(ref $self, $r->location, $srce_pn) || (return $self->err_html("could not get md5 for file $srce_pn, $!"))
209 10 0 ($Package{'_cache'}{$srce_inode} ||= {'data', undef, 'mtime', undef, 'nrun', undef, 'lrun', undef}) || (return $self->err_html('unable to initialize cache_inode_hr ref'))
318 0 0 $@ || 'undefined error'
325 10 0 $self->compile({'srce', $srce_pn, 'dest', $cache_pn}) || (return $self->err_html)
359 0 0 Storable::lock_retrieve($cache_pn) || (return $self->err_html("Storable error when retreiveing cached file '${cache_pn}', $!"))
372 0 0 $meta_hr->{'perl_debug'} || (return err('unable to load perl_debug array reference'))
469 0 0 errstr() || $@ || 'no inode returned'
478 0 0 errstr() || $@ || 'no inode returned'
936 43 0 $self->{'_inode'} || 'ANON'
1021 0 0 $self->{'_inode'} || 'ANON'
1058 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()'))
1142 37 0 &$eval_cr(@_) || (return err())
1151 4 0 \join(undef, map({ref $_ eq 'SCALAR' ? ${$_;} : $_;} @{$html_sr;})) || (return err('unable to generate scalar from %s', Dumper($html_sr)))
1319 23 10 ref $param_hr or $param_hr = {'param', {@_[1 .. $#_]}}
1329 21 0 $param_hr->{'data'} || $self->{'_perl'}[0][$WebDyne::WEBDYNE_NODE_CHLD_IX] || (return err('unable to get HTML data array'))
1342 0 0 $self->render_block($param_hr) or return err()
1348 43 0 $self->{'_CGI'} || $self->CGI || (return err('unable to get CGI object from self ref'))
1395 18 0 $self->subst_attr($data_ar, $attr_hr, $param_data_hr) || (return err())
1476 56 0 $self->$html_tag($data_ar, $attr_hr, $param_data_hr, $html_chld) || (return err())
1499 21 0 $cgi_or->$html_tag(grep({$_;} $attr_hr, $html_chld)) || (return err("CGI tag '<$html_tag>' " . 'did not return any text'))
1513 0 0 $cgi_or->$html_tag($html_chld) || (return err("CGI tag '<$html_tag>' " . 'did not return any text'))
1527 0 0 $cgi_or->$html_tag || (return err("CGI tag '<$html_tag>' " . 'did not return any text'))
1537 42 1 $Package{'_render_cr'} ||= sub { my($render_cr, $self, $cgi_or, $data_ar, $param_data_hr) = @_; my($html_tag, $html_line_no) = @{$data_ar;}[$WebDyne::WEBDYNE_NODE_NAME_IX, $WebDyne::WEBDYNE_NODE_LINE_IX]; my $html_chld; $self->{'_data_ar'} = $data_ar; '???'; my $attr_hr = $data_ar->[$WebDyne::WEBDYNE_NODE_ATTR_IX]; if ($data_ar->[$WebDyne::WEBDYNE_NODE_SBST_IX]) { $attr_hr = $self->subst_attr($data_ar, $attr_hr, $param_data_hr) || (return err()); } ; $param_data_hr = $attr_hr->{'param'} if $attr_hr->{'param'}; if (not $WebDyne::CGI_TAG_WEBDYNE{$html_tag} or $html_tag eq 'subst') { my(@data_child_ar) = $data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX] ? @{$data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX];} : undef; foreach my $data_chld_ar (@data_child_ar) { '???'; if (ref $data_chld_ar) { $html_chld .= ${return err() unless &$render_cr($render_cr, $self, $cgi_or, $data_chld_ar, $param_data_hr);}; } else { $html_chld .= $data_chld_ar; } ; } ; } else { '???'; } ; '???'; if ($WebDyne::CGI_TAG_WEBDYNE{$html_tag}) { '???'; my $html_sr = $self->$html_tag($data_ar, $attr_hr, $param_data_hr, $html_chld) || (return err()); '???'; return $html_sr; } elsif ($attr_hr) { return \($cgi_or->$html_tag(grep({$_;} $attr_hr, $html_chld)) || (return err("CGI tag '<$html_tag>' " . 'did not return any text'))); } elsif ($html_chld) { return \($cgi_or->$html_tag($html_chld) || (return err("CGI tag '<$html_tag>' " . 'did not return any text'))); } else { return \($cgi_or->$html_tag || (return err("CGI tag '<$html_tag>' " . 'did not return any text'))); } ; }
1608 0 0 $self->subrequest($param_hr) || (return err())
1616 0 0 $self->r || (return err())
1641 0 0 $param_hr->{'html'} || $param_hr->{'text'} || (return err('no data supplied to redirect method'))
1647 0 0 $self->r || (return err())
1658 0 0 $r->headers_out || (return err())
1724 0 0 $r->headers_out || (return err())
1750 0 0 $r->lookup_uri($uri) || (return err('undefined lookup_uri error'))
1770 0 0 $r->lookup_file($file_pn) || (return err('undefined lookup_file error'))
1872 0 0 $param_hr->{'name'} || $param_hr->{'block'} || (return err('no block name specified'))
1905 0 0 $param_hr->{'name'} || $param_hr->{'block'} || (return err('no block name specified'))
1949 4 0 $self->find_node({'data_ar', $data_ar, 'tag', 'block', 'all_fg', 1}) || (return err())
1978 1 4 $self->{'_block_cache'}{$name} ||= []
2014 0 4 $self->{'_block_param'}{$name} ||= []
2049 4 0 $self->render({'data', $data_block_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_hr->{'param'}}) || (return err())
2061 0 4 $self->{'_block_render'}{$name}{$data_block_ar} ||= []
2115 11 0 $attr_hr->{'name'} || (return err('no block name specified'))
2175 3 0 $self->render({'data', $data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_data_block_hr}) || (return err())
2253 20 0 join('::', grep({$_;} map({$attr_hr->{$_} if exists $attr_hr->{$_};} 'package', 'class', 'method'))) || (return err('could not determine perl routine to run'))
2291 0 0 errstr() || $@ || 'undefined error'
2373 18 0 $self->{'_inode'} || 'ANON'
2533 16 0 $Package{'_eval_cr'} || (return err('unable to get eval code ref table'))
2543 19 0 $$eval_cr{$_[0]}($self, $data_ar, $param_data_hr, $_[1], $_[2]) || (return err())
2575 18 0 $Package{'_eval_cr'} || (return err('unable to get eval code ref table'))
2606 16 0 $eval_cr->{$oper}->($self, $data_ar, $param_hr, $eval_text, $index++, 1) || (return err())
2617 10 0 $$eval_cr{$_[0]}($self, $data_ar, $param_hr, $_[1], $_[2]) || (return err())
2685 5 0 $self->r || (return err())
2686 5 0 ('File::Spec'->splitpath($r->filename))[1] || (return err('unable to determine cwd for requested file %s', $r->filename))
2692 5 0 $param_hr->{'file'} || (return err('no file name supplied with include tag'))
2717 2 0 $self->compile(\%option) || (return err())
2725 2 0 $self->find_node({'data_ar', $block_data_ar, 'tag', $node}) || (return err())
2783 2 0 $self->compile(\%option) || (return err())
2792 2 0 $self->find_node({'data_ar', $block_data_ar, 'tag', 'block', 'attr_hr', {'name', $block}}) || (return err())
2834 1 0 'IO::File'->new($pn, 0) || (return err("unable to open file '${fn}' for read, $!"))
3003 0 0 $data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX][$data_chld_ix] || (return err("unable to get chld node from $data_ar"))
3096 10 0 shift() || (return err('unable to get CGI object'))
3210 0 0 'IO::File'->new($cache_pn, 577) || (return warn("unable to open cache file $cache_pn for write, $!"))
3251 0 0 delete $self->{'_meta_hr'} || {}
3285 0 0 shift() || (return err('cache code ref or method name must be supplied'))
3297 0 0 shift() || (return err('filter name must be supplied'))
3310 0 0 $self->meta || (return err())
3380 0 3 $self->{'_print_ar'}{$data_ar} ||= []
3390 0 0 $self->{'_print_ar'}{$data_ar} ||= []

or 3 conditions

line l !l&&r !l&&!r condition
125 0 10 0 ref $self || do { my(%self) = ('_time', $time, '_r', $r, %{delete $self->{'_self'};}); $self = bless(\%self, $self); ref $self }
180 10 0 0 -f $srce_pn && (stat _)[9] || do { '???'; return &Apache::DECLINED }
199 0 10 0 $self->{'_inode'} ||= md5_hex(ref $self, $r->location, $srce_pn) || (return $self->err_html("could not get md5 for file $srce_pn, $!"))
231 0 10 0 ${return $self->err_html unless $self->source_mtime($srce_mtime);} || $srce_mtime
255 0 0 10 $WebDyne::WEBDYNE_RELOAD or $self->{'_compile'}
0 10 0 $WebDyne::WEBDYNE_RELOAD or $self->{'_compile'} or $cache_inode_hr->{'mtime'} < $srce_mtime
10 0 0 $WebDyne::WEBDYNE_RELOAD or $self->{'_compile'} or $cache_inode_hr->{'mtime'} < $srce_mtime or $cache_mtime > $cache_inode_hr->{'mtime'}
308 0 10 0 $self->{'_compile'} or $cache_mtime < $srce_mtime
346 0 10 0 $cache_mtime || &WebDyne::time()
386 0 0 0 $cache_inode_hr->{'meta'}{$_} ||= $meta_hr->{$_}
427 0 0 10 $meta_hr->{'handler'} || $r->dir_config('WebDyneHandler')
459 0 0 10 $self->{'_cache'} || $meta_hr->{'cache'}
493 0 0 0 $cache_inode ne $srce_inode or $self->{'_compile'}
511 1 0 9 $meta_hr->{'html'} || $meta_hr->{'static'}
0 0 10 $self->{'_static'} or $meta_hr and $meta_hr->{'html'} || $meta_hr->{'static'}
520 0 0 0 $WebDyne::MP2 or $ENV{'FCGI_ROLE'}
552 0 0 0 $meta_hr->{'static'} || $self->{'_static'}
564 0 0 1 $meta_hr->{'static'} || $self->{'_static'}
585 0 10 0 $self->{'_select'} ||= CORE::select
594 10 0 0 $self->render({'data', $data_ar, 'param', $param_hr}) || do { RENDER_ERROR: '???'; '???'; CORE::select $select if $select; untie *WEBDYNE; return $self->err_html }
700 10 0 0 $r->main || $r
913 2 0 0 \&WebDyne::request || *r
943 34 9 0 $self->{'_eval_cgi_hr'} ||= do { my $cgi_or = $self->{'_CGI'} || $self->CGI; $cgi_or->Vars }
945 9 0 0 $self->{'_CGI'} || $self->CGI
955 0 43 0 $Package{'_cache'}{$inode}{'eval_cr'}{$data_ar}{$index} ||= do { $Package{'_cache'}{$inode}{'perl_init'}{undef()} ||= $self->perl_init; no strict 'vars'; '???'; return $self->err_eval("$@", \$eval_text) unless &eval_cr($inode, \$eval_text, $html_line_no) }
956 34 9 0 $Package{'_cache'}{$inode}{'perl_init'}{undef()} ||= $self->perl_init
980 0 0 43 not @eval or $@
0 0 43 not @eval or $@ or not $eval[0]
984 0 0 0 errstr() or $@
1027 0 0 0 $self->{'_eval_cgi_hr'} ||= do { my $cgi_or = $self->{'_CGI'} || $self->CGI; $cgi_or->Vars }
1029 0 0 0 $self->{'_CGI'} || $self->CGI
1037 0 0 0 $self->{'_eval_safe'} || do { '???'; require Safe; require Opcode; 'Safe'->new }
1046 0 0 0 $self->{'_eval_safe'} ||= do { $safe_or->permit_only(@{$WebDyne::WEBDYNE_EVAL_SAFE_OPCODE_AR;}); $safe_or }
1064 0 0 0 not defined $html_sr or $@
1069 0 0 0 errstr() or $@
1131 5 0 0 &$eval_cr(@_) || err()
1408 21 16 40 not $WebDyne::CGI_TAG_WEBDYNE{$html_tag} or $html_tag eq 'subst'
1603 0 0 0 $param_hr->{'uri'} or $param_hr->{'file'}
0 0 0 $param_hr->{'uri'} or $param_hr->{'file'} or $param_hr->{'location'}
1799 0 0 0 $status and not &is_success($status) or my $errstr = errstr()
1803 0 0 0 $r_child->uri || $param_hr->{'file'}
1809 0 0 0 $r_child->uri || $param_hr->{'file'}
1845 0 0 0 $status || $r_child->status
1914 4 0 0 $self->{'_perl'}[0] || do { push @{$self->{'_block_param'}{$name} ||= [];}, $param_hr->{'param'}; return \(undef) }
2165 3 0 0 $param_data_block_hr ||= $param_data_hr
2196 1 0 0 $self->render({'data', $data_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_data_hr}) || err()
2242 6 0 0 $Package{'_eval_cr'}{'!'}->($self, $data_ar, $perl_param_hr, $perl_code) || err()
2309 20 0 0 $Package{'_eval_cr'}{'!'}->($self, $data_ar, $attr_hr->{'param'}, "&$function") || do { shift @{$$self{'_perl'};}; return err() }
2416 0 0 0 $self->{'_eval_safe'} || do { '???'; require Safe; require Opcode; 'Safe'->new }
2424 0 0 0 $self->{'_eval_safe'} ||= do { $safe_or->permit_only(@{$WebDyne::WEBDYNE_EVAL_SAFE_OPCODE_AR;}); $safe_or }
2433 0 0 0 $@ or errstr()
2469 2 0 7 &perl_init_cr($inode, $perl_sr, $perl_line_no) || do { if ($@ or errstr()) { undef *{"WebDyne::${inode}::self";}; my @data; @data[$WebDyne::WEBDYNE_NODE_LINE_IX, $WebDyne::WEBDYNE_NODE_LINE_TAG_END_IX, $WebDyne::WEBDYNE_NODE_SRCE_IX] = ($perl_line_no, $perl_line_no, $perl_srce_fn); $self->{'_data_ar'} = \@data; return $self->err_eval($@ ? "error in __PERL__ block: $@" : undef, $perl_sr); } }
2600 12 4 11 $attr_value =~ /^\s*([\@%!+*^]){1}{(\1?)(.*)\2}\s*$/so or $attr_value =~ /^\s*(\$){1}{(\1?)([^{]+)\2}\s*$/so
2763 2 0 0 $self->render({'data', $block_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_hr->{'param'}}) || err()
2825 2 0 0 $self->render({'data', $block_ar->[$WebDyne::WEBDYNE_NODE_CHLD_IX], 'param', $param_hr->{'param'} || $param_data_hr}) || err()
3038 0 0 0 &$find_cr($find_cr, $data_ar) || err()
3048 1 10 0 +(shift())->{'_CGI'} ||= do { '???'; $CGI::XHTML = 0; $CGI::NOSTICKY = 1; $CGI::DISABLE_UPLOADS = $WebDyne::WEBDYNE_CGI_DISABLE_UPLOADS; $CGI::POST_MAX = $WebDyne::WEBDYNE_CGI_POST_MAX; my $cgi_or = 'CGI'->new; $cgi_or->autoEscape($WebDyne::WEBDYNE_CGI_AUTOESCAPE); &CGI_param_expand($cgi_or) if $WebDyne::WEBDYNE_CGI_PARAM_EXPAND; $cgi_or }
3103 0 0 0 $value ||= $cgi_or->param($param)
3132 0 0 0 $WebDyne::WEBDYNE_DUMP_FLAG || $attr_hr->{'force'} || $attr_hr->{'display'}
3251 0 0 0 $Package{'_cache'}{$inode}{'meta'} ||= delete $self->{'_meta_hr'} || {}
3355 0 0 0 $data_ar ||= $self->data_ar
3368 0 0 0 $data_ar ||= $self->data_ar