stubserver

package
v1.68.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package stubserver is a stubbable implementation of google.golang.org/grpc/interop/grpc_testing for testing purposes.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterServiceServerOption added in v1.56.0

func RegisterServiceServerOption(f func(grpc.ServiceRegistrar)) grpc.ServerOption

RegisterServiceServerOption returns a ServerOption that will run f() in Start or StartServer with the grpc.Server created before serving. This allows other services to be registered on the test server (e.g. ORCA, health, or reflection).

Types

type GRPCServer added in v1.68.0

type GRPCServer interface {
	grpc.ServiceRegistrar
	Stop()
	GracefulStop()
	Serve(net.Listener) error
}

GRPCServer is an interface that groups methods implemented by a grpc.Server or an xds.GRPCServer that are used by the StubServer.

type StubServer

type StubServer struct {
	// Guarantees we satisfy this interface; panics if unimplemented methods are called.
	testgrpc.TestServiceServer

	// Customizable implementations of server handlers.
	EmptyCallF      func(ctx context.Context, in *testpb.Empty) (*testpb.Empty, error)
	UnaryCallF      func(ctx context.Context, in *testpb.SimpleRequest) (*testpb.SimpleResponse, error)
	FullDuplexCallF func(stream testgrpc.TestService_FullDuplexCallServer) error

	// A client connected to this service the test may use.  Created in Start().
	Client testgrpc.TestServiceClient
	CC     *grpc.ClientConn

	// Server to serve this service from.
	//
	// If nil, a new grpc.Server is created, listening on the provided Network
	// and Address fields, or listening using the provided Listener.
	S GRPCServer

	// Parameters for Listen and Dial. Defaults will be used if these are empty
	// before Start.
	Network string
	Address string
	Target  string

	// Custom listener to use for serving. If unspecified, a new listener is
	// created on a local port.
	Listener net.Listener

	// Set automatically if Target == ""
	R *manual.Resolver
	// contains filtered or unexported fields
}

StubServer is a server that is easy to customize within individual test cases.

func StartTestService added in v1.55.0

func StartTestService(t *testing.T, server *StubServer, sopts ...grpc.ServerOption) *StubServer

StartTestService spins up a stub server exposing the TestService on a local port. If the passed in server is nil, a stub server that implements only the EmptyCall and UnaryCall RPCs is started.

func (*StubServer) EmptyCall

func (ss *StubServer) EmptyCall(ctx context.Context, in *testpb.Empty) (*testpb.Empty, error)

EmptyCall is the handler for testpb.EmptyCall

func (*StubServer) FullDuplexCall

func (ss *StubServer) FullDuplexCall(stream testgrpc.TestService_FullDuplexCallServer) error

FullDuplexCall is the handler for testpb.FullDuplexCall

func (*StubServer) NewServiceConfig

func (ss *StubServer) NewServiceConfig(sc string)

NewServiceConfig applies sc to ss.Client using the resolver (if present).

func (*StubServer) Start

func (ss *StubServer) Start(sopts []grpc.ServerOption, dopts ...grpc.DialOption) error

Start starts the server and creates a client connected to it.

func (*StubServer) StartClient added in v1.44.0

func (ss *StubServer) StartClient(dopts ...grpc.DialOption) error

StartClient creates a client connected to this service that the test may use. The newly created client will be available in the Client field of StubServer.

func (*StubServer) StartHandlerServer added in v1.59.0

func (ss *StubServer) StartHandlerServer(sopts ...grpc.ServerOption) error

StartHandlerServer only starts an HTTP server with a gRPC server as the handler. It does not create a client to it. Cannot be used in a StubServer that also used StartServer.

func (*StubServer) StartServer added in v1.44.0

func (ss *StubServer) StartServer(sopts ...grpc.ServerOption) error

StartServer only starts the server. It does not create a client to it. Cannot be used in a StubServer that also used StartHandlerServer.

func (*StubServer) Stop

func (ss *StubServer) Stop()

Stop stops ss and cleans up all resources it consumed.

func (*StubServer) UnaryCall

UnaryCall is the handler for testpb.UnaryCall

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL