James E. King, III created THRIFT-4342:
------------------------------------------

             Summary: 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


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
(v6.4.14#64029)

Reply via email to