Skip to content

Instantly share code, notes, and snippets.

@agrare
Created July 21, 2020 21:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save agrare/3a20e6e3265909618bf853042070a159 to your computer and use it in GitHub Desktop.
Save agrare/3a20e6e3265909618bf853042070a159 to your computer and use it in GitHub Desktop.
adam@desktop:~/bcrypt-ruby$ rake
cd tmp/x86_64-linux-gnu/bcrypt_ext/2.7.1
/usr/bin/ruby2.7 -I. ../../../../ext/mri/extconf.rb
checking for rb_str_new_frozen()... yes
creating Makefile
cd -
cd tmp/x86_64-linux-gnu/bcrypt_ext/2.7.1
/usr/bin/make
compiling ../../../../ext/mri/bcrypt_ext.c
gcc -D__SKIP_GNU -DHAVE_RB_STR_NEW_FROZEN -Wdate-time -D_FORTIFY_SOURCE=2 -c -o x86.o ../../../../ext/mri/x86.S
linking shared-object bcrypt_ext.so
cd -
cp CHANGELOG tmp/x86_64-linux-gnu/stage/CHANGELOG
cp Gemfile.lock tmp/x86_64-linux-gnu/stage/Gemfile.lock
cp Rakefile tmp/x86_64-linux-gnu/stage/Rakefile
cp bcrypt.gemspec tmp/x86_64-linux-gnu/stage/bcrypt.gemspec
cp ext/mri/bcrypt_ext.c tmp/x86_64-linux-gnu/stage/ext/mri/bcrypt_ext.c
cp ext/mri/extconf.rb tmp/x86_64-linux-gnu/stage/ext/mri/extconf.rb
cp ext/mri/x86.S tmp/x86_64-linux-gnu/stage/ext/mri/x86.S
cp lib/bcrypt/password.rb tmp/x86_64-linux-gnu/stage/lib/bcrypt/password.rb
cp spec/bcrypt/password_spec.rb tmp/x86_64-linux-gnu/stage/spec/bcrypt/password_spec.rb
install -c tmp/x86_64-linux-gnu/bcrypt_ext/2.7.1/bcrypt_ext.so lib/bcrypt_ext.so
cp tmp/x86_64-linux-gnu/bcrypt_ext/2.7.1/bcrypt_ext.so tmp/x86_64-linux-gnu/stage/lib/bcrypt_ext.so
/usr/bin/ruby2.7 -w -I/home/grare/adam/.gems/2.7.0/gems/rspec-support-3.9.3/lib:/home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec --pattern spec/\*\*/\*_spec.rb
BCrypt::Engine
.calibrate(upper_time_limit_in_ms)
a tiny upper time limit provided
returns a minimum cost supported by the algorithm (FAILED - 1)
The BCrypt engine
should calculate the optimal cost factor to fit in a specific time (FAILED - 2)
Generating BCrypt salts
should produce strings
should produce random data
should raise a InvalidCostError if the cost parameter isn't numeric
should raise a InvalidCostError if the cost parameter isn't greater than 0
Autodetecting of salt cost
should work
Generating BCrypt hashes
should produce a string
should raise an InvalidSalt error if the salt is invalid
should raise an InvalidSecret error if the secret is invalid
should call #to_s on the secret and use the return value as the actual secret data
should be interoperable with other implementations (FAILED - 3)
Errors
BCrypt::Error
can be rescued as a StandardError
BCrypt::Errors::InvalidCost
can be rescued as a BCrypt::Error
BCrypt::Errors::InvalidHash
can be rescued as a BCrypt::Error
BCrypt::Errors::InvalidSalt
can be rescued as a BCrypt::Error
BCrypt::Errors::InvalidSecret
can be rescued as a BCrypt::Error
Creating a hashed password
should return a BCrypt::Password (FAILED - 4)
should return a valid bcrypt password (FAILED - 5)
should behave normally if the secret is not a string (FAILED - 6)
should tolerate empty string secrets (FAILED - 7)
Reading a hashed password
the cost is too damn high
the cost should be set to the default if nil (FAILED - 8)
the cost should be set to the default if empty hash (FAILED - 9)
the cost should be set to the passed value if provided (FAILED - 10)
the cost should be set to the global value if set (FAILED - 11)
the cost should be set to an overridden constant for backwards compatibility (FAILED - 12)
should read the version, cost, salt, and hash
should raise an InvalidHashError when given an invalid hash
Comparing a hashed password with a secret
should compare successfully to the original secret (FAILED - 13)
should compare unsuccessfully to anything besides original secret (FAILED - 14)
Validating a generated salt
should not accept an invalid salt
should accept a valid salt
Validating a password hash
should not accept an invalid password
should accept a valid password (FAILED - 15)
Failures:
1) BCrypt::Engine .calibrate(upper_time_limit_in_ms) a tiny upper time limit provided returns a minimum cost supported by the algorithm
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./lib/bcrypt/engine.rb:106:in `block in calibrate'
# ./lib/bcrypt/engine.rb:104:in `each'
# ./lib/bcrypt/engine.rb:104:in `calibrate'
# ./spec/bcrypt/engine_spec.rb:7:in `block (4 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:607:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:607:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:607:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:607:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:607:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:607:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
2) The BCrypt engine should calculate the optimal cost factor to fit in a specific time
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./lib/bcrypt/engine.rb:106:in `block in calibrate'
# ./lib/bcrypt/engine.rb:104:in `each'
# ./lib/bcrypt/engine.rb:104:in `calibrate'
# ./spec/bcrypt/engine_spec.rb:15:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
3) Generating BCrypt hashes should be interoperable with other implementations
Failure/Error: expect(BCrypt::Engine.hash_secret(secret, salt)).to eql(test_vector)
expected: "$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW"
got: "$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW\x00\x00\x00\x00b\x01\x00\x00\x00\x00\x0...x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
(compared using eql?)
# /home/grare/adam/.gems/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support.rb:97:in `block in <module:Support>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support.rb:106:in `notify_failure'
# /home/grare/adam/.gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/fail_with.rb:35:in `fail_with'
# /home/grare/adam/.gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/handler.rb:38:in `handle_failure'
# /home/grare/adam/.gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/handler.rb:50:in `block in handle_matcher'
# /home/grare/adam/.gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/handler.rb:27:in `with_matcher'
# /home/grare/adam/.gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
# /home/grare/adam/.gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/expectation_target.rb:65:in `to'
# ./spec/bcrypt/engine_spec.rb:154:in `block (3 levels) in <top (required)>'
# ./spec/bcrypt/engine_spec.rb:153:in `each'
# ./spec/bcrypt/engine_spec.rb:153:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
4) Creating a hashed password should return a BCrypt::Password
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:7:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:360:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:524:in `block in run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:610:in `block in run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `reverse_each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:479:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:497:in `run_before_example'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:256:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
5) Creating a hashed password should return a valid bcrypt password
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:7:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:360:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:524:in `block in run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:610:in `block in run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `reverse_each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:479:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:497:in `run_before_example'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:256:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
6) Creating a hashed password should behave normally if the secret is not a string
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:7:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:360:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:524:in `block in run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:610:in `block in run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `reverse_each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:479:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:497:in `run_before_example'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:256:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
7) Creating a hashed password should tolerate empty string secrets
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:7:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:360:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:524:in `block in run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:610:in `block in run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `reverse_each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:479:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:497:in `run_before_example'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:256:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
8) Reading a hashed password the cost should be set to the default if nil
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:44:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
9) Reading a hashed password the cost should be set to the default if empty hash
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:48:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
10) Reading a hashed password the cost should be set to the passed value if provided
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:52:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
11) Reading a hashed password the cost should be set to the global value if set
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:57:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
12) Reading a hashed password the cost should be set to an overridden constant for backwards compatibility
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:68:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
13) Comparing a hashed password with a secret should compare successfully to the original secret
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:96:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:360:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:524:in `block in run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:610:in `block in run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `reverse_each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:479:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:497:in `run_before_example'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:256:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
14) Comparing a hashed password with a secret should compare unsuccessfully to anything besides original secret
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:96:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:450:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:360:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:524:in `block in run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:523:in `run_owned_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:610:in `block in run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `reverse_each'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:609:in `run_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:479:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:497:in `run_before_example'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:256:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
15) Validating a password hash should accept a valid password
Failure/Error: raise Errors::InvalidHash.new("invalid hash")
BCrypt::Errors::InvalidHash:
invalid hash
# ./lib/bcrypt/password.rb:60:in `initialize'
# ./lib/bcrypt/password.rb:46:in `new'
# ./lib/bcrypt/password.rb:46:in `create'
# ./spec/bcrypt/password_spec.rb:122:in `block (2 levels) in <top (required)>'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `instance_exec'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:257:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `block in run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:619:in `run_around_example_hooks_for'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/hooks.rb:481:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example.rb:254:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:644:in `block in run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:640:in `run_examples'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/example_group.rb:606:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `map'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/configuration.rb:2058:in `with_suite_hooks'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:74:in `report'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:45:in `invoke'
# /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec:4:in `<main>'
Finished in 0.42566 seconds (files took 0.12199 seconds to load)
35 examples, 15 failures
Failed examples:
rspec ./spec/bcrypt/engine_spec.rb:6 # BCrypt::Engine .calibrate(upper_time_limit_in_ms) a tiny upper time limit provided returns a minimum cost supported by the algorithm
rspec ./spec/bcrypt/engine_spec.rb:14 # The BCrypt engine should calculate the optimal cost factor to fit in a specific time
rspec ./spec/bcrypt/engine_spec.rb:79 # Generating BCrypt hashes should be interoperable with other implementations
rspec ./spec/bcrypt/password_spec.rb:10 # Creating a hashed password should return a BCrypt::Password
rspec ./spec/bcrypt/password_spec.rb:14 # Creating a hashed password should return a valid bcrypt password
rspec ./spec/bcrypt/password_spec.rb:18 # Creating a hashed password should behave normally if the secret is not a string
rspec ./spec/bcrypt/password_spec.rb:24 # Creating a hashed password should tolerate empty string secrets
rspec ./spec/bcrypt/password_spec.rb:43 # Reading a hashed password the cost should be set to the default if nil
rspec ./spec/bcrypt/password_spec.rb:47 # Reading a hashed password the cost should be set to the default if empty hash
rspec ./spec/bcrypt/password_spec.rb:51 # Reading a hashed password the cost should be set to the passed value if provided
rspec ./spec/bcrypt/password_spec.rb:55 # Reading a hashed password the cost should be set to the global value if set
rspec ./spec/bcrypt/password_spec.rb:62 # Reading a hashed password the cost should be set to an overridden constant for backwards compatibility
rspec ./spec/bcrypt/password_spec.rb:99 # Comparing a hashed password with a secret should compare successfully to the original secret
rspec ./spec/bcrypt/password_spec.rb:103 # Comparing a hashed password with a secret should compare unsuccessfully to anything besides original secret
rspec ./spec/bcrypt/password_spec.rb:121 # Validating a password hash should accept a valid password
/usr/bin/ruby2.7 -w -I/home/grare/adam/.gems/2.7.0/gems/rspec-support-3.9.3/lib:/home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/lib /home/grare/adam/.gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec --pattern spec/\*\*/\*_spec.rb failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment