Skip to content

Commit

Permalink
*: make TestEtcdScaleInAndOut stable (#8067)
Browse files Browse the repository at this point in the history
close #6892

Signed-off-by: Ryan Leung <[email protected]>

Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com>
  • Loading branch information
rleungx and ti-chi-bot[bot] authored Apr 16, 2024
1 parent a109f9c commit a767a5f
Showing 1 changed file with 21 additions and 12 deletions.
33 changes: 21 additions & 12 deletions pkg/utils/etcdutil/testutil.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,18 +122,27 @@ func MustAddEtcdMember(t *testing.T, cfg1 *embed.Config, client *clientv3.Client

func checkMembers(re *require.Assertions, client *clientv3.Client, etcds []*embed.Etcd) {
// Check the client can get the new member.
listResp, err := ListEtcdMembers(client.Ctx(), client)
re.NoError(err)
re.Len(listResp.Members, len(etcds))
inList := func(m *etcdserverpb.Member) bool {
for _, etcd := range etcds {
if m.ID == uint64(etcd.Server.ID()) {
return true
testutil.Eventually(re, func() bool {
listResp, err := ListEtcdMembers(client.Ctx(), client)
if err != nil {
return false
}
if len(etcds) != len(listResp.Members) {
return false
}
inList := func(m *etcdserverpb.Member) bool {
for _, etcd := range etcds {
if m.ID == uint64(etcd.Server.ID()) {
return true
}
}
return false
}
return false
}
for _, m := range listResp.Members {
re.True(inList(m))
}
for _, m := range listResp.Members {
if !inList(m) {
return false
}
}
return true
})
}

0 comments on commit a767a5f

Please sign in to comment.