I am adding an Ubuntu Bionic dockerfile and this distribution includes Ruby
2.5.
Xenial has 2.3.1 and Artful has 2.3.3, and both are building successfully
in Travis CI.
Under 2.5 I get these unit test failures.  Was there some sort of change in
Ruby around numeric type handling (Fixnum vs Integer)?  It looks like we
have a problem.

Failures:

  1) Struct Thrift::Struct should support optional type-checking in
Thrift::Struct.new
     Failure/Error: expect { SpecNamespace::Hello.new(:greeting => 3) }.to
raise_error(Thrift::TypeError, "Expected Types::STRING, received Fixnum for
field greeting")

       expected Thrift::TypeError with "Expected Types::STRING, received
Fixnum for field greeting", got #<Thrift::TypeError: Expected
Types::STRING, received Integer for field greeting> with backtrace:
         # ./lib/thrift/types.rb:69:in `check_type'
         # ./lib/thrift/struct.rb:42:in `block in initialize'
         # ./lib/thrift/struct.rb:38:in `each'
         # ./lib/thrift/struct.rb:38:in `initialize'
         # ./spec/struct_spec.rb:230:in `new'
         # ./spec/struct_spec.rb:230:in `block (4 levels) in <top
(required)>'
         # ./spec/struct_spec.rb:230:in `block (3 levels) in <top
(required)>'
     # ./spec/struct_spec.rb:230:in `block (3 levels) in <top (required)>'

  2) Struct Thrift::Struct should support optional type-checking in field
accessors
     Failure/Error: expect { hello.greeting = 3 }.to
raise_error(Thrift::TypeError, "Expected Types::STRING, received Fixnum for
field greeting")

       expected Thrift::TypeError with "Expected Types::STRING, received
Fixnum for field greeting", got #<Thrift::TypeError: Expected
Types::STRING, received Integer for field greeting> with backtrace:
         # ./lib/thrift/types.rb:69:in `check_type'
         # ./lib/thrift/struct.rb:157:in `block in field_accessor'
         # ./spec/struct_spec.rb:241:in `block (4 levels) in <top
(required)>'
         # ./spec/struct_spec.rb:241:in `block (3 levels) in <top
(required)>'
     # ./spec/struct_spec.rb:241:in `block (3 levels) in <top (required)>'

  3) Thrift::Types type checking should give the Thrift::TypeError a
readable message
     Failure/Error: expect { Thrift.check_type(3, {:type =>
Thrift::Types::STRING}, :foo) }.to raise_error(Thrift::TypeError, msg)

       expected Thrift::TypeError with "Expected Types::STRING, received
Fixnum for field foo", got #<Thrift::TypeError: Expected Types::STRING,
received Integer for field foo> with backtrace:
         # ./lib/thrift/types.rb:69:in `check_type'
         # ./spec/types_spec.rb:104:in `block (4 levels) in <top
(required)>'
         # ./spec/types_spec.rb:104:in `block (3 levels) in <top
(required)>'
     # ./spec/types_spec.rb:104:in `block (3 levels) in <top (required)>'

Finished in 6.34 seconds (files took 0.542 seconds to load)
445 examples, 3 failures, 1 pending

Failed examples:

rspec ./spec/struct_spec.rb:227 # Struct Thrift::Struct should support
optional type-checking in Thrift::Struct.new
rspec ./spec/struct_spec.rb:237 # Struct Thrift::Struct should support
optional type-checking in field accessors
rspec ./spec/types_spec.rb:102 # Thrift::Types type checking should give
the Thrift::TypeError a readable message

/usr/bin/ruby2.5
-I/var/lib/gems/2.5.0/gems/rspec-core-3.7.1/lib:/var/lib/gems/2.5.0/gems/rspec-support-3.7.1/lib
/var/lib/gems/2.5.0/gems/rspec-core-3.7.1/exe/rspec --pattern
spec/\*\*\{,/\*/\*\*\}/\*_spec.rb --color --format d failed
Makefile:655: recipe for target 'check-local' failed
make[1]: *** [check-local] Error 1
make[1]: Leaving directory '/thrift/src/lib/rb'

Reply via email to