Documentation

Overview

    Package testutils provides utility types, for use in xds tests.

    Index

    Constants

    View Source
    const TestSubConnsCount = 16

      TestSubConnsCount is the number of TestSubConns initialized as part of package init.

      Variables

      View Source
      var EmptyNodeProtoV2 = &v2corepb.Node{}

        EmptyNodeProtoV2 is a v2 Node proto with no fields set.

        View Source
        var EmptyNodeProtoV3 = &v3corepb.Node{}

          EmptyNodeProtoV3 is a v3 Node proto with no fields set.

          View Source
          var ErrTestConstPicker = fmt.Errorf("const picker error")

            ErrTestConstPicker is error returned by test const picker.

            View Source
            var TestSubConns []*TestSubConn

              TestSubConns contains a list of SubConns to be used in tests.

              Functions

              func IsRoundRobin

              func IsRoundRobin(want []balancer.SubConn, f func() balancer.SubConn) error

                IsRoundRobin checks whether f's return value is roundrobin of elements from want. But it doesn't check for the order. Note that want can contain duplicate items, which makes it weight-round-robin.

                Step 1. the return values of f should form a permutation of all elements in want, but not necessary in the same order. E.g. if want is {a,a,b}, the check fails if f returns:

                - {a,a,a}: third a is returned before b
                - {a,b,b}: second b is returned before the second a
                

                If error is found in this step, the returned error contains only the first iteration until where it goes wrong.

                Step 2. the return values of f should be repetitions of the same permutation. E.g. if want is {a,a,b}, the check failes if f returns:

                - {a,b,a,b,a,a}: though it satisfies step 1, the second iteration is not
                repeating the first iteration.
                

                If error is found in this step, the returned error contains the first iteration + the second iteration until where it goes wrong.

                func LocalTCPListener

                func LocalTCPListener() (net.Listener, error)

                  LocalTCPListener returns a net.Listener listening on local address and port.

                  func LocalityIDToProto

                  func LocalityIDToProto(l internal.LocalityID) *v2corepb.Locality

                    LocalityIDToProto converts a LocalityID to its proto representation.

                    func NewTestWRR

                    func NewTestWRR() wrr.WRR

                      NewTestWRR return a WRR for testing. It's deterministic instead of random.

                      Types

                      type AddLocalityOptions

                      type AddLocalityOptions struct {
                      	Health []v2corepb.HealthStatus
                      	Weight []uint32
                      }

                        AddLocalityOptions contains options when adding locality to the builder.

                        type ClusterLoadAssignmentBuilder

                        type ClusterLoadAssignmentBuilder struct {
                        	// contains filtered or unexported fields
                        }

                          ClusterLoadAssignmentBuilder builds a ClusterLoadAssignment, aka EDS response.

                          func NewClusterLoadAssignmentBuilder

                          func NewClusterLoadAssignmentBuilder(clusterName string, dropPercents map[string]uint32) *ClusterLoadAssignmentBuilder

                            NewClusterLoadAssignmentBuilder creates a ClusterLoadAssignmentBuilder.

                            func (*ClusterLoadAssignmentBuilder) AddLocality

                            func (clab *ClusterLoadAssignmentBuilder) AddLocality(subzone string, weight uint32, priority uint32, addrsWithPort []string, opts *AddLocalityOptions)

                              AddLocality adds a locality to the builder.

                              func (*ClusterLoadAssignmentBuilder) Build

                                Build builds ClusterLoadAssignment.

                                type TestClientConn

                                type TestClientConn struct {
                                	NewSubConnAddrsCh chan []resolver.Address // the last 10 []Address to create subconn.
                                	NewSubConnCh      chan balancer.SubConn   // the last 10 subconn created.
                                	RemoveSubConnCh   chan balancer.SubConn   // the last 10 subconn removed.
                                
                                	NewPickerCh chan balancer.Picker    // the last picker updated.
                                	NewStateCh  chan connectivity.State // the last state.
                                	// contains filtered or unexported fields
                                }

                                  TestClientConn is a mock balancer.ClientConn used in tests.

                                  func NewTestClientConn

                                  func NewTestClientConn(t *testing.T) *TestClientConn

                                    NewTestClientConn creates a TestClientConn.

                                    func (*TestClientConn) NewSubConn

                                      NewSubConn creates a new SubConn.

                                      func (*TestClientConn) RemoveSubConn

                                      func (tcc *TestClientConn) RemoveSubConn(sc balancer.SubConn)

                                        RemoveSubConn removes the SubConn.

                                        func (*TestClientConn) ResolveNow

                                        func (tcc *TestClientConn) ResolveNow(resolver.ResolveNowOptions)

                                          ResolveNow panics.

                                          func (*TestClientConn) Target

                                          func (tcc *TestClientConn) Target() string

                                            Target panics.

                                            func (*TestClientConn) UpdateState

                                            func (tcc *TestClientConn) UpdateState(bs balancer.State)

                                              UpdateState updates connectivity state and picker.

                                              func (*TestClientConn) WaitForErrPicker

                                              func (tcc *TestClientConn) WaitForErrPicker(ctx context.Context) error

                                                WaitForErrPicker waits until an error picker is pushed to this ClientConn. Returns error if the provided context expires or a non-error picker is pushed to the ClientConn.

                                                type TestConstPicker

                                                type TestConstPicker struct {
                                                	Err error
                                                	SC  balancer.SubConn
                                                }

                                                  TestConstPicker is a const picker for tests.

                                                  func (*TestConstPicker) Pick

                                                    Pick returns the const SubConn or the error.

                                                    type TestSubConn

                                                    type TestSubConn struct {
                                                    	// contains filtered or unexported fields
                                                    }

                                                      TestSubConn implements the SubConn interface, to be used in tests.

                                                      func (*TestSubConn) Connect

                                                      func (tsc *TestSubConn) Connect()

                                                        Connect is a no-op.

                                                        func (*TestSubConn) String

                                                        func (tsc *TestSubConn) String() string

                                                          String implements stringer to print human friendly error message.

                                                          func (*TestSubConn) UpdateAddresses

                                                          func (tsc *TestSubConn) UpdateAddresses([]resolver.Address)

                                                            UpdateAddresses is a no-op.

                                                            Directories

                                                            Path Synopsis
                                                            Package e2e provides utilities for end2end testing of xDS functionality.
                                                            Package e2e provides utilities for end2end testing of xDS functionality.
                                                            Package fakeclient provides a fake implementation of an xDS client.
                                                            Package fakeclient provides a fake implementation of an xDS client.
                                                            Package fakeserver provides a fake implementation of the management server.
                                                            Package fakeserver provides a fake implementation of the management server.