Condition Coverage

blib/lib/PHP/Functions/Password.pm
Criterion Covered Total %
condition 54 120 45.0


and 3 conditions

line !l l&&!r l&&r condition
185 0 29 5 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
255 0 0 41 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
258 9 32 0 @_ && ref $_[0]
261 3 0 32 defined $options{'salt'} and length $options{'salt'}
311 0 12 12 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
314 0 0 24 @_ && ref $_[0]
326 0 4 4 defined $info{'options'}{'cost'} and $info{'options'}{'cost'} == $cost
347 2 0 0 defined $options{'salt'} && length $options{'salt'}
396 0 25 25 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
411 0 8 4 $new_crypt =~ /$RE_BCRYPT_STRING/ && $4 eq $hash
451 0 0 1 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
466 0 0 5 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
482 0 0 41 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
484 0 41 0 @_ && ref $_[0]
500 0 0 12 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
514 0 0 25 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
528 0 0 35 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
558 0 0 35 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
591 0 0 35 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')
607 0 0 38 @_ && UNIVERSAL::isa($_[0], 'PHP::Functions::Password')

or 2 conditions

line l !l condition
257 41 0 shift() // 1
313 24 0 shift @_ // 1
485 9 32 $options{'algo'} || 1

or 3 conditions

line l !l&&r !l&&!r condition
161 0 2 0 $INC{'Crypt/Argon2.pm'} or eval { do { require Crypt::Argon2 } }
259 3 3 0 $algo == 3 or $algo == 2
270 32 3 0 $options{'cost'} || $PASSWORD_BCRYPT_DEFAULT_COST
275 6 0 0 $INC{'Crypt/Argon2.pm'} or eval { do { require Crypt::Argon2 } }
279 0 6 0 $options{'salt'} || Crypt::OpenSSL::Random::random_bytes($PASSWORD_ARGON2_DEFAULT_SALT_LENGTH)
280 0 6 0 $options{'memory_cost'} || $PASSWORD_ARGON2_DEFAULT_MEMORY_COST
281 0 6 0 $options{'time_cost'} || $PASSWORD_ARGON2_DEFAULT_TIME_COST
282 0 6 0 $options{'threads'} || $PASSWORD_ARGON2_DEFAULT_THREADS
283 0 6 0 $options{'tag_length'} || $PASSWORD_ARGON2_DEFAULT_TAG_LENGTH
320 8 0 2 $algo == 3 or $algo == 2
325 4 4 0 $options{'cost'} // $PASSWORD_BCRYPT_DEFAULT_COST
332 8 0 0 $options{'memory_cost'} // $PASSWORD_ARGON2_DEFAULT_MEMORY_COST
337 6 0 0 $options{'time_cost'} // $PASSWORD_ARGON2_DEFAULT_TIME_COST
342 4 0 0 $options{'threads'} // $PASSWORD_ARGON2_DEFAULT_THREADS
348 0 2 0 $options{'tag_length'} || $PASSWORD_ARGON2_DEFAULT_TAG_LENGTH
350 1 1 0 $INC{'Crypt/Argon2.pm'} or eval { do { require Crypt::Argon2 } }
414 16 0 0 $INC{'Crypt/Argon2.pm'} or eval { do { require Crypt::Argon2 } }
560 35 0 0 $settings->{'key_nul'} or $password eq ""