Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests failing on ruby 2.2 #324

Closed
Bartuz opened this issue Sep 12, 2015 · 5 comments
Closed

Tests failing on ruby 2.2 #324

Bartuz opened this issue Sep 12, 2015 · 5 comments

Comments

@Bartuz
Copy link
Contributor

Bartuz commented Sep 12, 2015

 ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]

runing with: bundle exec rake test

not testing with Cache enabled because active_support can not be found
Skipping cache tests using ActiveSupport
Run options: --seed 23734

# Running:

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................E......E........................................................................................................................................................................................................................................................................................................................

Finished in 0.385754s, 2799.7117 runs/s, 3971.4429 assertions/s.

  1) Error:
I18nAllFeaturesApiTest#test_lookup:_it_returns_a_native_false:
RuntimeError: can't modify frozen FalseClass
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:24:in `translation_metadata'
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:47:in `interpolate'
    /Users/filip/dev/ah/lib/i18n/backend/base.rb:41:in `translate'
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:43:in `block in translate'
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:58:in `with_metadata'
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:43:in `translate'
    /Users/filip/dev/ah/lib/i18n/backend/cache.rb:66:in `translate'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:45:in `block (2 levels) in translate'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:44:in `catch'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:44:in `block in translate'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:42:in `each'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:42:in `translate'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:46:in `block (2 levels) in translate'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:44:in `catch'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:44:in `block in translate'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:43:in `each'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:43:in `translate'
    /Users/filip/dev/ah/lib/i18n.rb:158:in `block in translate'
    /Users/filip/dev/ah/lib/i18n.rb:154:in `catch'
    /Users/filip/dev/ah/lib/i18n.rb:154:in `translate'
    /Users/filip/dev/ah/lib/i18n/tests/lookup.rb:29:in `block in <module:Lookup>'


  2) Error:
I18nAllFeaturesApiTest#test_lookup:_it_returns_a_native_true:
RuntimeError: can't modify frozen TrueClass
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:24:in `translation_metadata'
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:47:in `interpolate'
    /Users/filip/dev/ah/lib/i18n/backend/base.rb:41:in `translate'
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:43:in `block in translate'
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:58:in `with_metadata'
    /Users/filip/dev/ah/lib/i18n/backend/metadata.rb:43:in `translate'
    /Users/filip/dev/ah/lib/i18n/backend/cache.rb:66:in `translate'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:45:in `block (2 levels) in translate'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:44:in `catch'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:44:in `block in translate'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:42:in `each'
    /Users/filip/dev/ah/lib/i18n/backend/fallbacks.rb:42:in `translate'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:46:in `block (2 levels) in translate'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:44:in `catch'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:44:in `block in translate'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:43:in `each'
    /Users/filip/dev/ah/lib/i18n/backend/chain.rb:43:in `translate'
    /Users/filip/dev/ah/lib/i18n.rb:158:in `block in translate'
    /Users/filip/dev/ah/lib/i18n.rb:154:in `catch'
    /Users/filip/dev/ah/lib/i18n.rb:154:in `translate'
    /Users/filip/dev/ah/lib/i18n/tests/lookup.rb:25:in `block in <module:Lookup>'

1080 runs, 1532 assertions, 0 failures, 2 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -w -I"lib:lib:test" -I"/Users/filip/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0" "/Users/filip/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rake/rake_test_loader.rb" "test/**/*_test.rb" ]
/Users/filip/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
/Users/filip/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => test
(See full trace by running task with --trace)
Bartuz referenced this issue Sep 18, 2015
Signed-off-by: José Valim <jose.valim@gmail.com>
@Bartuz
Copy link
Contributor Author

Bartuz commented Sep 18, 2015

It happens because these methods: https://github.com/svenfuchs/i18n/blob/master/lib/i18n/backend/metadata.rb#L22-L30 try to modify instance variable inside true/false class which are frozen (https://bugs.ruby-lang.org/issues/8923)

These setters and getters are initialised called here: https://github.com/svenfuchs/i18n/blob/master/lib/i18n/backend/metadata.rb#L47

I'm just curious why it doesn't fail on other frozen classes like Fixnum or Symbol.
^ #edit - Because this method is never called with symbol/fixnum class :) I decided to wrote tests for both Fixnum and Symbol and surprisingly Symbol (which is frozen) passes but Fixnum raises can't modify frozen Fixnum

For debugging purposes I prepended binding.pry if entry == true || false in https://github.com/svenfuchs/i18n/blob/master/lib/i18n/backend/metadata.rb#L47 .

Maybe these true/false tests are useless? I'm not quite sure what functionality they really test. 73dc34b#diff-c97f106685f92dbd8a677b3e77b1b1b4R25

@atzorvas
Copy link
Contributor

is there any update on this one?

@Bartuz
Copy link
Contributor Author

Bartuz commented Feb 10, 2016

Haven't touched this since last post

@atzorvas
Copy link
Contributor

#310 is relevant
#305 solve this (not quite sure about the implementation though nor the side-effects of it), but it's not merged yet.

@radar
Copy link
Collaborator

radar commented Nov 1, 2016

#305 has been merged into master, and it solves this issue. Thanks everyone for reporting it!

@radar radar closed this as completed Nov 1, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants