|
|
|
@ -49,7 +49,28 @@ def create_server_creds |
|
|
|
|
true) # force client auth |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
# rubocop:disable Metrics/AbcSize |
|
|
|
|
def check_rpcs_still_possible(stub) |
|
|
|
|
# Expect three more RPCs to succeed. Use a retry loop because the server |
|
|
|
|
# thread pool might still be busy processing the previous round of RPCs. |
|
|
|
|
3.times do |
|
|
|
|
timeout_seconds = 30 |
|
|
|
|
deadline = Time.now + timeout_seconds |
|
|
|
|
success = false |
|
|
|
|
while Time.now < deadline |
|
|
|
|
STDERR.puts 'now perform another RPC and expect OK...' |
|
|
|
|
begin |
|
|
|
|
stub.echo(Echo::EchoRequest.new(request: 'hello'), deadline: Time.now + 10) |
|
|
|
|
success = true |
|
|
|
|
rescue GRPC::BadStatus => e |
|
|
|
|
STDERR.puts "RPC received status: #{e}. Try again..." |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
unless success |
|
|
|
|
fail "failed to complete a successful RPC within #{timeout_seconds} seconds" |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
# rubocop:disable Metrics/MethodLength |
|
|
|
|
def main |
|
|
|
|
server_runner = ServerRunner.new(EchoServerImpl) |
|
|
|
@ -119,13 +140,7 @@ def main |
|
|
|
|
unless got_at_least_one_failure.value |
|
|
|
|
fail 'expected at least one of the initial RPCs to fail' |
|
|
|
|
end |
|
|
|
|
# Expect three more RPCs to succeed |
|
|
|
|
STDERR.puts 'now perform another RPC and expect OK...' |
|
|
|
|
stub.echo(Echo::EchoRequest.new(request: 'hello'), deadline: Time.now + 10) |
|
|
|
|
STDERR.puts 'now perform another RPC and expect OK...' |
|
|
|
|
stub.echo(Echo::EchoRequest.new(request: 'hello'), deadline: Time.now + 10) |
|
|
|
|
STDERR.puts 'now perform another RPC and expect OK...' |
|
|
|
|
stub.echo(Echo::EchoRequest.new(request: 'hello'), deadline: Time.now + 10) |
|
|
|
|
check_rpcs_still_possible(stub) |
|
|
|
|
jwt_aud_uri_extraction_success_count_mu.synchronize do |
|
|
|
|
if jwt_aud_uri_extraction_success_count.value < 4 |
|
|
|
|
fail "Expected auth metadata plugin callback to be ran with the jwt_aud_uri |
|
|
|
|