You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King, III (JIRA)" <ji...@apache.org> on 2018/03/22 00:55:00 UTC
[jira] [Assigned] (THRIFT-4342) Support ruby rspec 3
[ https://issues.apache.org/jira/browse/THRIFT-4342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James E. King, III reassigned THRIFT-4342:
------------------------------------------
Assignee: James E. King, III
> 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
>
> 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)