The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Reading database from ...


------------------------------------------ ------ ------ ------ ------ ------
File                                         stmt   bran   cond    sub  total
------------------------------------------ ------ ------ ------ ------ ------
tests/cond_or                                82.8   30.0   64.4   60.0   66.9
Total                                        82.8   30.0   64.4   60.0   66.9
------------------------------------------ ------ ------ ------ ------ ------


Run: ...
Perl version: ...
OS: ...
Start: ...
Finish: ...

tests/cond_or

line  err   stmt   bran   cond    sub   code
1                                       #!/usr/bin/perl
2                                       
3                                       # Copyright 2002-2013, Paul Johnson (paul@pjcj.net)
4                                       
5                                       # This software is free.  It is licensed under the same terms as Perl itself.
6                                       
7                                       # The latest version of this software should be available from my homepage:
8                                       # http://www.pjcj.net
9                                       
10                                      # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
11                                      # __COVER__ skip_reason Busted on 5.6 and cygwin
12                                      
13             1                    1   use strict;
               1                        
               1                        
14             1                    1   use warnings;
               1                        
               1                        
15                                      
16             1                        my @x;
17                                      
18             1                        my $y  = 1;
19             1                        my $z  = 0;
20             1                        $::foo = 17;
21                                      
22    ***      1     50                 if ($] >= 5.009)
23                                      {
24    ***      0                            $ENV{PATH} = "/bin";
25    ***      0                            system "pwd";
26             1                    1       use lib "tests";
               1                        
               1                        
27    ***      0                            my $file = "cond_or.pl";
28    ***      0      0                     unless (my $return = do $file)
29                                          {
30    ***      0      0                         die "couldn't parse $file: $@" if $@;
31    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
32    ***      0      0                         die "couldn't run $file"       unless $return;
33                                          }
34                                      }
35                                      
36             1                        for my $i (0 .. 10)
37                                      {
38    ***     11     50                     $y ||
39                                              $x[1]++;
40                                      
41    ***     11     50     33              $y ||
42                                              $x[0]++ ||
43                                              $x[1]++;
44                                      
45    ***     11     50                     $x[2]++
46                                              unless $z;
47                                      
48            11                            for (0 .. 2)
49                                          {
50            33                                $x[3]++;
51                                          }
52                                      
53    ***     11     50                     if ($z)
54                                          {
55    ***      0                                $x[4]++;
56                                          }
57                                          else
58                                          {
59            11                                $x[5]++;
60                                          }
61                                      
62    ***     11            33              my $p = $y || $z;
63    ***     11            33              my $q = $z || $y;
64            11           100              my $r = $i || "qqq";
65            11           100              my $s = $i || [];
66            11                            my $t = $y | $z;
67    ***     11            50              my $u = $y || 0;
68    ***     11            50              my $v = $y || undef;
69    ***     11            50              my $w = $z || 0;
70                                      
71    ***     11            33              $p     ||= $y;
72    ***     11            33              $p     ||= $z;
73    ***     11            66              $x[ 6] ||= $y;
74    ***     11            33              $x[ 7] ||= $z;
75            11           100              $x[ 8] ||= 1;
76            11           100              $x[ 9] ||= {};
77            11           100              $x[10] ||= \"foo";
78            11           100              $x[11] ||= \$y;
79            11           100              $x[12] ||= \*STDIO;
80    ***     11           100      0       $x[13] ||= sub { 1 };
      ***      0                        
81            11           100              $x[14] ||= *::foo{SCALAR};
82    ***     11            50              $x[15] ||= *STDIO{IO};
83            11           100              $x[16] ||= bless {}, "XXX";
84            11           100              $x[17] ||= $i == 1;
85    ***     11            33              $w     ||= ref($i) eq "SCALAR";
86            11           100              $x[18] ||= <<"EOD";
87                                      blah
88                                      EOD
89    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
90    ***     11             0      0       sub { $x[19] ||= 1 };
      ***      0                        
91                                      }
92                                      
93                                      # print join(", ", @x), "\n";


Branches
--------

line  err      %   true  false   branch
----- --- ------ ------ ------   ------
22    ***     50      0      1   if ($] >= 5.009)
28    ***      0      0      0   unless (my $return = do $file)
30    ***      0      0      0   if $@
31    ***      0      0      0   unless defined $return
32    ***      0      0      0   unless $return
38    ***     50      0     11   unless $y
41    ***     50      0     11   unless $y or $x[0]++
45    ***     50     11      0   unless $z
53    ***     50      0     11   if ($z) { }
89    ***     50      0     11   if exists &cond_dor


Conditions
----------

or 2 conditions

line  err      %      l     !l   expr
----- --- ------ ------ ------   ----
64           100     10      1   $i || 'qqq'
65           100     10      1   $i || []
67    ***     50     11      0   $y || 0
68    ***     50     11      0   $y || undef
69    ***     50      0     11   $z || 0
75           100     10      1   $x[8] ||= 1
76           100     10      1   $x[9] ||= {}
77           100     10      1   $x[10] ||= \'foo'
78           100     10      1   $x[11] ||= \$y
79           100     10      1   $x[12] ||= \*STDIO
80           100     10      1   $x[13] ||= sub {
	1;
}

81           100     10      1   $x[14] ||= *foo{'SCALAR'}
82    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
83           100     10      1   $x[16] ||= bless({}, 'XXX')
86           100     10      1   $x[18] ||= "blah\n"
90    ***      0      0      0   $x[19] ||= 1

or 3 conditions

line  err      %      l  !l&&r !l&&!r   expr
----- --- ------ ------ ------ ------   ----
41    ***     33     11      0      0   $y or $x[0]++
62    ***     33     11      0      0   $y || $z
63    ***     33      0     11      0   $z || $y
71    ***     33     11      0      0   $p ||= $y
72    ***     33     11      0      0   $p ||= $z
73    ***     66     10      1      0   $x[6] ||= $y
74    ***     33      0      0     11   $x[7] ||= $z
84           100      9      1      1   $x[17] ||= $i == 1
85    ***     33      0      0     11   $w ||= ref $i eq 'SCALAR'


Covered Subroutines
-------------------

Subroutine Count Location        
---------- ----- ----------------
BEGIN          1 tests/cond_or:13
BEGIN          1 tests/cond_or:14
BEGIN          1 tests/cond_or:26

Uncovered Subroutines
---------------------

Subroutine Count Location        
---------- ----- ----------------
__ANON__       0 tests/cond_or:80
__ANON__       0 tests/cond_or:90