Condition Coverage

blib/lib/PHP/Functions/Password.pm
Criterion Covered Total %
condition 45 131 34.3


and 3 conditions

line !l l&&!r l&&r condition
187 0 0 34 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
243 0 0 9 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
245 0 9 0 @_ && ref $_[0]
252 3 0 0 defined $options{'salt'} and length $options{'salt'}
275 0 0 0 $options{'cost'} =~ /^\d{1,2}$/ and $options{'cost'} >= $min_cost
0 0 0 $options{'cost'} =~ /^\d{1,2}$/ and $options{'cost'} >= $min_cost and $options{'cost'} <= $max_cost
324 0 0 24 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
327 0 0 24 @_ && ref $_[0]
344 0 4 4 defined $info->{'options'}{'cost'} and $info->{'options'}{'cost'} == $cost
365 2 0 0 defined $options{'salt'} && length $options{'salt'}
410 0 0 50 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
413 0 0 50 defined $password and length $password
414 0 0 50 defined $crypted and length $crypted
470 1 0 0 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
491 0 5 0 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
523 0 0 0 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
526 0 0 0 @_ && ref $_[0]
542 0 12 0 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
557 0 25 0 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
578 0 0 1 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
593 0 0 5 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
609 0 0 9 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
611 0 9 0 @_ && ref $_[0]
625 0 0 12 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)
639 0 0 25 @_ && UNIVERSAL::isa($_[0], __PACKAGE__)

or 2 conditions

line l !l condition
246 9 0 $options{'algo'} // 1
326 24 0 shift @_ // 1
525 0 0 shift() // 1
558 24 1 $proto->_verify(@_) // 0

or 3 conditions

line l !l&&r !l&&!r condition
169 0 2 0 $INC{'Crypt/Argon2.pm'} or eval { do { require Crypt::Argon2 } }
250 3 3 0 $algo == 3 or $algo == 2
293 6 0 0 $INC{'Crypt/Argon2.pm'} or eval { do { require Crypt::Argon2 } }
297 0 6 0 $options{'salt'} || Crypt::OpenSSL::Random::random_bytes($PASSWORD_ARGON2_DEFAULT_SALT_LENGTH)
298 0 6 0 $options{'memory_cost'} || $PASSWORD_ARGON2_DEFAULT_MEMORY_COST
299 0 6 0 $options{'time_cost'} || $PASSWORD_ARGON2_DEFAULT_TIME_COST
300 0 6 0 $options{'threads'} || $PASSWORD_ARGON2_DEFAULT_THREADS
301 0 6 0 $options{'tag_length'} || $PASSWORD_ARGON2_DEFAULT_TAG_LENGTH
337 8 0 0 $algo == 3 or $algo == 2
343 4 4 0 $options{'cost'} // $PASSWORD_BCRYPT_DEFAULT_COST
350 8 0 0 $options{'memory_cost'} // $PASSWORD_ARGON2_DEFAULT_MEMORY_COST
355 6 0 0 $options{'time_cost'} // $PASSWORD_ARGON2_DEFAULT_TIME_COST
360 4 0 0 $options{'threads'} // $PASSWORD_ARGON2_DEFAULT_THREADS
366 0 2 0 $options{'tag_length'} || $PASSWORD_ARGON2_DEFAULT_TAG_LENGTH
368 1 1 0 $INC{'Crypt/Argon2.pm'} or eval { do { require Crypt::Argon2 } }
431 16 0 0 $INC{'Crypt/Argon2.pm'} or eval { do { require Crypt::Argon2 } }