Details
-
Test
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
1.7.6
-
None
-
None
Description
The following unit test fails when run with Ruby 2.0 and above:
$ bundle exec rake test /Users/mkleppma/.rubies/ruby-2.0.0-p195/bin/ruby -I"lib:ext:bin:test" -I"/Users/mkleppma/.gem/ruby/2.0.0/gems/rake-10.3.1/lib" "/Users/mkleppma/.gem/ruby/2.0.0/gems/rake-10.3.1/lib/rake/rake_test_loader.rb" "test/test_datafile.rb" "test/test_help.rb" "test/test_io.rb" "test/test_protocol.rb" "test/test_schema.rb" "test/test_socket_transport.rb" Run options: # Running tests: [30/41] TestIO#test_union = 0.00 s 1) Failure: test_union(TestIO) [/Users/mkleppma/Applications/avro/lang/ruby/test/test_io.rb:339]: <-3372032630846393039> expected but was <-3.372032630846393e+18>. Finished tests in 0.346139s, 118.4495 tests/s, 2207.2058 assertions/s. 41 tests, 764 assertions, 1 failures, 0 errors, 0 skips ruby -v: ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0] rake aborted! Command failed with status (1): [ruby -I"lib:ext:bin:test" -I"/Users/mkleppma/.gem/ruby/2.0.0/gems/rake-10.3.1/lib" "/Users/mkleppma/.gem/ruby/2.0.0/gems/rake-10.3.1/lib/rake/rake_test_loader.rb" "test/test_datafile.rb" "test/test_help.rb" "test/test_io.rb" "test/test_protocol.rb" "test/test_schema.rb" "test/test_socket_transport.rb" ] /Users/mkleppma/.gem/ruby/2.0.0/gems/echoe-4.6.5/lib/echoe.rb:749:in `block in define_tasks' Tasks: TOP => test_inner (See full trace by running task with --trace)
Brief investigation suggests that this isn't a bug in Avro, but just a badly written test. The test is comparing -3372032630846393039 and -3372032630846393000.0, which Ruby 1.9 and below consider to be equal, but Ruby 2.0 and above consider to be non-equal.
Our tests shouldn't be relying on such edge cases of type coercion.
Attachments
Issue Links
- duplicates
-
AVRO-1688 Ruby test_union(TestIO) is failing
- Closed