| line |
true |
false |
branch |
|
32
|
1 |
9 |
if (@args % 2) { } |
|
77
|
0 |
90 |
unless (exists $o{$opt}) |
|
83
|
0 |
90 |
if (exists $opts{'opt'} or exists $ENV{$OPT} or defined ${"main::$OPT";}) |
|
88
|
0 |
0 |
if (defined ${"main::$OPT";}) { } |
|
|
0 |
0 |
elsif (exists $ENV{$OPT}) { } |
|
100
|
0 |
10 |
if ($self->{'mode'} ne 'test') |
|
111
|
10 |
0 |
if (-f "$0") { } |
|
|
0 |
0 |
elsif (-d 't') { } |
|
114
|
0 |
10 |
unless $TDIR |
|
122
|
0 |
10 |
if (-d "$TDIR/lib") |
|
125
|
10 |
0 |
if (-d "$TDIR/../lib") |
|
139
|
0 |
10 |
if (defined $val) |
|
144
|
10 |
0 |
if ($self->{'use_lib'} eq 'on') |
|
158
|
0 |
0 |
unless defined $val |
|
159
|
0 |
0 |
unless $val =~ /^\d+$/ |
|
165
|
0 |
0 |
unless $val |
|
166
|
0 |
0 |
unless $val =~ /^\d+$/ |
|
172
|
0 |
0 |
if (not defined $val) { } |
|
176
|
0 |
0 |
unless $val =~ /^\d+$/ |
|
184
|
0 |
0 |
if ($self->{'plandone'}) |
|
189
|
0 |
0 |
unless defined $val |
|
190
|
0 |
0 |
unless $val =~ /^\d+$/ |
|
193
|
0 |
0 |
if ($val != 0) |
|
201
|
0 |
9 |
if ($self->{'plandone'}) |
|
206
|
9 |
0 |
unless $val |
|
207
|
0 |
9 |
unless $val =~ /^\d+$/ |
|
210
|
0 |
9 |
if ($val != $main::TI_NUM) |
|
217
|
0 |
0 |
unless $val |
|
223
|
0 |
0 |
unless $val |
|
229
|
0 |
0 |
unless $val |
|
235
|
0 |
0 |
unless $val |
|
242
|
0 |
1 |
if (@features) |
|
245
|
0 |
0 |
unless (exists $self->{'features'}{$feature} and $self->{'features'}{$feature}) |
|
248
|
0 |
0 |
unless $reason |
|
253
|
0 |
0 |
unless $skip |
|
256
|
0 |
1 |
if ($self->{'plandone'} or $self->{'testsrun'}) { } |
|
258
|
0 |
0 |
unless $reason |
|
262
|
0 |
1 |
unless $reason |
|
282
|
0 |
0 |
if $self->{'quiet'} == 2 |
|
288
|
0 |
0 |
if $self->{'quiet'} |
|
300
|
2 |
4 |
unless $mode |
|
301
|
4 |
2 |
unless $mode eq 'feature' |
|
308
|
2 |
4 |
if ($module =~ /^\d+(?:\.\d+)?$/) { } |
|
316
|
0 |
4 |
unless $self->_is_module_name($module) |
|
326
|
2 |
4 |
if $mode eq 'forbid' |
|
327
|
2 |
4 |
if $mode eq 'feature' |
|
337
|
3 |
3 |
if ($eval_result) { } |
|
339
|
0 |
3 |
if ($mode eq 'forbid') { } |
|
|
1 |
2 |
elsif ($mode eq 'feature') { } |
|
343
|
0 |
0 |
unless $self->{'quiet'} == 2 |
|
347
|
1 |
0 |
unless ($self->{'quiet'}) |
|
357
|
2 |
1 |
if ($mode eq 'forbid') { } |
|
|
1 |
0 |
elsif ($mode eq 'feature') { } |
|
361
|
1 |
0 |
unless ($self->{'quiet'}) |
|
374
|
0 |
6 |
if $ok and $self->{'quiet'} or not $ok and $self->{'quiet'} == 2 |
|
385
|
7 |
5 |
if ($args[$#args] eq 'forbid' or $args[$#args] eq 'feature') |
|
389
|
10 |
2 |
unless $mode eq 'feature' |
|
394
|
3 |
9 |
if (@args == 1 and $args[0] =~ /^\d+(?:\.\d+)?$/) { } |
|
|
9 |
0 |
elsif (@args) { } |
|
406
|
0 |
9 |
unless ($self->_is_module_name($module)) |
|
412
|
3 |
6 |
if (@args and $args[0] =~ /^\d+(?:\.\d+)?$/) |
|
416
|
4 |
5 |
@args ? : |
|
433
|
5 |
7 |
if $mode eq 'forbid' |
|
434
|
2 |
10 |
if $mode eq 'feature' |
|
445
|
6 |
6 |
if ($eval_result) { } |
|
447
|
0 |
6 |
if ($mode eq 'forbid') { } |
|
|
1 |
5 |
elsif ($mode eq 'feature') { } |
|
451
|
0 |
0 |
unless $self->{'quiet'} == 2 |
|
455
|
1 |
0 |
unless ($self->{'quiet'}) |
|
465
|
5 |
1 |
if ($mode eq 'forbid') { } |
|
|
1 |
0 |
elsif ($mode eq 'feature') { } |
|
469
|
1 |
0 |
unless ($self->{'quiet'}) |
|
482
|
0 |
12 |
if $ok and $self->{'quiet'} or not $ok and $self->{'quiet'} == 2 |
|
497
|
13 |
0 |
$module =~ /^[a-zA-Z]\w*$/ ? : |
|
511
|
0 |
18 |
if defined $sigdie |
|
528
|
0 |
19 |
if ($op eq 'skip') { } |
|
|
19 |
0 |
elsif ($op eq 'pass') { } |
|
544
|
0 |
19 |
if $ok and $self->{'quiet'} or not $ok and $self->{'quiet'} == 2 |
|
557
|
0 |
22 |
if $skip |
|
561
|
1 |
21 |
if (@args == 0) |
|
572
|
7 |
14 |
if (@args == 1) { } |
|
|
11 |
3 |
elsif (@args == 2) { } |
|
|
0 |
3 |
elsif (@args > 2) { } |
|
604
|
0 |
11 |
if ($op eq 'skip') { } |
|
|
11 |
0 |
elsif ($op eq 'pass') { } |
|
620
|
0 |
11 |
if $ok and $self->{'quiet'} or not $ok and $self->{'quiet'} == 2 |
|
633
|
0 |
24 |
if $skip |
|
637
|
0 |
24 |
if (@args < 2) |
|
644
|
0 |
24 |
if (@args == 1) { } |
|
|
24 |
0 |
elsif (@args == 2) { } |
|
665
|
21 |
24 |
if (ref $args->[0] eq 'CODE') { } |
|
|
7 |
17 |
elsif (ref $args->[0] eq 'ARRAY') { } |
|
668
|
17 |
4 |
if (ref $args->[0] eq 'ARRAY') |
|
693
|
21 |
24 |
if ($type eq 'ok') { } |
|
694
|
13 |
8 |
if (ref $result eq 'ARRAY') { } |
|
|
2 |
6 |
elsif (ref $result eq 'HASH') { } |
|
696
|
18 |
0 |
if defined $ele |
|
702
|
4 |
0 |
if defined $val |
|
706
|
6 |
0 |
$result ? : |
|
709
|
10 |
11 |
if (not defined $expected) { } |
|
719
|
22 |
2 |
if ($type eq 'is') { } |
|
726
|
7 |
38 |
if (not $identical and $type ne 'isnt') |
|
727
|
4 |
3 |
if ($func) |
|
731
|
7 |
0 |
unless $type eq 'ok' and not defined $result |
|
735
|
45 |
0 |
$pass ? : |
|
744
|
18 |
0 |
if ($width) |
|
746
|
0 |
18 |
if $width < 10 |
|
747
|
0 |
18 |
if length $str > $width |
|
755
|
0 |
38 |
if (not defined $s) { } |
|
|
10 |
28 |
elsif (ref $s eq 'ARRAY') { } |
|
|
2 |
26 |
elsif (ref $s eq 'HASH') { } |
|
|
0 |
26 |
elsif (ref $s) { } |
|
|
0 |
26 |
elsif ($s eq '') { } |
|
783
|
0 |
26 |
if ($s =~ /\s/) { } |
|
786
|
0 |
0 |
unless ($s =~ /$q/) |
|
789
|
0 |
0 |
unless ($s =~ /$qq/) |
|
803
|
0 |
0 |
unless defined $s1 or defined $s2 |
|
804
|
0 |
78 |
unless defined $s1 and defined $s2 |
|
805
|
4 |
74 |
if ref $s1 ne ref $s2 |
|
807
|
17 |
57 |
if (ref $s1 eq 'ARRAY') { } |
|
|
4 |
53 |
elsif (ref $s1 eq 'HASH') { } |
|
|
0 |
53 |
elsif (ref $s1) { } |
|
808
|
0 |
17 |
if $#$s1 != $#$s2 |
|
810
|
2 |
33 |
unless $self->_cmp_structure($s1->[$i], $s2->[$i]) |
|
817
|
0 |
4 |
if $#k1 != $#k2 |
|
819
|
0 |
8 |
unless exists $s2->{$key} |
|
820
|
2 |
6 |
unless $self->_cmp_structure($s1->{$key}, $s2->{$key}) |
|
837
|
0 |
46 |
if ($self->{'skipall'}) { } |
|
|
0 |
92 |
elsif ($main::TI_NUM < $self->{'start'} or $self->{'end'} and $main::TI_NUM > $self->{'end'}) { } |
|
852
|
0 |
2 |
unless $name |
|
854
|
0 |
2 |
if (!ref($func) eq 'CODE') |
|
863
|
1 |
1 |
if ($input) |
|
864
|
0 |
1 |
if (-r $input) { } |
|
|
1 |
0 |
elsif (-r "$testdir/$input") { } |
|
878
|
2 |
0 |
unless ($outputdir) |
|
879
|
2 |
0 |
if (-d $testdir and -w $testdir) { } |
|
886
|
2 |
0 |
if ($outputdir) |
|
887
|
0 |
2 |
unless (-d $outputdir and -w $outputdir) |
|
897
|
0 |
2 |
if (not $expected) { } |
|
|
0 |
2 |
elsif (-r $expected) { } |
|
|
2 |
0 |
elsif (-r "$testdir/$expected") { } |
|
913
|
0 |
2 |
unless (-r "$output") |
|
929
|
2 |
0 |
unless $ENV{'TI_NOCLEAN'} |
|
940
|
7 |
0 |
$name ? : |
|
958
|
0 |
4 |
if (exists $opts{'feature'}) |
|
961
|
0 |
0 |
unless exists $self->{'features'}{$feature} |
|
964
|
0 |
4 |
if (exists $opts{'disable'} and not $skip) |
|
967
|
0 |
0 |
if exists $self->{'features'}{$feature} |
|
978
|
0 |
4 |
if (exists $opts{'name'}) |
|
982
|
0 |
4 |
if (exists $opts{'skip'}) |
|
987
|
0 |
4 |
if (exists $opts{'todo'}) |
|
998
|
0 |
4 |
unless (exists $opts{'tests'}) |
|
1005
|
0 |
4 |
if (ref $tests eq 'ARRAY') { } |
|
1011
|
0 |
0 |
if (ref $result eq 'ARRAY') { } |
|
1021
|
1 |
3 |
if $gotexpected |
|
1025
|
2 |
2 |
if (exists $opts{'expected'}) |
|
1026
|
0 |
2 |
if ($gotexpected) |
|
1031
|
1 |
1 |
if (ref $expected eq 'ARRAY') { } |
|
1036
|
1 |
0 |
if (ref $exp eq 'ARRAY') { } |
|
1046
|
0 |
1 |
if ($g) |
|
1056
|
0 |
3 |
if ($gotexpected and ($nexp != 1 and $nexp != $ntest)) |
|
1063
|
3 |
1 |
if (exists $opts{'func'}) |
|
1065
|
0 |
3 |
if (ref $func ne 'CODE') |
|
1077
|
0 |
16 |
if ($skip) |
|
1082
|
0 |
16 |
if ($tests{$t}{'err'}) |
|
1092
|
13 |
3 |
if ($gotexpected) { } |
|
1096
|
13 |
0 |
if $func |
|
1099
|
6 |
7 |
$nexp == 1 ? : |
|
1108
|
0 |
3 |
if (@$result == 1) |
|
1119
|
0 |
16 |
if ($op eq 'skip') { } |
|
|
16 |
0 |
elsif ($op eq 'pass') { } |
|
1135
|
0 |
16 |
if $ok and $self->{'quiet'} or not $ok and $self->{'quiet'} == 2 |
|
1154
|
9 |
1 |
unless $reason |
|
1156
|
10 |
0 |
if ($self->{'mode'} eq 'test') { } |
|
1160
|
1 |
9 |
unless ($n) |
|
1161
|
0 |
1 |
unless $reason |
|
1170
|
0 |
0 |
if (not $n) { } |
|
1174
|
0 |
0 |
unless $self->{'quiet'} |
|
1182
|
19 |
41 |
unless $name |
|
1188
|
0 |
0 |
if $self->{'mode'} ne 'test' and $self->{'quiet'} |
|
1192
|
0 |
60 |
if ($name =~ /^\d/ and $self->{'quiet'} != 2) |
|
1201
|
0 |
0 |
unless $name |
|
1208
|
0 |
0 |
if ($self->{'abort'} == 2) { } |
|
|
0 |
0 |
elsif ($self->{'abort'}) { } |
|
1217
|
0 |
0 |
unless $name |
|
1223
|
0 |
0 |
if $self->{'mode'} ne 'test' and $self->{'quiet'} |
|
1225
|
0 |
0 |
$name ? : |
|
1291
|
0 |
17 |
unless @$test |
|
1295
|
5 |
12 |
if ($gotboth == -1) { } |
|
|
0 |
12 |
elsif ($gotboth != $both) { } |
|
1304
|
7 |
10 |
if $gotboth |
|
1319
|
1 |
33 |
unless @$list |
|
1329
|
16 |
17 |
if ($line eq '') |
|
1331
|
0 |
16 |
unless $started |
|
1336
|
0 |
17 |
if ($line =~ /^#/) |
|
1345
|
0 |
17 |
unless $started |
|
1359
|
17 |
51 |
unless $self->_test_line($test) |
|
1363
|
7 |
44 |
if ($self->_parse_begin_results($test)) |
|
1364
|
7 |
0 |
if ($curr eq 'args') { } |
|
1375
|
0 |
44 |
if $err |
|
1377
|
29 |
15 |
if ($curr eq 'args') { } |
|
1384
|
7 |
10 |
$curr eq 'results' ? : |
|
1401
|
112 |
17 |
if @$test |
|
1412
|
7 |
44 |
if $test->[0] =~ s/^ $sp_opt $results $eot //x |
|
1429
|
0 |
61 |
unless $self->_test_line($test) |
|
1434
|
0 |
61 |
if $err |
|
1435
|
2 |
59 |
if ($found) |
|
1443
|
0 |
59 |
if $err |
|
1444
|
7 |
52 |
if ($found) |
|
1446
|
0 |
7 |
if (@val == 1 and $val[0] eq '') |
|
1453
|
0 |
52 |
if $err |
|
1454
|
2 |
50 |
if ($found) |
|
1456
|
2 |
0 |
if (@val == 1 and $val[0] eq '') { } |
|
1465
|
0 |
50 |
if $err |
|
1466
|
2 |
48 |
if ($found) |
|
1467
|
2 |
0 |
if (@val == 1 and $val[0] eq '') { } |
|
|
0 |
0 |
elsif (@val % 2 == 0) { } |
|
|
0 |
0 |
elsif (not defined $val[$#val] or $val[$#val] eq '') { } |
|
1488
|
0 |
48 |
if $err |
|
1493
|
0 |
61 |
if $err |
|
1494
|
0 |
61 |
unless $found |
|
1497
|
0 |
68 |
if $v eq '__blank__' |
|
1498
|
0 |
68 |
if $v eq '__undef__' |
|
1499
|
62 |
6 |
if $v |
|
1501
|
61 |
0 |
if $found |
|
1537
|
2 |
59 |
if ($test->[0] =~ s/^ $sp_opt $q ($min_str) $q $EOT//x or $test->[0] =~ s/^ $sp_opt $qq ($min_str) $qq $EOT//x) { } |
|
|
0 |
59 |
elsif ($test->[0] =~ /^ $sp_opt $q/x or $test->[0] =~ /^ $sp_opt $qq/x) { } |
|
1564
|
2 |
159 |
if ($test->[0] =~ s/^ $sp_opt $open ($delim) $sp_opt //x) { } |
|
|
9 |
150 |
elsif ($test->[0] =~ s/^ $sp_opt $open $sp_opt //x) { } |
|
1586
|
0 |
17 |
if $e |
|
1594
|
0 |
17 |
if (not $m and $del) |
|
1596
|
0 |
0 |
unless ($self->_test_line($test)) |
|
1600
|
0 |
0 |
if ($test->[0] =~ s/^ $sp_opt $newEOT //x) { } |
|
1608
|
0 |
17 |
if ($m eq $close and not @v) { } |
|
1614
|
11 |
6 |
if $m eq $close |
|
1620
|
2 |
9 |
if ($test->[0] eq '') |
|
1624
|
9 |
0 |
if ($test->[0] =~ s/^ $sp_opt $EOT //x) { } |