[ https://issues.apache.org/jira/browse/THRIFT-4342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James E. King, III resolved THRIFT-4342. ---------------------------------------- Resolution: Fixed Fix Version/s: 0.12.0 > Support ruby rspec 3 > -------------------- > > Key: THRIFT-4342 > URL: https://issues.apache.org/jira/browse/THRIFT-4342 > Project: Thrift > Issue Type: Improvement > Components: Ruby - Library > Affects Versions: 0.10.0 > Environment: docker ubuntu-xenial (ruby 2.3.1) > Reporter: James E. King, III > Assignee: James E. King, III > Priority: Major > Fix For: 0.12.0 > > > I don't know much about ruby. Anybody who can assist is welcome to do so! I > tried to update us to rspec 2.99.x to prepare for rspec 3 and got a lot of > errors. We should be running the latest versions of test tools in > thrift.gemspec. Also note the apache license in the gemspec is not quite > right... > {noformat} > Pending: > Client Thrift::Client should increment the sequence id when sending messages > # it seems sequence ids are completely ignored right now > # ./spec/client_spec.rb:55 > Failures: > 1) BinaryProtocolAccelerated it should behave like a binary protocol should > write a byte > Failure/Error: @trans.rspec_verify > NoMethodError: > undefined method `rspec_verify' for > #<Thrift::MemoryBufferTransport:0x00000000869c28> > Shared Example Group: "a binary protocol" called from > ./spec/binary_protocol_accelerated_spec.rb:28 > # ./spec/binary_protocol_spec_shared.rb:112:in `block (2 levels) in <top > (required)>' > 2) BinaryProtocol it should behave like a binary protocol should write a > byte > Failure/Error: @trans.rspec_verify > NoMethodError: > undefined method `rspec_verify' for > #<Thrift::MemoryBufferTransport:0x000000022165b8> > Shared Example Group: "a binary protocol" called from > ./spec/binary_protocol_spec.rb:25 > # ./spec/binary_protocol_spec_shared.rb:112:in `block (2 levels) in <top > (required)>' > Deprecation Warnings: > -------------------------------------------------------------------------------- > The semantics of `RSpec::Core::Pending#pending` are changing in > RSpec 3. In RSpec 2.x, it caused the example to be skipped. In > RSpec 3, the rest of the example will still be run but is expected > to fail, and will be marked as a failure (rather than as pending) > if the example passes. > Any passed block will no longer be executed. This feature is being > removed since it was semantically inconsistent, and the behaviour it > offered is being made available with the other ways of marking an > example pending. > To keep the same skip semantics, change `pending` to `skip`. > Otherwise, if you want the new RSpec 3 behavior, you can safely > ignore this warning and continue to upgrade to RSpec 3 without > addressing it. > Called from /thrift/src/lib/rb/spec/client_spec.rb:56:in `block (3 levels) in > <top (required)>'. > -------------------------------------------------------------------------------- > `and_return { value }` is deprecated. Use `and_return(value)` or an > implementation block without `and_return` instead. Called from > /thrift/src/lib/rb/spec/client_spec.rb:79:in `block (3 levels) in <top > (required)>'. > `and_return { value }` is deprecated. Use `and_return(value)` or an > implementation block without `and_return` instead. Called from > /thrift/src/lib/rb/spec/http_client_spec.rb:38:in `block (3 levels) in <top > (required)>'. > `and_return { value }` is deprecated. Use `and_return(value)` or an > implementation block without `and_return` instead. Called from > /thrift/src/lib/rb/spec/http_client_spec.rb:41:in `block (5 levels) in <top > (required)>'. > Too many uses of deprecated '`and_return { value }`'. Pass > `--deprecation-out` or set `config.deprecation_stream` to a file for full > output. > `be_false` is deprecated. Use `be_falsey` (for Ruby's conditional semantics) > or `be false` (for exact `== false` equality) instead. Called from > /thrift/src/lib/rb/spec/base_transport_spec.rb:279:in `block (3 levels) in > <top (required)>'. > `be_false` is deprecated. Use `be_falsey` (for Ruby's conditional semantics) > or `be false` (for exact `== false` equality) instead. Called from > /thrift/src/lib/rb/spec/struct_spec.rb:63:in `block (3 levels) in <top > (required)>'. > `be_false` is deprecated. Use `be_falsey` (for Ruby's conditional semantics) > or `be false` (for exact `== false` equality) instead. Called from > /thrift/src/lib/rb/spec/struct_spec.rb:83:in `block (3 levels) in <top > (required)>'. > Too many uses of deprecated '`be_false`'. Pass `--deprecation-out` or set > `config.deprecation_stream` to a file for full output. > `be_true` is deprecated. Use `be_truthy` (for Ruby's conditional semantics) > or `be true` (for exact `== true` equality) instead. Called from > /thrift/src/lib/rb/spec/base_transport_spec.rb:44:in `block (4 levels) in > <top (required)>'. > `be_true` is deprecated. Use `be_truthy` (for Ruby's conditional semantics) > or `be true` (for exact `== true` equality) instead. Called from > /thrift/src/lib/rb/spec/base_transport_spec.rb:56:in `block (4 levels) in > <top (required)>'. > `be_true` is deprecated. Use `be_truthy` (for Ruby's conditional semantics) > or `be true` (for exact `== true` equality) instead. Called from > /thrift/src/lib/rb/spec/base_transport_spec.rb:273:in `block (3 levels) in > <top (required)>'. > Too many uses of deprecated '`be_true`'. Pass `--deprecation-out` or set > `config.deprecation_stream` to a file for full output. > `expect { }.not_to raise_error(SpecificErrorClass)` is deprecated. Use > `expect { }.not_to raise_error` (with no args) instead. Called from > /thrift/src/lib/rb/spec/struct_spec.rb:234:in `block (3 levels) in <top > (required)>'. > `expect { }.not_to raise_error(SpecificErrorClass)` is deprecated. Use > `expect { }.not_to raise_error` (with no args) instead. Called from > /thrift/src/lib/rb/spec/struct_spec.rb:245:in `block (3 levels) in <top > (required)>'. > `expect { }.not_to raise_error(SpecificErrorClass)` is deprecated. Use > `expect { }.not_to raise_error` (with no args) instead. Called from > /thrift/src/lib/rb/spec/types_spec.rb:43:in `block (3 levels) in <top > (required)>'. > Too many uses of deprecated '`expect { }.not_to > raise_error(SpecificErrorClass)`'. Pass `--deprecation-out` or set > `config.deprecation_stream` to a file for full output. > `expect { }.not_to raise_error(SpecificErrorClass, message)` is deprecated. > Use `expect { }.not_to raise_error` (with no args) instead. Called from > /thrift/src/lib/rb/spec/union_spec.rb:137:in `block (3 levels) in <top > (required)>'. > `expect { }.not_to raise_error(SpecificErrorClass, message)` is deprecated. > Use `expect { }.not_to raise_error` (with no args) instead. Called from > /thrift/src/lib/rb/spec/union_spec.rb:146:in `block (3 levels) in <top > (required)>'. > any_number_of_times is deprecated. Use stub instead. Called from > /thrift/src/lib/rb/spec/socket_spec_shared.rb:101:in `block (2 levels) in > <top (required)>'. > mock is deprecated. Use double instead. Called from > /thrift/src/lib/rb/spec/base_protocol_spec.rb:25:in `block (2 levels) in <top > (required)>'. > mock is deprecated. Use double instead. Called from > /thrift/src/lib/rb/spec/base_protocol_spec.rb:58:in `block (3 levels) in <top > (required)>'. > mock is deprecated. Use double instead. Called from > /thrift/src/lib/rb/spec/base_protocol_spec.rb:83:in `block (3 levels) in <top > (required)>'. > Too many uses of deprecated 'mock'. Pass `--deprecation-out` or set > `config.deprecation_stream` to a file for full output. > stub is deprecated. Use double instead. Called from > /thrift/src/lib/rb/spec/client_spec.rb:51:in `block (3 levels) in <top > (required)>'. > stub is deprecated. Use double instead. Called from > /thrift/src/lib/rb/spec/client_spec.rb:73:in `block (3 levels) in <top > (required)>'. > stub! is deprecated. Use stub instead. Called from > /thrift/src/lib/rb/spec/base_transport_spec.rb:109:in `block (3 levels) in > <top (required)>'. > stub! is deprecated. Use stub instead. Called from > /thrift/src/lib/rb/spec/base_transport_spec.rb:216:in `block (3 levels) in > <top (required)>'. > stub! is deprecated. Use stub instead. Called from > /thrift/src/lib/rb/spec/base_transport_spec.rb:235:in `block (3 levels) in > <top (required)>'. > Too many uses of deprecated 'stub!'. Pass `--deprecation-out` or set > `config.deprecation_stream` to a file for full output. > If you need more of the backtrace for any of these deprecations to > identify where to make the necessary changes, you can configure > `config.raise_errors_for_deprecations!`, and it will turn the > deprecation warnings into errors, giving you the full backtrace. > 205 deprecation warnings total > Finished in 4.28 seconds > 411 examples, 2 failures, 1 pending > Failed examples: > rspec ./spec/binary_protocol_spec_shared.rb:105 # BinaryProtocolAccelerated > it should behave like a binary protocol should write a byte > rspec ./spec/binary_protocol_spec_shared.rb:105 # BinaryProtocol it should > behave like a binary protocol should write a byte > /usr/bin/ruby2.3 -S rspec ./spec/base_protocol_spec.rb > ./spec/base_transport_spec.rb ./spec/binary_protocol_accelerated_spec.rb > ./spec/binary_protocol_spec.rb ./spec/bytes_spec.rb ./spec/client_spec.rb > ./spec/compact_protocol_spec.rb ./spec/exception_spec.rb ./spec/flat_spec.rb > ./spec/http_client_spec.rb ./spec/json_protocol_spec.rb > ./spec/namespaced_spec.rb ./spec/nonblocking_server_spec.rb > ./spec/processor_spec.rb ./spec/serializer_spec.rb > ./spec/server_socket_spec.rb ./spec/server_spec.rb ./spec/socket_spec.rb > ./spec/ssl_socket_spec.rb ./spec/struct_nested_containers_spec.rb > ./spec/struct_spec.rb ./spec/thin_http_server_spec.rb ./spec/types_spec.rb > ./spec/union_spec.rb ./spec/unix_socket_spec.rb --color --format d failed > Makefile:652: recipe for target 'check-local' failed > make[1]: *** [check-local] Error 1 > make[1]: Leaving directory '/thrift/src/lib/rb' > Makefile:512: recipe for target 'check-am' failed > make: *** [check-am] Error 2 > {noformat} > I tried this: > {noformat} > jking@ubuntu:~/thrift/github/thrift/lib/rb$ git diff HEAD > diff --git a/lib/rb/thrift.gemspec b/lib/rb/thrift.gemspec > index 166a93f2..f936e529 100644 > --- a/lib/rb/thrift.gemspec > +++ b/lib/rb/thrift.gemspec > @@ -9,7 +9,7 @@ Gem::Specification.new do |s| > s.homepage = 'http://thrift.apache.org' > s.summary = %q{Ruby bindings for Apache Thrift} > s.description = %q{Ruby bindings for the Apache Thrift RPC system} > - s.license = 'Apache 2.0' > + s.license = 'Apache-2.0' > s.extensions = ['ext/extconf.rb'] > > s.has_rdoc = true > @@ -28,10 +28,10 @@ Gem::Specification.new do |s| > s.require_paths = %w[lib ext] > > - s.add_development_dependency 'rspec', ['~> 2.10.0', '< 2.14.0'] > - s.add_development_dependency "rack", "~> 1.5" > - s.add_development_dependency "rack-test", "~> 0.6" > - s.add_development_dependency "thin", "~> 1.5" > - s.add_development_dependency "bundler", "~> 1" > + s.add_development_dependency 'rspec', '~> 2.14.0' > + s.add_development_dependency "rack", "~> 2.0.3" > + s.add_development_dependency "rack-test", "~> 0.7" > + s.add_development_dependency "thin", "~> 1.7.2" > + s.add_development_dependency "bundler", "~> 1.15.4" > s.add_development_dependency 'rake', '~> 10.5' > end > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)