grpc 0.13.1-x86-mingw32 → 0.14.1.pre1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
 - data/grpc_c.32.ruby +0 -0
 - data/grpc_c.64.ruby +0 -0
 - data/src/ruby/ext/grpc/extconf.rb +14 -20
 - data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -3
 - data/src/ruby/ext/grpc/rb_call.c +37 -4
 - data/src/ruby/ext/grpc/rb_call_credentials.c +13 -3
 - data/src/ruby/ext/grpc/rb_channel.c +2 -3
 - data/src/ruby/ext/grpc/rb_channel_args.c +2 -3
 - data/src/ruby/ext/grpc/rb_channel_credentials.c +31 -3
 - data/src/ruby/ext/grpc/rb_completion_queue.c +2 -2
 - data/src/ruby/ext/grpc/rb_event_thread.c +1 -1
 - data/src/ruby/ext/grpc/rb_grpc.c +4 -2
 - data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +8 -0
 - data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +14 -2
 - data/src/ruby/ext/grpc/rb_server.c +2 -3
 - data/src/ruby/ext/grpc/rb_server_credentials.c +16 -13
 - data/src/ruby/ext/grpc/rb_signal.c +70 -0
 - data/src/ruby/ext/grpc/rb_signal.h +39 -0
 - data/src/ruby/lib/grpc.rb +21 -13
 - data/src/ruby/lib/grpc/2.0/grpc_c.so +0 -0
 - data/src/ruby/lib/grpc/2.1/grpc_c.so +0 -0
 - data/src/ruby/lib/grpc/2.2/grpc_c.so +0 -0
 - data/src/ruby/lib/grpc/2.3/grpc_c.so +0 -0
 - data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
 - data/src/ruby/lib/grpc/errors.rb +2 -2
 - data/src/ruby/lib/grpc/generic/active_call.rb +10 -3
 - data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -2
 - data/src/ruby/lib/grpc/generic/client_stub.rb +10 -7
 - data/src/ruby/lib/grpc/generic/rpc_desc.rb +2 -2
 - data/src/ruby/lib/grpc/generic/rpc_server.rb +21 -61
 - data/src/ruby/lib/grpc/generic/service.rb +5 -15
 - data/src/ruby/lib/grpc/grpc.rb +3 -3
 - data/src/ruby/lib/grpc/grpc_c.so +0 -0
 - data/src/ruby/{bin/interop/interop_client.rb → lib/grpc/signals.rb} +39 -21
 - data/src/ruby/lib/grpc/version.rb +2 -2
 - data/src/ruby/pb/generate_proto_ruby.sh +9 -2
 - data/src/ruby/pb/grpc/health/checker.rb +1 -1
 - data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb +28 -0
 - data/src/ruby/pb/grpc/testing/metrics.rb +28 -0
 - data/src/ruby/pb/grpc/testing/metrics_services.rb +27 -0
 - data/src/ruby/pb/test/client.rb +12 -23
 - data/src/ruby/pb/test/server.rb +1 -1
 - data/src/ruby/spec/client_server_spec.rb +1 -1
 - data/src/ruby/spec/generic/client_stub_spec.rb +18 -17
 - data/src/ruby/spec/generic/rpc_server_spec.rb +23 -7
 - data/src/ruby/spec/generic/service_spec.rb +0 -69
 - data/src/ruby/{bin/interop/interop_server.rb → spec/pb/duplicate/codegen_spec.rb} +41 -20
 - data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
 - metadata +27 -15
 - data/src/ruby/bin/grpc_ruby_interop_client +0 -33
 - data/src/ruby/bin/grpc_ruby_interop_server +0 -33
 
    
        data/src/ruby/pb/test/server.rb
    CHANGED
    
    | 
         @@ -39,7 +39,7 @@ 
     | 
|
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
            this_dir = File.expand_path(File.dirname(__FILE__))
         
     | 
| 
       41 
41 
     | 
    
         
             
            lib_dir = File.join(File.dirname(File.dirname(this_dir)), 'lib')
         
     | 
| 
       42 
     | 
    
         
            -
            pb_dir = File.dirname( 
     | 
| 
      
 42 
     | 
    
         
            +
            pb_dir = File.dirname(this_dir)
         
     | 
| 
       43 
43 
     | 
    
         
             
            $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
         
     | 
| 
       44 
44 
     | 
    
         
             
            $LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir)
         
     | 
| 
       45 
45 
     | 
    
         
             
            $LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
         
     | 
| 
         @@ -193,44 +193,45 @@ describe 'ClientStub' do 
     | 
|
| 
       193 
193 
     | 
    
         
             
              describe '#client_streamer' do
         
     | 
| 
       194 
194 
     | 
    
         
             
                shared_examples 'client streaming' do
         
     | 
| 
       195 
195 
     | 
    
         
             
                  before(:each) do
         
     | 
| 
      
 196 
     | 
    
         
            +
                    server_port = create_test_server
         
     | 
| 
      
 197 
     | 
    
         
            +
                    host = "localhost:#{server_port}"
         
     | 
| 
      
 198 
     | 
    
         
            +
                    @stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure)
         
     | 
| 
      
 199 
     | 
    
         
            +
                    @options = { k1: 'v1', k2: 'v2' }
         
     | 
| 
       196 
200 
     | 
    
         
             
                    @sent_msgs = Array.new(3) { |i| 'msg_' + (i + 1).to_s }
         
     | 
| 
       197 
201 
     | 
    
         
             
                    @resp = 'a_reply'
         
     | 
| 
       198 
202 
     | 
    
         
             
                  end
         
     | 
| 
       199 
203 
     | 
    
         | 
| 
       200 
204 
     | 
    
         
             
                  it 'should send requests to/receive a reply from a server' do
         
     | 
| 
       201 
     | 
    
         
            -
                    server_port = create_test_server
         
     | 
| 
       202 
     | 
    
         
            -
                    host = "localhost:#{server_port}"
         
     | 
| 
       203 
205 
     | 
    
         
             
                    th = run_client_streamer(@sent_msgs, @resp, @pass)
         
     | 
| 
       204 
     | 
    
         
            -
                    stub  
     | 
| 
       205 
     | 
    
         
            -
                    expect(get_response(stub)).to eq(@resp)
         
     | 
| 
      
 206 
     | 
    
         
            +
                    expect(get_response(@stub)).to eq(@resp)
         
     | 
| 
       206 
207 
     | 
    
         
             
                    th.join
         
     | 
| 
       207 
208 
     | 
    
         
             
                  end
         
     | 
| 
       208 
209 
     | 
    
         | 
| 
       209 
210 
     | 
    
         
             
                  it 'should send metadata to the server ok' do
         
     | 
| 
       210 
     | 
    
         
            -
                     
     | 
| 
       211 
     | 
    
         
            -
                     
     | 
| 
       212 
     | 
    
         
            -
                    th = run_client_streamer(@sent_msgs, @resp, @pass,
         
     | 
| 
       213 
     | 
    
         
            -
                                             k1: 'v1', k2: 'v2')
         
     | 
| 
       214 
     | 
    
         
            -
                    stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure)
         
     | 
| 
       215 
     | 
    
         
            -
                    expect(get_response(stub)).to eq(@resp)
         
     | 
| 
      
 211 
     | 
    
         
            +
                    th = run_client_streamer(@sent_msgs, @resp, @pass, @options)
         
     | 
| 
      
 212 
     | 
    
         
            +
                    expect(get_response(@stub)).to eq(@resp)
         
     | 
| 
       216 
213 
     | 
    
         
             
                    th.join
         
     | 
| 
       217 
214 
     | 
    
         
             
                  end
         
     | 
| 
       218 
215 
     | 
    
         | 
| 
       219 
216 
     | 
    
         
             
                  it 'should raise an error if the status is not ok' do
         
     | 
| 
       220 
     | 
    
         
            -
                    server_port = create_test_server
         
     | 
| 
       221 
     | 
    
         
            -
                    host = "localhost:#{server_port}"
         
     | 
| 
       222 
217 
     | 
    
         
             
                    th = run_client_streamer(@sent_msgs, @resp, @fail)
         
     | 
| 
       223 
     | 
    
         
            -
                     
     | 
| 
       224 
     | 
    
         
            -
                    blk = proc { get_response(stub) }
         
     | 
| 
      
 218 
     | 
    
         
            +
                    blk = proc { get_response(@stub) }
         
     | 
| 
       225 
219 
     | 
    
         
             
                    expect(&blk).to raise_error(GRPC::BadStatus)
         
     | 
| 
       226 
220 
     | 
    
         
             
                    th.join
         
     | 
| 
       227 
221 
     | 
    
         
             
                  end
         
     | 
| 
      
 222 
     | 
    
         
            +
             
     | 
| 
      
 223 
     | 
    
         
            +
                  it 'should raise ArgumentError if metadata contains invalid values' do
         
     | 
| 
      
 224 
     | 
    
         
            +
                    @options.merge!(k3: 3)
         
     | 
| 
      
 225 
     | 
    
         
            +
                    expect do
         
     | 
| 
      
 226 
     | 
    
         
            +
                      get_response(@stub)
         
     | 
| 
      
 227 
     | 
    
         
            +
                    end.to raise_error(ArgumentError,
         
     | 
| 
      
 228 
     | 
    
         
            +
                                       /Header values must be of type string or array/)
         
     | 
| 
      
 229 
     | 
    
         
            +
                  end
         
     | 
| 
       228 
230 
     | 
    
         
             
                end
         
     | 
| 
       229 
231 
     | 
    
         | 
| 
       230 
232 
     | 
    
         
             
                describe 'without a call operation' do
         
     | 
| 
       231 
233 
     | 
    
         
             
                  def get_response(stub)
         
     | 
| 
       232 
     | 
    
         
            -
                    stub.client_streamer(@method, @sent_msgs, noop, noop,
         
     | 
| 
       233 
     | 
    
         
            -
                                         k1: 'v1', k2: 'v2')
         
     | 
| 
      
 234 
     | 
    
         
            +
                    stub.client_streamer(@method, @sent_msgs, noop, noop, @options)
         
     | 
| 
       234 
235 
     | 
    
         
             
                  end
         
     | 
| 
       235 
236 
     | 
    
         | 
| 
       236 
237 
     | 
    
         
             
                  it_behaves_like 'client streaming'
         
     | 
| 
         @@ -239,7 +240,7 @@ describe 'ClientStub' do 
     | 
|
| 
       239 
240 
     | 
    
         
             
                describe 'via a call operation' do
         
     | 
| 
       240 
241 
     | 
    
         
             
                  def get_response(stub)
         
     | 
| 
       241 
242 
     | 
    
         
             
                    op = stub.client_streamer(@method, @sent_msgs, noop, noop,
         
     | 
| 
       242 
     | 
    
         
            -
                                              return_op: true 
     | 
| 
      
 243 
     | 
    
         
            +
                                              @options.merge(return_op: true))
         
     | 
| 
       243 
244 
     | 
    
         
             
                    expect(op).to be_a(GRPC::ActiveCall::Operation)
         
     | 
| 
       244 
245 
     | 
    
         
             
                    op.execute
         
     | 
| 
       245 
246 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Copyright 2015 
     | 
| 
      
 1 
     | 
    
         
            +
            # Copyright 2015, Google Inc.
         
     | 
| 
       2 
2 
     | 
    
         
             
            # All rights reserved.
         
     | 
| 
       3 
3 
     | 
    
         
             
            #
         
     | 
| 
       4 
4 
     | 
    
         
             
            # Redistribution and use in source and binary forms, with or without
         
     | 
| 
         @@ -308,10 +308,6 @@ describe GRPC::RpcServer do 
     | 
|
| 
       308 
308 
     | 
    
         
             
                  expect { @srv.handle(EmptyService) }.to raise_error
         
     | 
| 
       309 
309 
     | 
    
         
             
                end
         
     | 
| 
       310 
310 
     | 
    
         | 
| 
       311 
     | 
    
         
            -
                it 'raises if the service does not define its rpc methods' do
         
     | 
| 
       312 
     | 
    
         
            -
                  expect { @srv.handle(NoRpcImplementation) }.to raise_error
         
     | 
| 
       313 
     | 
    
         
            -
                end
         
     | 
| 
       314 
     | 
    
         
            -
             
     | 
| 
       315 
311 
     | 
    
         
             
                it 'raises if a handler method is already registered' do
         
     | 
| 
       316 
312 
     | 
    
         
             
                  @srv.handle(EchoService)
         
     | 
| 
       317 
313 
     | 
    
         
             
                  expect { r.handle(EchoService) }.to raise_error
         
     | 
| 
         @@ -349,6 +345,25 @@ describe GRPC::RpcServer do 
     | 
|
| 
       349 
345 
     | 
    
         
             
                    t.join
         
     | 
| 
       350 
346 
     | 
    
         
             
                  end
         
     | 
| 
       351 
347 
     | 
    
         | 
| 
      
 348 
     | 
    
         
            +
                  it 'should return UNIMPLEMENTED on unimplemented methods', server: true do
         
     | 
| 
      
 349 
     | 
    
         
            +
                    @srv.handle(NoRpcImplementation)
         
     | 
| 
      
 350 
     | 
    
         
            +
                    t = Thread.new { @srv.run }
         
     | 
| 
      
 351 
     | 
    
         
            +
                    @srv.wait_till_running
         
     | 
| 
      
 352 
     | 
    
         
            +
                    req = EchoMsg.new
         
     | 
| 
      
 353 
     | 
    
         
            +
                    blk = proc do
         
     | 
| 
      
 354 
     | 
    
         
            +
                      cq = GRPC::Core::CompletionQueue.new
         
     | 
| 
      
 355 
     | 
    
         
            +
                      stub = GRPC::ClientStub.new(@host, cq, :this_channel_is_insecure,
         
     | 
| 
      
 356 
     | 
    
         
            +
                                                  **client_opts)
         
     | 
| 
      
 357 
     | 
    
         
            +
                      stub.request_response('/an_rpc', req, marshal, unmarshal)
         
     | 
| 
      
 358 
     | 
    
         
            +
                    end
         
     | 
| 
      
 359 
     | 
    
         
            +
                    expect(&blk).to raise_error do |error|
         
     | 
| 
      
 360 
     | 
    
         
            +
                      expect(error).to be_a(GRPC::BadStatus)
         
     | 
| 
      
 361 
     | 
    
         
            +
                      expect(error.code).to be(GRPC::Core::StatusCodes::UNIMPLEMENTED)
         
     | 
| 
      
 362 
     | 
    
         
            +
                    end
         
     | 
| 
      
 363 
     | 
    
         
            +
                    @srv.stop
         
     | 
| 
      
 364 
     | 
    
         
            +
                    t.join
         
     | 
| 
      
 365 
     | 
    
         
            +
                  end
         
     | 
| 
      
 366 
     | 
    
         
            +
             
     | 
| 
       352 
367 
     | 
    
         
             
                  it 'should handle multiple sequential requests', server: true do
         
     | 
| 
       353 
368 
     | 
    
         
             
                    @srv.handle(EchoService)
         
     | 
| 
       354 
369 
     | 
    
         
             
                    t = Thread.new { @srv.run }
         
     | 
| 
         @@ -426,7 +441,7 @@ describe GRPC::RpcServer do 
     | 
|
| 
       426 
441 
     | 
    
         
             
                    threads.each(&:join)
         
     | 
| 
       427 
442 
     | 
    
         
             
                  end
         
     | 
| 
       428 
443 
     | 
    
         | 
| 
       429 
     | 
    
         
            -
                  it 'should return  
     | 
| 
      
 444 
     | 
    
         
            +
                  it 'should return RESOURCE_EXHAUSTED on too many jobs', server: true do
         
     | 
| 
       430 
445 
     | 
    
         
             
                    opts = {
         
     | 
| 
       431 
446 
     | 
    
         
             
                      a_channel_arg: 'an_arg',
         
     | 
| 
       432 
447 
     | 
    
         
             
                      server_override: @server,
         
     | 
| 
         @@ -449,7 +464,8 @@ describe GRPC::RpcServer do 
     | 
|
| 
       449 
464 
     | 
    
         
             
                        begin
         
     | 
| 
       450 
465 
     | 
    
         
             
                          stub.an_rpc(req)
         
     | 
| 
       451 
466 
     | 
    
         
             
                        rescue GRPC::BadStatus => e
         
     | 
| 
       452 
     | 
    
         
            -
                          one_failed_as_unavailable = 
     | 
| 
      
 467 
     | 
    
         
            +
                          one_failed_as_unavailable =
         
     | 
| 
      
 468 
     | 
    
         
            +
                            e.code == StatusCodes::RESOURCE_EXHAUSTED
         
     | 
| 
       453 
469 
     | 
    
         
             
                        end
         
     | 
| 
       454 
470 
     | 
    
         
             
                      end
         
     | 
| 
       455 
471 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -273,73 +273,4 @@ describe GenericService do 
     | 
|
| 
       273 
273 
     | 
    
         
             
                  end
         
     | 
| 
       274 
274 
     | 
    
         
             
                end
         
     | 
| 
       275 
275 
     | 
    
         
             
              end
         
     | 
| 
       276 
     | 
    
         
            -
             
     | 
| 
       277 
     | 
    
         
            -
              describe '#assert_rpc_descs_have_methods' do
         
     | 
| 
       278 
     | 
    
         
            -
                it 'fails if there is no instance method for an rpc descriptor' do
         
     | 
| 
       279 
     | 
    
         
            -
                  c1 = Class.new do
         
     | 
| 
       280 
     | 
    
         
            -
                    include GenericService
         
     | 
| 
       281 
     | 
    
         
            -
                    rpc :AnRpc, GoodMsg, GoodMsg
         
     | 
| 
       282 
     | 
    
         
            -
                  end
         
     | 
| 
       283 
     | 
    
         
            -
                  expect { c1.assert_rpc_descs_have_methods }.to raise_error
         
     | 
| 
       284 
     | 
    
         
            -
             
     | 
| 
       285 
     | 
    
         
            -
                  c2 = Class.new do
         
     | 
| 
       286 
     | 
    
         
            -
                    include GenericService
         
     | 
| 
       287 
     | 
    
         
            -
                    rpc :AnRpc, GoodMsg, GoodMsg
         
     | 
| 
       288 
     | 
    
         
            -
                    rpc :AnotherRpc, GoodMsg, GoodMsg
         
     | 
| 
       289 
     | 
    
         
            -
             
     | 
| 
       290 
     | 
    
         
            -
                    def an_rpc
         
     | 
| 
       291 
     | 
    
         
            -
                    end
         
     | 
| 
       292 
     | 
    
         
            -
                  end
         
     | 
| 
       293 
     | 
    
         
            -
                  expect { c2.assert_rpc_descs_have_methods }.to raise_error
         
     | 
| 
       294 
     | 
    
         
            -
                end
         
     | 
| 
       295 
     | 
    
         
            -
             
     | 
| 
       296 
     | 
    
         
            -
                it 'passes if there are corresponding methods for each descriptor' do
         
     | 
| 
       297 
     | 
    
         
            -
                  c = Class.new do
         
     | 
| 
       298 
     | 
    
         
            -
                    include GenericService
         
     | 
| 
       299 
     | 
    
         
            -
                    rpc :AnRpc, GoodMsg, GoodMsg
         
     | 
| 
       300 
     | 
    
         
            -
                    rpc :AServerStreamer, GoodMsg, stream(GoodMsg)
         
     | 
| 
       301 
     | 
    
         
            -
                    rpc :AClientStreamer, stream(GoodMsg), GoodMsg
         
     | 
| 
       302 
     | 
    
         
            -
                    rpc :ABidiStreamer, stream(GoodMsg), stream(GoodMsg)
         
     | 
| 
       303 
     | 
    
         
            -
             
     | 
| 
       304 
     | 
    
         
            -
                    def an_rpc(_req, _call)
         
     | 
| 
       305 
     | 
    
         
            -
                    end
         
     | 
| 
       306 
     | 
    
         
            -
             
     | 
| 
       307 
     | 
    
         
            -
                    def a_server_streamer(_req, _call)
         
     | 
| 
       308 
     | 
    
         
            -
                    end
         
     | 
| 
       309 
     | 
    
         
            -
             
     | 
| 
       310 
     | 
    
         
            -
                    def a_client_streamer(_call)
         
     | 
| 
       311 
     | 
    
         
            -
                    end
         
     | 
| 
       312 
     | 
    
         
            -
             
     | 
| 
       313 
     | 
    
         
            -
                    def a_bidi_streamer(_call)
         
     | 
| 
       314 
     | 
    
         
            -
                    end
         
     | 
| 
       315 
     | 
    
         
            -
                  end
         
     | 
| 
       316 
     | 
    
         
            -
                  expect { c.assert_rpc_descs_have_methods }.to_not raise_error
         
     | 
| 
       317 
     | 
    
         
            -
                end
         
     | 
| 
       318 
     | 
    
         
            -
             
     | 
| 
       319 
     | 
    
         
            -
                it 'passes for subclasses of that include GenericService' do
         
     | 
| 
       320 
     | 
    
         
            -
                  base = Class.new do
         
     | 
| 
       321 
     | 
    
         
            -
                    include GenericService
         
     | 
| 
       322 
     | 
    
         
            -
                    rpc :AnRpc, GoodMsg, GoodMsg
         
     | 
| 
       323 
     | 
    
         
            -
             
     | 
| 
       324 
     | 
    
         
            -
                    def an_rpc(_req, _call)
         
     | 
| 
       325 
     | 
    
         
            -
                    end
         
     | 
| 
       326 
     | 
    
         
            -
                  end
         
     | 
| 
       327 
     | 
    
         
            -
                  c = Class.new(base)
         
     | 
| 
       328 
     | 
    
         
            -
                  expect { c.assert_rpc_descs_have_methods }.to_not raise_error
         
     | 
| 
       329 
     | 
    
         
            -
                  expect(c.include?(GenericService)).to be(true)
         
     | 
| 
       330 
     | 
    
         
            -
                end
         
     | 
| 
       331 
     | 
    
         
            -
             
     | 
| 
       332 
     | 
    
         
            -
                it 'passes if subclasses define the rpc methods' do
         
     | 
| 
       333 
     | 
    
         
            -
                  base = Class.new do
         
     | 
| 
       334 
     | 
    
         
            -
                    include GenericService
         
     | 
| 
       335 
     | 
    
         
            -
                    rpc :AnRpc, GoodMsg, GoodMsg
         
     | 
| 
       336 
     | 
    
         
            -
                  end
         
     | 
| 
       337 
     | 
    
         
            -
                  c = Class.new(base) do
         
     | 
| 
       338 
     | 
    
         
            -
                    def an_rpc(_req, _call)
         
     | 
| 
       339 
     | 
    
         
            -
                    end
         
     | 
| 
       340 
     | 
    
         
            -
                  end
         
     | 
| 
       341 
     | 
    
         
            -
                  expect { c.assert_rpc_descs_have_methods }.to_not raise_error
         
     | 
| 
       342 
     | 
    
         
            -
                  expect(c.include?(GenericService)).to be(true)
         
     | 
| 
       343 
     | 
    
         
            -
                end
         
     | 
| 
       344 
     | 
    
         
            -
              end
         
     | 
| 
       345 
276 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,6 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            # Copyright 2015, Google Inc.
         
     | 
| 
      
 1 
     | 
    
         
            +
            # Copyright 2016, Google Inc.
         
     | 
| 
       4 
2 
     | 
    
         
             
            # All rights reserved.
         
     | 
| 
       5 
3 
     | 
    
         
             
            #
         
     | 
| 
       6 
4 
     | 
    
         
             
            # Redistribution and use in source and binary forms, with or without
         
     | 
| 
         @@ -29,22 +27,45 @@ 
     | 
|
| 
       29 
27 
     | 
    
         
             
            # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
         
     | 
| 
       30 
28 
     | 
    
         
             
            # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
         
     | 
| 
       31 
29 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
      
 30 
     | 
    
         
            +
            require 'open3'
         
     | 
| 
      
 31 
     | 
    
         
            +
            require 'tmpdir'
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            def can_run_codegen_check
         
     | 
| 
      
 34 
     | 
    
         
            +
              system('which grpc_ruby_plugin') && system('which protoc')
         
     | 
| 
      
 35 
     | 
    
         
            +
            end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            describe 'Ping protobuf code generation' do
         
     | 
| 
      
 38 
     | 
    
         
            +
              if !can_run_codegen_check
         
     | 
| 
      
 39 
     | 
    
         
            +
                skip 'protoc || grpc_ruby_plugin missing, cannot verify ping code-gen'
         
     | 
| 
      
 40 
     | 
    
         
            +
              else
         
     | 
| 
      
 41 
     | 
    
         
            +
                it 'should have the same content as created by code generation' do
         
     | 
| 
      
 42 
     | 
    
         
            +
                  root_dir = File.join(File.dirname(__FILE__), '..', '..', '..', '..', '..')
         
     | 
| 
       45 
43 
     | 
    
         | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
      
 44 
     | 
    
         
            +
                  # Get the current content
         
     | 
| 
      
 45 
     | 
    
         
            +
                  service_path = File.join(root_dir, 'src', 'ruby', 'pb', 'grpc',
         
     | 
| 
      
 46 
     | 
    
         
            +
                                           'testing', 'duplicate',
         
     | 
| 
      
 47 
     | 
    
         
            +
                                           'echo_duplicate_services.rb')
         
     | 
| 
      
 48 
     | 
    
         
            +
                  want = nil
         
     | 
| 
      
 49 
     | 
    
         
            +
                  File.open(service_path) { |f| want = f.read }
         
     | 
| 
       49 
50 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
      
 51 
     | 
    
         
            +
                  # Regenerate it
         
     | 
| 
      
 52 
     | 
    
         
            +
                  plugin, = Open3.capture2('which', 'grpc_ruby_plugin')
         
     | 
| 
      
 53 
     | 
    
         
            +
                  plugin = plugin.strip
         
     | 
| 
      
 54 
     | 
    
         
            +
                  got = nil
         
     | 
| 
      
 55 
     | 
    
         
            +
                  Dir.mktmpdir do |tmp_dir|
         
     | 
| 
      
 56 
     | 
    
         
            +
                    gen_out = File.join(tmp_dir, 'src', 'proto', 'grpc', 'testing',
         
     | 
| 
      
 57 
     | 
    
         
            +
                                        'duplicate', 'echo_duplicate_services.rb')
         
     | 
| 
      
 58 
     | 
    
         
            +
                    pid = spawn(
         
     | 
| 
      
 59 
     | 
    
         
            +
                      'protoc',
         
     | 
| 
      
 60 
     | 
    
         
            +
                      '-I.',
         
     | 
| 
      
 61 
     | 
    
         
            +
                      'src/proto/grpc/testing/duplicate/echo_duplicate.proto',
         
     | 
| 
      
 62 
     | 
    
         
            +
                      "--grpc_out=#{tmp_dir}",
         
     | 
| 
      
 63 
     | 
    
         
            +
                      "--plugin=protoc-gen-grpc=#{plugin}",
         
     | 
| 
      
 64 
     | 
    
         
            +
                      chdir: root_dir)
         
     | 
| 
      
 65 
     | 
    
         
            +
                    Process.wait(pid)
         
     | 
| 
      
 66 
     | 
    
         
            +
                    File.open(gen_out) { |f| got = f.read }
         
     | 
| 
      
 67 
     | 
    
         
            +
                  end
         
     | 
| 
      
 68 
     | 
    
         
            +
                  expect(got).to eq(want)
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
              end
         
     | 
| 
      
 71 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: grpc
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.14.1.pre1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: x86-mingw32
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - gRPC Authors
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: src/ruby/bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-05-10 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: google-protobuf
         
     | 
| 
         @@ -52,6 +52,20 @@ dependencies: 
     | 
|
| 
       52 
52 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       53 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
54 
     | 
    
         
             
                    version: '1.9'
         
     | 
| 
      
 55 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 56 
     | 
    
         
            +
              name: facter
         
     | 
| 
      
 57 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 58 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 60 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '2.4'
         
     | 
| 
      
 62 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 63 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 65 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 67 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '2.4'
         
     | 
| 
       55 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
70 
     | 
    
         
             
              name: logging
         
     | 
| 
       57 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -166,13 +180,7 @@ dependencies: 
     | 
|
| 
       166 
180 
     | 
    
         
             
                    version: 0.7.0
         
     | 
| 
       167 
181 
     | 
    
         
             
            description: Send RPCs from Ruby using GRPC
         
     | 
| 
       168 
182 
     | 
    
         
             
            email: temiola@google.com
         
     | 
| 
       169 
     | 
    
         
            -
            executables:
         
     | 
| 
       170 
     | 
    
         
            -
            - math_client.rb
         
     | 
| 
       171 
     | 
    
         
            -
            - math_server.rb
         
     | 
| 
       172 
     | 
    
         
            -
            - noproto_client.rb
         
     | 
| 
       173 
     | 
    
         
            -
            - noproto_server.rb
         
     | 
| 
       174 
     | 
    
         
            -
            - grpc_ruby_interop_client
         
     | 
| 
       175 
     | 
    
         
            -
            - grpc_ruby_interop_server
         
     | 
| 
      
 183 
     | 
    
         
            +
            executables: []
         
     | 
| 
       176 
184 
     | 
    
         
             
            extensions: []
         
     | 
| 
       177 
185 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       178 
186 
     | 
    
         
             
            files:
         
     | 
| 
         @@ -183,10 +191,6 @@ files: 
     | 
|
| 
       183 
191 
     | 
    
         
             
            - src/ruby/bin/apis/pubsub_demo.rb
         
     | 
| 
       184 
192 
     | 
    
         
             
            - src/ruby/bin/apis/tech/pubsub/proto/pubsub.rb
         
     | 
| 
       185 
193 
     | 
    
         
             
            - src/ruby/bin/apis/tech/pubsub/proto/pubsub_services.rb
         
     | 
| 
       186 
     | 
    
         
            -
            - src/ruby/bin/grpc_ruby_interop_client
         
     | 
| 
       187 
     | 
    
         
            -
            - src/ruby/bin/grpc_ruby_interop_server
         
     | 
| 
       188 
     | 
    
         
            -
            - src/ruby/bin/interop/interop_client.rb
         
     | 
| 
       189 
     | 
    
         
            -
            - src/ruby/bin/interop/interop_server.rb
         
     | 
| 
       190 
194 
     | 
    
         
             
            - src/ruby/bin/math.rb
         
     | 
| 
       191 
195 
     | 
    
         
             
            - src/ruby/bin/math_client.rb
         
     | 
| 
       192 
196 
     | 
    
         
             
            - src/ruby/bin/math_server.rb
         
     | 
| 
         @@ -220,6 +224,8 @@ files: 
     | 
|
| 
       220 
224 
     | 
    
         
             
            - src/ruby/ext/grpc/rb_server.h
         
     | 
| 
       221 
225 
     | 
    
         
             
            - src/ruby/ext/grpc/rb_server_credentials.c
         
     | 
| 
       222 
226 
     | 
    
         
             
            - src/ruby/ext/grpc/rb_server_credentials.h
         
     | 
| 
      
 227 
     | 
    
         
            +
            - src/ruby/ext/grpc/rb_signal.c
         
     | 
| 
      
 228 
     | 
    
         
            +
            - src/ruby/ext/grpc/rb_signal.h
         
     | 
| 
       223 
229 
     | 
    
         
             
            - src/ruby/lib/grpc.rb
         
     | 
| 
       224 
230 
     | 
    
         
             
            - src/ruby/lib/grpc/2.0/grpc_c.so
         
     | 
| 
       225 
231 
     | 
    
         
             
            - src/ruby/lib/grpc/2.1/grpc_c.so
         
     | 
| 
         @@ -237,12 +243,16 @@ files: 
     | 
|
| 
       237 
243 
     | 
    
         
             
            - src/ruby/lib/grpc/grpc_c.so
         
     | 
| 
       238 
244 
     | 
    
         
             
            - src/ruby/lib/grpc/logconfig.rb
         
     | 
| 
       239 
245 
     | 
    
         
             
            - src/ruby/lib/grpc/notifier.rb
         
     | 
| 
      
 246 
     | 
    
         
            +
            - src/ruby/lib/grpc/signals.rb
         
     | 
| 
       240 
247 
     | 
    
         
             
            - src/ruby/lib/grpc/version.rb
         
     | 
| 
       241 
248 
     | 
    
         
             
            - src/ruby/pb/README.md
         
     | 
| 
       242 
249 
     | 
    
         
             
            - src/ruby/pb/generate_proto_ruby.sh
         
     | 
| 
       243 
250 
     | 
    
         
             
            - src/ruby/pb/grpc/health/checker.rb
         
     | 
| 
       244 
251 
     | 
    
         
             
            - src/ruby/pb/grpc/health/v1/health.rb
         
     | 
| 
       245 
252 
     | 
    
         
             
            - src/ruby/pb/grpc/health/v1/health_services.rb
         
     | 
| 
      
 253 
     | 
    
         
            +
            - src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb
         
     | 
| 
      
 254 
     | 
    
         
            +
            - src/ruby/pb/grpc/testing/metrics.rb
         
     | 
| 
      
 255 
     | 
    
         
            +
            - src/ruby/pb/grpc/testing/metrics_services.rb
         
     | 
| 
       246 
256 
     | 
    
         
             
            - src/ruby/pb/test/client.rb
         
     | 
| 
       247 
257 
     | 
    
         
             
            - src/ruby/pb/test/proto/empty.rb
         
     | 
| 
       248 
258 
     | 
    
         
             
            - src/ruby/pb/test/proto/messages.rb
         
     | 
| 
         @@ -261,6 +271,7 @@ files: 
     | 
|
| 
       261 
271 
     | 
    
         
             
            - src/ruby/spec/generic/rpc_server_pool_spec.rb
         
     | 
| 
       262 
272 
     | 
    
         
             
            - src/ruby/spec/generic/rpc_server_spec.rb
         
     | 
| 
       263 
273 
     | 
    
         
             
            - src/ruby/spec/generic/service_spec.rb
         
     | 
| 
      
 274 
     | 
    
         
            +
            - src/ruby/spec/pb/duplicate/codegen_spec.rb
         
     | 
| 
       264 
275 
     | 
    
         
             
            - src/ruby/spec/pb/health/checker_spec.rb
         
     | 
| 
       265 
276 
     | 
    
         
             
            - src/ruby/spec/server_credentials_spec.rb
         
     | 
| 
       266 
277 
     | 
    
         
             
            - src/ruby/spec/server_spec.rb
         
     | 
| 
         @@ -287,9 +298,9 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       287 
298 
     | 
    
         
             
                  version: 2.0.0
         
     | 
| 
       288 
299 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       289 
300 
     | 
    
         
             
              requirements:
         
     | 
| 
       290 
     | 
    
         
            -
              - - " 
     | 
| 
      
 301 
     | 
    
         
            +
              - - ">"
         
     | 
| 
       291 
302 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       292 
     | 
    
         
            -
                  version:  
     | 
| 
      
 303 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
       293 
304 
     | 
    
         
             
            requirements: []
         
     | 
| 
       294 
305 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       295 
306 
     | 
    
         
             
            rubygems_version: 2.5.1
         
     | 
| 
         @@ -304,6 +315,7 @@ test_files: 
     | 
|
| 
       304 
315 
     | 
    
         
             
            - src/ruby/spec/generic/service_spec.rb
         
     | 
| 
       305 
316 
     | 
    
         
             
            - src/ruby/spec/generic/active_call_spec.rb
         
     | 
| 
       306 
317 
     | 
    
         
             
            - src/ruby/spec/pb/health/checker_spec.rb
         
     | 
| 
      
 318 
     | 
    
         
            +
            - src/ruby/spec/pb/duplicate/codegen_spec.rb
         
     | 
| 
       307 
319 
     | 
    
         
             
            - src/ruby/spec/channel_spec.rb
         
     | 
| 
       308 
320 
     | 
    
         
             
            - src/ruby/spec/client_server_spec.rb
         
     | 
| 
       309 
321 
     | 
    
         
             
            - src/ruby/spec/testdata/README
         
     | 
| 
         @@ -1,33 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #!/usr/bin/env ruby
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            # Copyright 2015, Google Inc.
         
     | 
| 
       4 
     | 
    
         
            -
            # All rights reserved.
         
     | 
| 
       5 
     | 
    
         
            -
            #
         
     | 
| 
       6 
     | 
    
         
            -
            # Redistribution and use in source and binary forms, with or without
         
     | 
| 
       7 
     | 
    
         
            -
            # modification, are permitted provided that the following conditions are
         
     | 
| 
       8 
     | 
    
         
            -
            # met:
         
     | 
| 
       9 
     | 
    
         
            -
            #
         
     | 
| 
       10 
     | 
    
         
            -
            #     * Redistributions of source code must retain the above copyright
         
     | 
| 
       11 
     | 
    
         
            -
            # notice, this list of conditions and the following disclaimer.
         
     | 
| 
       12 
     | 
    
         
            -
            #     * Redistributions in binary form must reproduce the above
         
     | 
| 
       13 
     | 
    
         
            -
            # copyright notice, this list of conditions and the following disclaimer
         
     | 
| 
       14 
     | 
    
         
            -
            # in the documentation and/or other materials provided with the
         
     | 
| 
       15 
     | 
    
         
            -
            # distribution.
         
     | 
| 
       16 
     | 
    
         
            -
            #     * Neither the name of Google Inc. nor the names of its
         
     | 
| 
       17 
     | 
    
         
            -
            # contributors may be used to endorse or promote products derived from
         
     | 
| 
       18 
     | 
    
         
            -
            # this software without specific prior written permission.
         
     | 
| 
       19 
     | 
    
         
            -
            #
         
     | 
| 
       20 
     | 
    
         
            -
            # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
         
     | 
| 
       21 
     | 
    
         
            -
            # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
         
     | 
| 
       22 
     | 
    
         
            -
            # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
         
     | 
| 
       23 
     | 
    
         
            -
            # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
         
     | 
| 
       24 
     | 
    
         
            -
            # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
         
     | 
| 
       25 
     | 
    
         
            -
            # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
         
     | 
| 
       26 
     | 
    
         
            -
            # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
         
     | 
| 
       27 
     | 
    
         
            -
            # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
         
     | 
| 
       28 
     | 
    
         
            -
            # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
         
     | 
| 
       29 
     | 
    
         
            -
            # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
         
     | 
| 
       30 
     | 
    
         
            -
            # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
            # Provides a gem binary entry point for the interop client.
         
     | 
| 
       33 
     | 
    
         
            -
            require 'test/client'
         
     |