Documentation ¶
Overview ¶
Package integration implements tests built upon embedded etcd, and focus on etcd correctness.
Features/goals of the integration tests: 1. test the whole code base except command-line parsing. 2. check internal data, including raft, store and etc. 3. based on goroutines, which is faster than process. 4. mainly tests user behavior and user-facing API.
Index ¶
- Constants
- func MustNewHTTPClient(t testing.TB, eps []string, tls *transport.TLSInfo) client.Client
- func NewClientV3(m *member) (*clientv3.Client, error)
- func NewCluster(t testing.TB, size int) *cluster
- func NewClusterByConfig(t testing.TB, cfg *ClusterConfig) *cluster
- func NewListenerWithAddr(t testing.TB, addr string) net.Listener
- func WaitClientV3(t testing.TB, kv clientv3.KV)
- type ClusterConfig
- type ClusterV3
- func (c *ClusterV3) AddAndLaunchLearnerMember(t testing.TB)
- func (c ClusterV3) AddMember(t testing.TB)
- func (c *ClusterV3) Client(i int) *clientv3.Client
- func (c *ClusterV3) GetLearnerMembers() ([]*pb.Member, error)
- func (c ClusterV3) HTTPMembers() []client.Member
- func (c ClusterV3) Launch(t testing.TB)
- func (c *ClusterV3) MustNewMember(t testing.TB, resp *clientv3.MemberAddResponse) *member
- func (c *ClusterV3) RandClient() *clientv3.Client
- func (c ClusterV3) RemoveMember(t testing.TB, id uint64)
- func (c *ClusterV3) TakeClient(idx int)
- func (c *ClusterV3) Terminate(t testing.TB)
- func (c ClusterV3) URL(i int) string
- func (c ClusterV3) URLs() []string
- func (c ClusterV3) WaitLeader(t testing.TB) int
- func (c ClusterV3) WaitNoLeader()
- type SortableMemberSliceByPeerURLs
- type SortableProtoMemberSliceByPeerURLs
Constants ¶
const ( // RequestWaitTimeout is the time duration to wait for a request to go through or detect leader loss. RequestWaitTimeout = 3 * time.Second URLScheme = "unix" URLSchemeTLS = "unixs" )
Variables ¶
This section is empty.
Functions ¶
func MustNewHTTPClient ¶
func NewClientV3 ¶
NewClientV3 creates a new grpc client connection to the member
func NewCluster ¶
NewCluster returns an unlaunched cluster of the given size which has been set to use static bootstrap.
func NewClusterByConfig ¶
func NewClusterByConfig(t testing.TB, cfg *ClusterConfig) *cluster
NewClusterByConfig returns an unlaunched cluster defined by a cluster configuration
Types ¶
type ClusterConfig ¶
type ClusterConfig struct { Size int PeerTLS *transport.TLSInfo ClientTLS *transport.TLSInfo DiscoveryURL string AuthToken string UseGRPC bool QuotaBackendBytes int64 MaxTxnOps uint MaxRequestBytes uint SnapshotCount uint64 SnapshotCatchUpEntries uint64 GRPCKeepAliveMinTime time.Duration GRPCKeepAliveInterval time.Duration GRPCKeepAliveTimeout time.Duration // SkipCreatingClient to skip creating clients for each member. SkipCreatingClient bool ClientMaxCallSendMsgSize int ClientMaxCallRecvMsgSize int // UseIP is true to use only IP for gRPC requests. UseIP bool EnableLeaseCheckpoint bool LeaseCheckpointInterval time.Duration WatchProgressNotifyInterval time.Duration }
type ClusterV3 ¶
type ClusterV3 struct {
// contains filtered or unexported fields
}
func NewClusterV3 ¶
func NewClusterV3(t testing.TB, cfg *ClusterConfig) *ClusterV3
NewClusterV3 returns a launched cluster with a grpc client connection for each cluster member.
func (*ClusterV3) AddAndLaunchLearnerMember ¶
AddAndLaunchLearnerMember creates a leaner member, adds it to cluster via v3 MemberAdd API, and then launches the new member.
func (*ClusterV3) GetLearnerMembers ¶
GetLearnerMembers returns the list of learner members in cluster using MemberList API.
func (ClusterV3) HTTPMembers ¶
HTTPMembers returns a list of all active members as client.Members
func (*ClusterV3) MustNewMember ¶
func (c *ClusterV3) MustNewMember(t testing.TB, resp *clientv3.MemberAddResponse) *member
MustNewMember creates a new member instance based on the response of V3 Member Add API.
func (*ClusterV3) RandClient ¶
func (ClusterV3) RemoveMember ¶
func (*ClusterV3) TakeClient ¶
func (ClusterV3) URLs ¶
func (c ClusterV3) URLs() []string
URLs returns a list of all active client URLs in the cluster
func (ClusterV3) WaitLeader ¶
func (ClusterV3) WaitNoLeader ¶
func (c ClusterV3) WaitNoLeader()
type SortableMemberSliceByPeerURLs ¶
func (SortableMemberSliceByPeerURLs) Len ¶
func (p SortableMemberSliceByPeerURLs) Len() int
func (SortableMemberSliceByPeerURLs) Less ¶
func (p SortableMemberSliceByPeerURLs) Less(i, j int) bool
func (SortableMemberSliceByPeerURLs) Swap ¶
func (p SortableMemberSliceByPeerURLs) Swap(i, j int)
type SortableProtoMemberSliceByPeerURLs ¶
func (SortableProtoMemberSliceByPeerURLs) Len ¶
func (p SortableProtoMemberSliceByPeerURLs) Len() int
func (SortableProtoMemberSliceByPeerURLs) Less ¶
func (p SortableProtoMemberSliceByPeerURLs) Less(i, j int) bool
func (SortableProtoMemberSliceByPeerURLs) Swap ¶
func (p SortableProtoMemberSliceByPeerURLs) Swap(i, j int)