aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ruby
diff options
context:
space:
mode:
authorGravatar Nicolas Noble <nicolasnoble@users.noreply.github.com>2015-06-19 13:08:00 -0700
committerGravatar Nicolas Noble <nicolasnoble@users.noreply.github.com>2015-06-19 13:08:00 -0700
commitf3fac562e8994631484f77ad8b0c6c17582699a8 (patch)
tree8da525cb2cf5aac00711cb994a49ac0106940120 /src/ruby
parentdc65c14d3bc39979503bcbb0578a6baf47cf147f (diff)
parent52c6142a30fc74d665bf6d7270c0d6835a9db38f (diff)
Merge pull request #1577 from ctiller/we-dont-need-no-backup
Remove backup poller from GRPC core
Diffstat (limited to 'src/ruby')
-rw-r--r--src/ruby/spec/client_server_spec.rb60
1 files changed, 52 insertions, 8 deletions
diff --git a/src/ruby/spec/client_server_spec.rb b/src/ruby/spec/client_server_spec.rb
index b22e510a6a..0e85441209 100644
--- a/src/ruby/spec/client_server_spec.rb
+++ b/src/ruby/spec/client_server_spec.rb
@@ -71,6 +71,12 @@ shared_examples 'basic GRPC message delivery is OK' do
it 'servers receive requests from clients and can respond' do
call = new_client_call
+ server_call = nil
+
+ server_thread = Thread.new do
+ server_call = server_allows_client_to_proceed
+ end
+
client_ops = {
CallOps::SEND_INITIAL_METADATA => {},
CallOps::SEND_MESSAGE => sent_message
@@ -81,7 +87,7 @@ shared_examples 'basic GRPC message delivery is OK' do
expect(batch_result.send_message).to be true
# confirm the server can read the inbound message
- server_call = server_allows_client_to_proceed
+ server_thread.join
server_ops = {
CallOps::RECV_MESSAGE => nil
}
@@ -92,6 +98,12 @@ shared_examples 'basic GRPC message delivery is OK' do
it 'responses written by servers are received by the client' do
call = new_client_call
+ server_call = nil
+
+ server_thread = Thread.new do
+ server_call = server_allows_client_to_proceed
+ end
+
client_ops = {
CallOps::SEND_INITIAL_METADATA => {},
CallOps::SEND_MESSAGE => sent_message
@@ -102,7 +114,7 @@ shared_examples 'basic GRPC message delivery is OK' do
expect(batch_result.send_message).to be true
# confirm the server can read the inbound message
- server_call = server_allows_client_to_proceed
+ server_thread.join
server_ops = {
CallOps::RECV_MESSAGE => nil,
CallOps::SEND_MESSAGE => reply_text
@@ -115,6 +127,12 @@ shared_examples 'basic GRPC message delivery is OK' do
it 'servers can ignore a client write and send a status' do
call = new_client_call
+ server_call = nil
+
+ server_thread = Thread.new do
+ server_call = server_allows_client_to_proceed
+ end
+
client_ops = {
CallOps::SEND_INITIAL_METADATA => {},
CallOps::SEND_MESSAGE => sent_message
@@ -126,7 +144,7 @@ shared_examples 'basic GRPC message delivery is OK' do
# confirm the server can read the inbound message
the_status = Struct::Status.new(StatusCodes::OK, 'OK')
- server_call = server_allows_client_to_proceed
+ server_thread.join
server_ops = {
CallOps::SEND_STATUS_FROM_SERVER => the_status
}
@@ -138,6 +156,12 @@ shared_examples 'basic GRPC message delivery is OK' do
it 'completes calls by sending status to client and server' do
call = new_client_call
+ server_call = nil
+
+ server_thread = Thread.new do
+ server_call = server_allows_client_to_proceed
+ end
+
client_ops = {
CallOps::SEND_INITIAL_METADATA => {},
CallOps::SEND_MESSAGE => sent_message
@@ -149,7 +173,7 @@ shared_examples 'basic GRPC message delivery is OK' do
# confirm the server can read the inbound message and respond
the_status = Struct::Status.new(StatusCodes::OK, 'OK', {})
- server_call = server_allows_client_to_proceed
+ server_thread.join
server_ops = {
CallOps::RECV_MESSAGE => nil,
CallOps::SEND_MESSAGE => reply_text,
@@ -218,6 +242,11 @@ shared_examples 'GRPC metadata delivery works OK' do
it 'sends all the metadata pairs when keys and values are valid' do
@valid_metadata.each do |md|
+ recvd_rpc = nil
+ rcv_thread = Thread.new do
+ recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline)
+ end
+
call = new_client_call
client_ops = {
CallOps::SEND_INITIAL_METADATA => md
@@ -227,7 +256,7 @@ shared_examples 'GRPC metadata delivery works OK' do
expect(batch_result.send_metadata).to be true
# confirm the server can receive the client metadata
- recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline)
+ rcv_thread.join
expect(recvd_rpc).to_not eq nil
recvd_md = recvd_rpc.metadata
replace_symbols = Hash[md.each_pair.collect { |x, y| [x.to_s, y] }]
@@ -254,6 +283,11 @@ shared_examples 'GRPC metadata delivery works OK' do
it 'raises an exception if a metadata key is invalid' do
@bad_keys.each do |md|
+ recvd_rpc = nil
+ rcv_thread = Thread.new do
+ recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline)
+ end
+
call = new_client_call
# client signals that it's done sending metadata to allow server to
# respond
@@ -263,7 +297,7 @@ shared_examples 'GRPC metadata delivery works OK' do
call.run_batch(@client_queue, @client_tag, deadline, client_ops)
# server gets the invocation
- recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline)
+ rcv_thread.join
expect(recvd_rpc).to_not eq nil
server_ops = {
CallOps::SEND_INITIAL_METADATA => md
@@ -277,6 +311,11 @@ shared_examples 'GRPC metadata delivery works OK' do
end
it 'sends an empty hash if no metadata is added' do
+ recvd_rpc = nil
+ rcv_thread = Thread.new do
+ recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline)
+ end
+
call = new_client_call
# client signals that it's done sending metadata to allow server to
# respond
@@ -286,7 +325,7 @@ shared_examples 'GRPC metadata delivery works OK' do
call.run_batch(@client_queue, @client_tag, deadline, client_ops)
# server gets the invocation but sends no metadata back
- recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline)
+ rcv_thread.join
expect(recvd_rpc).to_not eq nil
server_call = recvd_rpc.call
server_ops = {
@@ -305,6 +344,11 @@ shared_examples 'GRPC metadata delivery works OK' do
it 'sends all the pairs when keys and values are valid' do
@valid_metadata.each do |md|
+ recvd_rpc = nil
+ rcv_thread = Thread.new do
+ recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline)
+ end
+
call = new_client_call
# client signals that it's done sending metadata to allow server to
# respond
@@ -314,7 +358,7 @@ shared_examples 'GRPC metadata delivery works OK' do
call.run_batch(@client_queue, @client_tag, deadline, client_ops)
# server gets the invocation but sends no metadata back
- recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline)
+ rcv_thread.join
expect(recvd_rpc).to_not eq nil
server_call = recvd_rpc.call
server_ops = {