Documentation ¶
Overview ¶
Package e2e contains utilities for end-to-end RouteLookupService tests.
Index ¶
- Constants
- Variables
- func RegisterRLSChildPolicy(name string, bf *BalancerFuncs)
- type BalancerFuncs
- type FakeRouteLookupServer
- func (s *FakeRouteLookupServer) RouteLookup(ctx context.Context, req *rlspb.RouteLookupRequest) (*rlspb.RouteLookupResponse, error)
- func (s *FakeRouteLookupServer) SetRequestCallback(f func(*rlspb.RouteLookupRequest))
- func (s *FakeRouteLookupServer) SetResponseCallback(f func(context.Context, *rlspb.RouteLookupRequest) *RouteLookupResponse)
- type RLSChildPolicyConfig
- type RLSConfig
- type RouteLookupResponse
Constants ¶
const ( // RLSChildPolicyTargetNameField is a top-level field name to add to the child // policy's config, whose value is set to the target for the child policy. RLSChildPolicyTargetNameField = "Backend" // RLSChildPolicyBadTarget is a value which is considered a bad target by the // child policy. This is useful to test bad child policy configuration. RLSChildPolicyBadTarget = "bad-target" )
Variables ¶
var ErrParseConfigBadTarget = errors.New("backend field set to RLSChildPolicyBadTarget")
ErrParseConfigBadTarget is the error returned from ParseConfig when the backend field is set to RLSChildPolicyBadTarget.
Functions ¶
func RegisterRLSChildPolicy ¶
func RegisterRLSChildPolicy(name string, bf *BalancerFuncs)
RegisterRLSChildPolicy registers a balancer builder with the given name, to be used as a child policy for the RLS LB policy.
The child policy uses a pickfirst balancer under the hood to send all traffic to the single backend specified by the `RLSChildPolicyTargetNameField` field in its configuration which looks like: {"Backend": "Backend-address"}.
Types ¶
type BalancerFuncs ¶
type BalancerFuncs struct { UpdateClientConnState func(cfg *RLSChildPolicyConfig) error Close func() }
BalancerFuncs is a set of callbacks which get invoked when the corresponding method on the child policy is invoked.
type FakeRouteLookupServer ¶
type FakeRouteLookupServer struct { rlsgrpc.UnimplementedRouteLookupServiceServer Address string // contains filtered or unexported fields }
FakeRouteLookupServer is a fake implementation of the RouteLookupService.
It is safe for concurrent use.
func StartFakeRouteLookupServer ¶
func StartFakeRouteLookupServer(t *testing.T, lis net.Listener, opts ...grpc.ServerOption) (*FakeRouteLookupServer, func())
StartFakeRouteLookupServer starts a fake RLS server listening for requests on lis. If lis is nil, it creates a new listener on a random local port. The returned cancel function should be invoked by the caller upon completion of the test.
func (*FakeRouteLookupServer) RouteLookup ¶
func (s *FakeRouteLookupServer) RouteLookup(ctx context.Context, req *rlspb.RouteLookupRequest) (*rlspb.RouteLookupResponse, error)
RouteLookup implements the RouteLookupService.
func (*FakeRouteLookupServer) SetRequestCallback ¶
func (s *FakeRouteLookupServer) SetRequestCallback(f func(*rlspb.RouteLookupRequest))
SetRequestCallback sets a callback to be invoked on every RLS request. The callback is given the incoming request, and tests can use this to verify that the request matches its expectations.
func (*FakeRouteLookupServer) SetResponseCallback ¶
func (s *FakeRouteLookupServer) SetResponseCallback(f func(context.Context, *rlspb.RouteLookupRequest) *RouteLookupResponse)
SetResponseCallback sets a callback to be invoked on every RLS request. If this callback is set, the response returned by the fake server depends on the value returned by the callback. If this callback is not set, the fake server responds with an empty response.
type RLSChildPolicyConfig ¶
type RLSChildPolicyConfig struct { serviceconfig.LoadBalancingConfig Backend string // The target for which this child policy was created. Random string // A random field to test child policy config changes. }
RLSChildPolicyConfig is the LB config for the test child policy.
type RLSConfig ¶
type RLSConfig struct { RouteLookupConfig *rlspb.RouteLookupConfig ChildPolicy *internalserviceconfig.BalancerConfig ChildPolicyConfigTargetFieldName string }
RLSConfig is a utility type to build service config for the RLS LB policy.
func (*RLSConfig) LoadBalancingConfig ¶
func (c *RLSConfig) LoadBalancingConfig() (serviceconfig.LoadBalancingConfig, error)
LoadBalancingConfig generates load balancing config which can used as part of a ClientConnState update to the RLS LB policy.
func (*RLSConfig) ServiceConfigJSON ¶
ServiceConfigJSON generates service config with a load balancing config corresponding to the RLS LB policy.
type RouteLookupResponse ¶
type RouteLookupResponse struct { Resp *rlspb.RouteLookupResponse Err error }
RouteLookupResponse wraps an RLS response and the associated error to be sent to a client when the RouteLookup RPC is invoked.