Condition Coverage

blib/lib/Net/EasyTCP.pm
Criterion Covered Total %
condition 64 251 25.5


and 3 conditions

line !l l&&!r l&&r condition
95 0 0 0 $hasCBC and $$_[2]
699 12 0 0 $callback and ref $callback eq 'CODE'
761 1 0 0 scalar keys %{$$self{'_clientip'};} and not $$self{'_clientip'}{$remoteip}
885 0 12 0 not $$self{'_donotencrypt'} || $$self{'_donotencryptwith'}{'B'} and time - $$self{'_lastglobalkeygentime'} >= 3600
916 1 1 0 $$self{'_mode'} ne 'client' and $$self{'_mode'} ne 'serverclient'
942 13 21 0 $$self{'_mode'} ne 'client' and $$self{'_mode'} ne 'serverclient'
969 12 0 0 $$self{'_mode'} ne 'client' and $$self{'_mode'} ne 'serverclient'
1070 0 0 11 $timeout and $result != $Net::EasyTCP::PACKETSIZE
0 0 11 $timeout and $result != $Net::EasyTCP::PACKETSIZE and _extractdata($self)
1091 0 1 11 ($result, $realdata) = $self->data and defined $result
1178 1 0 0 $$self{'_mode'} ne 'client' and $$self{'_mode'} ne 'serverclient'
1182 1 0 0 $$self{'_selector'} and $$self{'_selector'}->exists($$self{'_sock'})
1244 0 0 0 $$self{'_mode'} ne 'client' and $$self{'_mode'} ne 'serverclient'
1282 0 0 0 $$self{'_mode'} ne 'client' and $$self{'_mode'} ne 'serverclient'
1295 0 0 0 $$self{'_mode'} ne 'client' and $$self{'_mode'} ne 'serverclient'
1325 8 10 0 not $ref1 and $item1 ne $item2
1393 2 0 0 $_ ne '_order' and $Net::EasyTCP::_ENCRYPT_AVAILABLE{$_}{'name'} eq $module
1436 2 4 0 defined $data and $$client{'_version'} == 0.07 || $$client{'_version'} == 0.08 || $$client{'_version'} >= 0.15
1463 0 0 3 not $$client{'_negotiating'} and $$client{'_callbacks'}{$type}
1506 0 0 0 not $forcompat and $Net::EasyTCP::_ENCRYPT_AVAILABLE{$modulekey}{'localpublickey'}
0 0 0 not $forcompat and $Net::EasyTCP::_ENCRYPT_AVAILABLE{$modulekey}{'localpublickey'} and $Net::EasyTCP::_ENCRYPT_AVAILABLE{$modulekey}{'localprivatekey'}
0 0 0 $forcompat and $Net::EasyTCP::_ENCRYPT_AVAILABLE{$modulekey}{'localcompatpublickey'}
0 0 0 $forcompat and $Net::EasyTCP::_ENCRYPT_AVAILABLE{$modulekey}{'localcompatpublickey'} and $Net::EasyTCP::_ENCRYPT_AVAILABLE{$modulekey}{'localcompatprivatekey'}
1523 0 0 0 $key1 and $key2
1574 0 0 0 $key1 && $key2
1684 0 0 0 $mergewithpassword and defined $cleanpassword
0 0 0 $mergewithpassword and defined $cleanpassword and length $cleanpassword
0 0 0 $mergewithpassword and defined $cleanpassword and length $cleanpassword and $$client{'_authenticated'}
0 0 0 $mergewithpassword and defined $cleanpassword and length $cleanpassword and $$client{'_authenticated'} and not $$client{'_negotiating'}
0 0 0 $mergewithpassword and defined $cleanpassword and length $cleanpassword and $$client{'_authenticated'} and not $$client{'_negotiating'} and $$client{'_version'} >= 0.15
1771 0 0 0 $mergewithpassword and defined $cleanpassword
0 0 0 $mergewithpassword and defined $cleanpassword and length $cleanpassword
0 0 0 $mergewithpassword and defined $cleanpassword and length $cleanpassword and $$client{'_authenticated'}
0 0 0 $mergewithpassword and defined $cleanpassword and length $cleanpassword and $$client{'_authenticated'} and not $$client{'_negotiating'}
0 0 0 $mergewithpassword and defined $cleanpassword and length $cleanpassword and $$client{'_authenticated'} and not $$client{'_negotiating'} and $$client{'_version'} >= 0.15
1874 0 0 0 $module eq 'Crypt::Random' and $version >= 0.34
1927 9 0 0 $command eq 'CVF' and not $$client{'_donotcheckversion'}
9 0 0 $command eq 'EVF' and not $$client{'_donotcheckversion'}
6 0 0 $command eq 'SVF' and not $$client{'_donotcheckversion'}
2068 0 0 0 _decrypt($client, \$tempscalar) and $tempscalar eq $$client{'_compatabilityscalar'}
2074 0 0 0 $temppublic and $tempprivate
2173 1 0 0 _decompress($client, \$tempscalar) and $tempscalar eq $$client{'_compatabilityscalar'}
2246 0 10 0 defined $data and not _send($client, $data, 0)
2315 0 0 0 $version ne $P[1] and not $$client{'_negotiatedencryptcompatability'}
2352 0 0 0 _decrypt($client, \$tempscalar) and $tempscalar eq $$client{'_compatabilityscalar'}
2453 0 0 0 _decompress($client, \$tempscalar) and $tempscalar eq $$client{'_compatabilityscalar'}
2489 1 0 0 $version ne $P[1] and not $$client{'_negotiatedcompresscompatability'}
2506 0 0 1 defined $$client{'_password'} and length $$client{'_password'}
0 1 0 defined $$client{'_password'} and length $$client{'_password'} and not $$client{'_authenticated'}
2639 10 0 0 $data =~ /^EA\x00/ and $$client{'_negotiatedencryptcompatability'}
9 1 0 $data =~ /^CA\x00/ and $$client{'_negotiatedcompresscompatability'}
2666 0 0 10 $$client{'_mode'} eq 'serverclient' and $$client{'_negotiating'}
2763 1 0 1 $para{'_remoteport'} and $para{'_remoteip'}
2798 2 2 0 $key ne '_order' and grep {$Net::EasyTCP::_COMPRESS_AVAILABLE{$key}{'name'} eq $_;} @{$para{'donotcompresswith'};}
2811 2 0 0 $key ne '_order' and grep {$Net::EasyTCP::_ENCRYPT_AVAILABLE{$key}{'name'} eq $_;} @{$para{'donotencryptwith'};}
2878 2 2 0 $key ne '_order' and grep {$Net::EasyTCP::_COMPRESS_AVAILABLE{$key}{'name'} eq $_;} @{$para{'donotcompresswith'};}
2891 2 0 0 $key ne '_order' and grep {$Net::EasyTCP::_ENCRYPT_AVAILABLE{$key}{'name'} eq $_;} @{$para{'donotencryptwith'};}
3035 2 0 20 defined $realdata && !$realdata

or 2 conditions

line l !l condition
76 2 0 eval "\$$$_[1]::VERSION;" || die("Failed to determine version for $$_[1]\n")
92 0 0 eval "\$$$_[1]::VERSION;" || die("Failed to determine version for $$_[1]\n")
115 0 0 eval "\$$$_[1]::VERSION;" || die("Failed to determine version for $$_[1]\n")
959 11 1 shift() || 0
960 10 2 shift() || 0
1248 0 0 $$self{'_sock'} || undef
1391 2 0 shift() || (return undef)
1429 6 0 shift() || (return undef)
1516 0 0 'Crypt::RSA'->new || die("Failed to create new Crypt::RSA object for key generation: $! $@\n")
1592 7 16 $$client{'_compress'} || (return undef)
1663 0 22 $$client{'_encrypt'} || (return undef)
1669 0 0 $$client{'_remotepublickey'} || (return undef)
1701 0 0 thaw(_asc2bin($publickey)) || (return undef)
1710 0 0 'Crypt::RSA'->new || die("Failed to create new Crypt::RSA object for encryption: $! $@\n")
1750 0 0 $$client{'_encrypt'} || (return undef)
1756 0 0 $$client{'_localprivatekey'} || (return undef)
1807 0 0 'Crypt::RSA'->new || die("Failed to create new Crypt::RSA object for decryption: $! $@\n")
2147 0 1 $temp2 ||= ''
2148 0 1 $version ||= ''
2231 1 0 $temp2 ||= ''
2232 1 0 $version ||= ''
2731 0 2 $para{'timeout'} || 30

or 3 conditions

line l !l&&r !l&&!r condition
95 0 0 0 $hasCBC and $$_[2] or not $$_[2]
736 12 1 0 $$self{'_lastglobalkeygentime'} ||= time
885 0 0 12 $$self{'_donotencrypt'} || $$self{'_donotencryptwith'}{'B'}
1221 0 0 0 $$self{'_donotencrypt'} or not $modulekey
1224 0 0 0 $Net::EasyTCP::_ENCRYPT_AVAILABLE{$modulekey}{'name'} || "Unknown module name for modulekey [$modulekey]"
1233 0 0 0 $$self{'_donotcompress'} or not $modulekey
1236 0 0 0 $Net::EasyTCP::_COMPRESS_AVAILABLE{$modulekey}{'name'} || "Unknown module name for modulekey [$modulekey]"
1436 0 4 0 $$client{'_version'} == 0.07 || $$client{'_version'} == 0.08 || $$client{'_version'} >= 0.15
2001 0 0 1 not $temp or $@
2639 0 0 10 $data =~ /^EA\x00/ and $$client{'_negotiatedencryptcompatability'} or $data =~ /^CA\x00/ and $$client{'_negotiatedcompresscompatability'}
2899 0 0 2 $$self{'_donotencrypt'} or $$self{'_donotencryptwith'}{'B'}