module GRPC::Spec::Helpers
A module that is used for providing generic helpers across the GRPC test suite
Constants
- RpcServer
RpcServer hosts a number of services and makes them available on the network.
Public Instance Methods
build_insecure_stub(klass, host: nil, opts: nil)
click to toggle source
Build an insecure stub from a given stub class
@param [Class] klass @param [String] host
# File src/ruby/spec/support/helpers.rb, line 66 def build_insecure_stub(klass, host: nil, opts: nil) host ||= @host opts ||= @client_opts klass.new(host, :this_channel_is_insecure, **opts) end
build_rpc_server(server_opts: {}, client_opts: {})
click to toggle source
Build an RPC server used for testing
# File src/ruby/spec/support/helpers.rb, line 32 def build_rpc_server(server_opts: {}, client_opts: {}) @server = new_rpc_server_for_testing({ poll_period: 1 }.merge(server_opts)) @port = @server.add_http2_port('0.0.0.0:0', :this_port_is_insecure) @host = "0.0.0.0:#{@port}" @client_opts = client_opts @server end
new_core_server_for_testing(server_args)
click to toggle source
Build an GRPC::Core::Server for use in tests. Adds args that are useful for all tests.
@param [Hash] server_args
# File src/ruby/spec/support/helpers.rb, line 90 def new_core_server_for_testing(server_args) server_args.nil? && server_args = {} update_server_args_hash(server_args) GRPC::Core::Server.new(server_args) end
new_rpc_server_for_testing(server_opts = {})
click to toggle source
Build an RPCServer for use in tests. Adds args that are useful for all tests.
@param [Hash] server_opts
# File src/ruby/spec/support/helpers.rb, line 78 def new_rpc_server_for_testing(server_opts = {}) server_opts[:server_args] ||= {} update_server_args_hash(server_opts[:server_args]) RpcServer.new(**server_opts) end
run_services_on_server(server, services: []) { || ... }
click to toggle source
Run services on an RPC server, yielding to allow testing within
@param [RpcServer] server @param [Array<Class>] services
# File src/ruby/spec/support/helpers.rb, line 47 def run_services_on_server(server, services: []) services.each do |s| server.handle(s) end t = Thread.new { server.run } server.wait_till_running yield server.stop t.join end
update_server_args_hash(server_args)
click to toggle source
# File src/ruby/spec/support/helpers.rb, line 96 def update_server_args_hash(server_args) so_reuseport_arg = 'grpc.so_reuseport' unless server_args[so_reuseport_arg].nil? fail 'Unexpected. grpc.so_reuseport already set.' end # Run tests without so_reuseport to eliminate the chance of # cross-talk. server_args[so_reuseport_arg] = 0 end