Branch Coverage

blib/lib/Patro/Archy.pm
Criterion Covered Total %
branch 293 422 69.4


line true false branch
30 0 68 if ($INC{'Sys/HostAddr.pm'})
32 0 21 if $host2
36 0 68 unless socket my $socket, 2, 1, getprotobyname 'tcp'
38 0 68 unless setsockopt $socket, 1, 2, "\cA\000\000\000"
41 0 68 unless bind $socket, $sockaddr
42 0 68 unless listen $socket, 128
59 0 68 $threads_avail ? :
67 0 68 if ($threads_avail)
71 0 0 if ($@ =~ /CODE|GLOB/)
91 0 113 if ($ref eq 'threadsx::shared::code') { }
0 113 elsif ($ref eq 'threadsx::shared::glob') { }
101 21 92 if (overload::Overloaded($o))
102 21 0 if ($ref ne 'CODE' and $ref ne 'CODE*' and $ref ne 'GLOB')
116 0 21 if $@
117 21 0 if (@SERVERS == 1)
131 0 68 if ($meta->{'style'} eq 'threaded') { }
138 0 0 if ($self->{'meta'}{'pid_file'})
154 0 68 unless (defined $pid)
157 47 21 if ($pid == 0)
158 0 47 if ($self->{'meta'}{'pid_file'})
176 0 25 unless overload::Overloaded($obj)
177 9 16 unless (@oplist)
187 12 0 if ($ops{'0+'} or $ops{'""'} or $ops{'bool'})
193 193 207 if $ops{$binop}
197 13 12 if $ops{'<=>'}
198 13 12 if $ops{'cmp'}
200 13 12 if $ops{'-'}
201 13 12 if $ops{'-='}
202 13 0 if $ops{'<'} and $ops{'neg'}
203 13 12 if $ops{'+='}
206 0 25 if $ops{'nomethod'}
231 0 2 unless ($file)
235 0 2 unless (open $fh, '>', $file)
251 0 3 if (not defined $file || ref $self and $self ne 'Patro::Config')
255 0 3 if (ref $file eq 'GLOB') { }
0 3 elsif (not open($fh, '<', $file)) { }
284 30 67 unless ($paddr)
285 30 0 if $!{'EINTR'}
286 0 0 if $!{'ECHILD'} or $! == 10
299 67 0 if ($self->{'meta'}{'style'} eq 'forked') { }
301 0 67 unless (defined $pid)
304 41 26 if ($pid != 0)
305 0 41 if ($self->{'meta'}{'pid_file'})
324 0 0 if ($self->{'meta'}{'pid_file'})
350 0 72 if ($self->{'meta'}{'subthreads'})
355 0 0 if (@joinable)
360 0 0 unless (defined $i)
371 21 51 unless ($self->still_active)
382 0 72 if (time <= $meta->{'keep_alive'})
385 42 30 if (time < $meta->{'last_connection'} + $meta->{'idle_timeout'})
388 9 21 if (keys %{$$meta{'pids'};})
403 0 568 unless $req =~ /\S/
410 21 547 if $Patro::Archy::disconnect
422 0 568 if &CORE::GLOBAL::ref($request)
426 0 568 unless (defined $topic)
432 363 205 if ($request->{'has_args'})
435 5 496 if (ref $_ eq '.Patroon') { }
440 0 363 if ($@)
447 363 205 $has_args ? :
448 363 205 $has_args ? :
457 67 501 if ($topic eq 'META') { }
70 431 elsif ($topic eq 'HASH') { }
249 182 elsif ($topic eq 'ARRAY') { }
20 162 elsif ($topic eq 'SCALAR') { }
32 130 elsif ($topic eq 'METHOD') { }
3 127 elsif ($topic eq 'CODE') { }
85 42 elsif ($topic eq 'HANDLE') { }
36 6 elsif ($topic eq 'OVERLOAD') { }
6 0 elsif ($topic eq 'REF') { }
480 67 501 if (@r and ref $r[0] eq '.Patroclus')
485 15 486 if $!
486 15 486 if $^E
487 1 500 if $?
488 2 499 if $@
506 607 431 if $orig_refs[$i] != \$args->[$j]
507 14 417 if ($orig_dump[$i] ne $dj)
514 12 489 if @out
515 0 501 if @outref
516 15 486 if ($ctx >= 2) { }
448 38 elsif ($ctx == 1 and defined $r[0]) { }
529 5 62 if ($cmd eq 'disconnect')
534 0 62 if ($cmd eq 'ref') { }
0 62 elsif ($cmd eq 'reftype') { }
62 0 elsif ($cmd eq 'destroy') { }
541 16 46 if (@ids == 0) { }
557 0 70 if (&reftype($obj) ne 'HASH')
562 7 63 if ($cmd eq 'STORE') { }
53 10 elsif ($cmd eq 'FETCH') { }
2 8 elsif ($cmd eq 'DELETE') { }
8 0 elsif ($cmd eq 'EXISTS') { }
0 0 elsif ($cmd eq 'CLEAR') { }
0 0 elsif ($cmd eq 'FIRSTKEY') { }
0 0 elsif ($cmd eq 'NEXTKEY') { }
0 0 elsif ($cmd eq 'SCALAR') { }
594 0 249 if (&reftype($obj) ne 'ARRAY')
598 7 242 if ($cmd eq 'STORE') { }
180 62 elsif ($cmd eq 'FETCH') { }
32 30 elsif ($cmd eq 'FETCHSIZE') { }
0 30 elsif ($cmd eq 'STORESIZE' or $cmd eq 'EXTEND') { }
16 14 elsif ($cmd eq 'SPLICE') { }
6 8 elsif ($cmd eq 'PUSH') { }
2 6 elsif ($cmd eq 'UNSHIFT') { }
3 3 elsif ($cmd eq 'POP') { }
3 0 elsif ($cmd eq 'SHIFT') { }
0 0 elsif ($cmd eq 'EXISTS') { }
613 3 13 if ($off < 0)
615 0 3 if ($off < 0)
621 2 14 if (not defined $len or $len eq 'undef')
624 2 14 if ($len < 0)
626 0 2 if ($len < 0)
633 6 10 if ($ctx == 1) { }
634 6 0 @val > 0 ? :
657 0 20 if (&reftype($obj) ne 'SCALAR')
661 6 14 if ($cmd eq 'STORE') { }
14 0 elsif ($cmd eq 'FETCH') { }
676 0 32 unless ($obj)
681 1 31 if ($command =~ /::/) { }
30 1 elsif ($context < 2) { }
683 1 0 if ($context < 2) { }
684 1 0 $has_args ? :
687 0 0 $has_args ? :
691 22 8 $has_args ? :
694 0 1 $has_args ? :
703 0 85 ref $obj eq 'threadsx::shared::glob' ? :
704 7 78 if ($command eq 'PRINT') { }
1 77 elsif ($command eq 'PRINTF') { }
0 77 elsif ($command eq 'WRITE') { }
13 64 elsif ($command eq 'READLINE') { }
5 59 elsif ($command eq 'GETC') { }
3 56 elsif ($command eq 'READ' or $command eq 'READ?' or $command eq 'SYSREAD') { }
2 54 elsif ($command eq 'EOF') { }
1 53 elsif ($command eq 'FILENO') { }
2 51 elsif ($command eq 'SEEK') { }
8 43 elsif ($command eq 'TELL') { }
3 40 elsif ($command eq 'BINMODE') { }
8 32 elsif ($command eq 'CLOSE') { }
5 27 elsif ($command eq 'OPEN') { }
1 26 elsif ($command eq 'TRUNCATE') { }
0 26 elsif ($command eq 'FCNTL') { }
4 22 elsif ($command eq 'FLOCK') { }
2 20 elsif ($command eq 'STAT') { }
0 20 elsif ($command eq 'LSTAT') { }
6 14 elsif ($command eq '-X') { }
3 11 elsif ($command eq 'SYSOPEN') { }
1 10 elsif ($command eq 'OPENDIR') { }
1 9 elsif ($command eq 'REWINDDIR') { }
3 6 elsif ($command eq 'TELLDIR') { }
3 3 elsif ($command eq 'READDIR') { }
1 2 elsif ($command eq 'SEEKDIR') { }
1 1 elsif ($command eq 'CLOSEDIR') { }
1 0 elsif ($command eq 'CHDIR') { }
708 1 0 if ($has_args) { }
718 0 0 if (@$args < 2)
725 2 11 if ($context > 1) { }
738 0 3 if (@$args < 2)
745 1 2 if ($command eq 'SYSREAD' or $command eq 'READ?' and fileno $fh >= 0) { }
760 0 2 if (@$args < 2) { }
0 2 elsif (@$args > 2) { }
775 2 1 if (@$args) { }
782 0 8 if ($Patro::SECURE)
789 0 5 if ($Patro::SECURE)
795 1 4 if (@$args == 0) { }
799 3 1 if (@$args == 0) { }
808 5 0 if ($z)
826 1 1 if ($context < 2) { }
832 0 0 if ($context < 2) { }
841 0 3 if ($Patro::SECURE)
845 0 3 @$args <= 2 ? :
851 0 1 if ($Patro::SECURE)
861 2 1 if ($context < 2) { }
883 0 3 if (ref $sub eq 'threadsx::shared::code')
886 3 0 if ($context < 2) { }
887 2 1 $has_args ? :
889 0 0 $has_args ? :
895 11 25 if ($op eq '@{}') { }
10 15 elsif ($op eq '%{}') { }
0 15 elsif ($op eq '&{}') { }
2 13 elsif ($op eq '${}') { }
913 0 13 if ($swap)
918 0 13 if ($op =~ /[&|~^][.]=?/)
921 0 13 if ($op eq '-X') { }
0 13 elsif ($op eq 'neg') { }
0 13 elsif ($op eq '!' or $op eq '~' or $op eq '++' or $op eq '--') { }
0 13 elsif ($op eq 'qr') { }
0 13 elsif ($op eq 'atan2') { }
0 13 elsif ($op eq 'cos' or $op eq 'sin' or $op eq 'exp' or $op eq 'abs' or $op eq 'int' or $op eq 'sqrt' or $op eq 'log') { }
4 9 elsif ($op eq 'bool') { }
0 9 elsif ($op eq '0+') { }
2 7 elsif ($op eq '""') { }
0 7 elsif ($op eq '<>') { }
935 4 0 $x ? :
946 0 13 if ($@)
949 0 13 if ($threads_avail)
958 0 6 if (&reftype($obj) ne 'REF')
962 6 0 if ($command eq 'deref')
973 38 0 if (@_ > 0 and ref $_[-1] eq '.Patroclus')
1006 463 105 if ($resp->{'context'})
1007 448 15 if ($resp->{'context'} == 1) { }
15 0 elsif ($resp->{'context'} == 2) { }
1015 12 556 if ($resp->{'out'})
1029 545 0 defined $obj ? :
1030 463 82 unless &CORE::GLOBAL::ref($obj)
1032 0 82 if ($threads_avail)
1033 0 0 if (ref $obj eq 'CODE') { }
0 0 elsif (ref $obj eq 'GLOB') { }
1047 40 42 if (not $self->{'obj'}{$id}) { }
1051 0 40 if ($ref eq 'threadsx::shared::code') { }
0 40 elsif ($ref eq 'threadsx::shared::glob') { }
1064 4 36 if (overload::Overloaded($obj))
1075 0 68 if ($INC{'perl5db.pl'})
1086 0 68 if ($threads_avail)