Branch Coverage

lib/BATsh.pm
Criterion Covered Total %
branch 84 144 58.3


line true false branch
19 0 5 if ($] < "5.006" and not defined &warnings::import)
21 0 5 if $INC[-1] eq "."
82 0 0 unless (-f $file)
84 0 0 unless open SRCFH, $file
94 0 40 unless defined $source
110 0 40 unless %BATsh::Env::STORE
118 143 0 unless (defined $token)
119 58 85 if ($token =~ m[\A[A-Z0-9_\-\\/\.:\@%]+\z] and $token =~ /[A-Z]/)
132 2 132 if $s =~ /\A\s*\z/
133 3 129 if $s =~ /\A\s*(?:::|\@?REM(?:\s|\z))/i
134 1 128 if $s =~ /\A\s*#(?!!)/
136 128 0 $t =~ /\A(\S+)/ ? :
147 18 1008 if ($ch eq '"') { }
996 12 elsif (not $in_q) { }
149 6 990 if $ch eq "("
150 6 990 if $ch eq ")"
165 15 68 if exists $_SH_OPEN{$l} or $first eq "{"
166 15 53 if exists $_SH_CLOSE{$l} or $first eq "}"
185 2 124 if ($s =~ /\A:([A-Za-z_][A-Za-z0-9_]*)\s*\z/) { }
1 123 elsif ($cur ne '' and $s =~ /\A(?:RET|RETURN)\s*\z/i) { }
0 244 elsif ($cur ne '' and $s =~ /\A:([A-Za-z_][A-Za-z0-9_]*)\s*\z/) { }
202 2 124 if ($s =~ /\A:([A-Za-z_][A-Za-z0-9_]*)\s*\z/)
204 1 1 if ($is_sub_label{$lbl}) { }
206 0 1 if $in_sub ne ""
212 1 0 if $in_sub eq ""
213 0 1 if $in_sub ne ""
217 2 122 if ($in_sub ne "")
218 1 1 if ($s =~ /\A(?:RET|RETURN)\s*\z/i) { }
226 0 41 if $in_sub ne ""
237 0 1 unless exists $_SUBROUTINES{$label}
248 0 0 unless -f $file
250 0 0 unless open SFHH, $file
273 4 45 if ($s =~ /\ASETLOCAL\s*\z/i)
274 1 3 if @batch
278 4 41 if ($s =~ /\AENDLOCAL\s*\z/i)
279 3 1 if @batch
283 1 40 if ($s =~ /\ACALL\s+:([A-Za-z_][A-Za-z0-9_]*)(.*)/i)
285 0 1 if @batch
289 0 1 if $@
292 0 40 if ($s =~ /\ACALL\s+(\S+\.batsh)(.*)/i)
294 0 0 if @batch
296 0 0 if $@
301 22 4 if @batch
306 0 26 unless @{$lines_ref;}
322 0 74 if ($s =~ /\A(?:source|\.)\s+(\S+\.batsh)/)
324 0 0 if @batch
326 0 0 if $@
331 25 0 if @batch
336 0 25 unless @{$lines_ref;}
355 0 123 if ($mode eq "EMPTY" or $mode eq "COMMENT")
356 0 0 if $cur_mode ne ""
360 41 82 if ($cur_mode eq '') { }
70 12 elsif ($mode eq $cur_mode) { }
363 22 19 $mode eq 'CMD' ? :
367 21 49 $mode eq 'CMD' ? :
368 0 70 if $depth < 0
371 2 10 if ($depth > 0) { }
373 2 0 $cur_mode eq 'CMD' ? :
374 0 2 if $depth < 0
377 10 0 if @pending
379 4 6 $mode eq 'CMD' ? :
383 41 0 if @pending
388 0 51 unless @lines
389 26 25 if ($mode eq 'CMD') { }
404 0 0 $depth > 0 ? :
406 0 0 unless defined $line
408 0 0 if ($line =~ /\A\s*(?:EXIT|exit)\s*\z/)
409 0 0 if $depth == 0 and $line =~ /\A\s*\z/
412 0 0 if $depth == 0 and $cur_mode eq ""
413 0 0 $cur_mode eq 'CMD' ? :
414 0 0 if $depth < 0
415 0 0 if ($depth == 0)