|
|
|
@ -212,10 +212,14 @@ describe GRPC::RpcServer do |
|
|
|
|
|
|
|
|
|
describe '#stopped?' do |
|
|
|
|
before(:each) do |
|
|
|
|
opts = { a_channel_arg: 'an_arg', poll_period: 1 } |
|
|
|
|
opts = { a_channel_arg: 'an_arg', poll_period: 1.5 } |
|
|
|
|
@srv = RpcServer.new(**opts) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
after(:each) do |
|
|
|
|
@srv.stop |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'starts out false' do |
|
|
|
|
expect(@srv.stopped?).to be(false) |
|
|
|
|
end |
|
|
|
@ -225,7 +229,7 @@ describe GRPC::RpcServer do |
|
|
|
|
expect(@srv.stopped?).to be(false) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'stays false after the server starts running' do |
|
|
|
|
it 'stays false after the server starts running', server: true do |
|
|
|
|
@srv.handle(EchoService) |
|
|
|
|
t = Thread.new { @srv.run } |
|
|
|
|
@srv.wait_till_running |
|
|
|
@ -234,7 +238,7 @@ describe GRPC::RpcServer do |
|
|
|
|
t.join |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'is true after a running server is stopped' do |
|
|
|
|
it 'is true after a running server is stopped', server: true do |
|
|
|
|
@srv.handle(EchoService) |
|
|
|
|
t = Thread.new { @srv.run } |
|
|
|
|
@srv.wait_till_running |
|
|
|
@ -251,21 +255,22 @@ describe GRPC::RpcServer do |
|
|
|
|
expect(r.running?).to be(false) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'is false after run is called with no services registered' do |
|
|
|
|
it 'is false if run is called with no services registered', server: true do |
|
|
|
|
opts = { |
|
|
|
|
a_channel_arg: 'an_arg', |
|
|
|
|
poll_period: 1, |
|
|
|
|
poll_period: 2, |
|
|
|
|
server_override: @server |
|
|
|
|
} |
|
|
|
|
r = RpcServer.new(**opts) |
|
|
|
|
r.run |
|
|
|
|
expect(r.running?).to be(false) |
|
|
|
|
r.stop |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'is true after run is called with a registered service' do |
|
|
|
|
opts = { |
|
|
|
|
a_channel_arg: 'an_arg', |
|
|
|
|
poll_period: 1, |
|
|
|
|
poll_period: 2.5, |
|
|
|
|
server_override: @server |
|
|
|
|
} |
|
|
|
|
r = RpcServer.new(**opts) |
|
|
|
@ -284,6 +289,10 @@ describe GRPC::RpcServer do |
|
|
|
|
@srv = RpcServer.new(**@opts) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
after(:each) do |
|
|
|
|
@srv.stop |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'raises if #run has already been called' do |
|
|
|
|
@srv.handle(EchoService) |
|
|
|
|
t = Thread.new { @srv.run } |
|
|
|
@ -335,6 +344,10 @@ describe GRPC::RpcServer do |
|
|
|
|
@srv = RpcServer.new(**server_opts) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
after(:each) do |
|
|
|
|
@srv.stop |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'should return NOT_FOUND status on unknown methods', server: true do |
|
|
|
|
@srv.handle(EchoService) |
|
|
|
|
t = Thread.new { @srv.run } |
|
|
|
@ -376,7 +389,7 @@ describe GRPC::RpcServer do |
|
|
|
|
t.join |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'should receive metadata when a deadline is specified', server: true do |
|
|
|
|
it 'should receive metadata if a deadline is specified', server: true do |
|
|
|
|
service = SlowService.new |
|
|
|
|
@srv.handle(service) |
|
|
|
|
t = Thread.new { @srv.run } |
|
|
|
@ -445,11 +458,11 @@ describe GRPC::RpcServer do |
|
|
|
|
|
|
|
|
|
it 'should handle multiple parallel requests', server: true do |
|
|
|
|
@srv.handle(EchoService) |
|
|
|
|
Thread.new { @srv.run } |
|
|
|
|
t = Thread.new { @srv.run } |
|
|
|
|
@srv.wait_till_running |
|
|
|
|
req, q = EchoMsg.new, Queue.new |
|
|
|
|
n = 5 # arbitrary |
|
|
|
|
threads = [] |
|
|
|
|
threads = [t] |
|
|
|
|
n.times do |
|
|
|
|
threads << Thread.new do |
|
|
|
|
stub = EchoStub.new(@host, **client_opts) |
|
|
|
@ -472,7 +485,7 @@ describe GRPC::RpcServer do |
|
|
|
|
} |
|
|
|
|
alt_srv = RpcServer.new(**opts) |
|
|
|
|
alt_srv.handle(SlowService) |
|
|
|
|
Thread.new { alt_srv.run } |
|
|
|
|
t = Thread.new { alt_srv.run } |
|
|
|
|
alt_srv.wait_till_running |
|
|
|
|
req = EchoMsg.new |
|
|
|
|
n = 5 # arbitrary, use as many to ensure the server pool is exceeded |
|
|
|
@ -490,6 +503,7 @@ describe GRPC::RpcServer do |
|
|
|
|
end |
|
|
|
|
threads.each(&:join) |
|
|
|
|
alt_srv.stop |
|
|
|
|
t.join |
|
|
|
|
expect(one_failed_as_unavailable).to be(true) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
@ -513,6 +527,10 @@ describe GRPC::RpcServer do |
|
|
|
|
@srv = RpcServer.new(**server_opts) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
after(:each) do |
|
|
|
|
@srv.stop |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'should send connect metadata to the client', server: true do |
|
|
|
|
service = EchoService.new |
|
|
|
|
@srv.handle(service) |
|
|
|
@ -545,6 +563,10 @@ describe GRPC::RpcServer do |
|
|
|
|
@srv = RpcServer.new(**server_opts) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
after(:each) do |
|
|
|
|
@srv.stop |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'should be added to BadStatus when requests fail', server: true do |
|
|
|
|
service = FailingService.new |
|
|
|
|
@srv.handle(service) |
|
|
|
|