From d7f992c351f8b693d88dc36fd093d293182f28e4 Mon Sep 17 00:00:00 2001 From: Chao Chen Date: Fri, 17 Mar 2023 15:15:13 -0700 Subject: [PATCH] enable pre-vote by default and add retry on member_test Signed-off-by: Chao Chen --- tests/common/member_test.go | 15 +++++++++++---- tests/framework/integration/cluster.go | 4 +++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/tests/common/member_test.go b/tests/common/member_test.go index ac5f234b3..46241ccdd 100644 --- a/tests/common/member_test.go +++ b/tests/common/member_test.go @@ -19,6 +19,7 @@ import ( "testing" "time" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" clientv3 "go.etcd.io/etcd/client/v3" @@ -49,11 +50,17 @@ func TestMemberList(t *testing.T) { if expectNum != gotNum { t.Fatalf("number of members not equal, expect: %d, got: %d", expectNum, gotNum) } - for _, m := range resp.Members { - if len(m.ClientURLs) == 0 { - t.Fatalf("member is not started, memberId:%d, memberName:%s", m.ID, m.Name) + assert.Eventually(t, func() (done bool) { + for _, m := range resp.Members { + if len(m.ClientURLs) == 0 { + t.Logf("member is not started, memberId:%d, memberName:%s", m.ID, m.Name) + done = false + return done + } } - } + done = true + return true + }, time.Second*5, time.Millisecond*100) }) }) } diff --git a/tests/framework/integration/cluster.go b/tests/framework/integration/cluster.go index 1c26d0700..175582737 100644 --- a/tests/framework/integration/cluster.go +++ b/tests/framework/integration/cluster.go @@ -37,6 +37,8 @@ import ( "go.uber.org/zap/zapcore" "go.uber.org/zap/zaptest" + "go.etcd.io/raft/v3" + pb "go.etcd.io/etcd/api/v3/etcdserverpb" "go.etcd.io/etcd/client/pkg/v3/testutil" "go.etcd.io/etcd/client/pkg/v3/tlsutil" @@ -59,7 +61,6 @@ import ( "go.etcd.io/etcd/server/v3/verify" framecfg "go.etcd.io/etcd/tests/v3/framework/config" "go.etcd.io/etcd/tests/v3/framework/testutils" - "go.etcd.io/raft/v3" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" @@ -662,6 +663,7 @@ func MustNewMember(t testutil.TB, mcfg MemberConfig) *Member { m.ElectionTicks = ElectionTicks m.InitialElectionTickAdvance = true m.TickMs = uint(framecfg.TickDuration / time.Millisecond) + m.PreVote = true m.QuotaBackendBytes = mcfg.QuotaBackendBytes m.MaxTxnOps = mcfg.MaxTxnOps if m.MaxTxnOps == 0 {