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/23 19:18:00 UTC

[jira] [Resolved] (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 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)