From 84533d5e85fbdf9812328a225c1cec94110b8f73 Mon Sep 17 00:00:00 2001 From: Benjamin Wang Date: Fri, 16 Aug 2024 11:04:02 +0100 Subject: [PATCH] test: extend leaseRevoke and leaseRenew test to support 5 members cluster Signed-off-by: Benjamin Wang --- tests/e2e/v3_lease_no_proxy_test.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/tests/e2e/v3_lease_no_proxy_test.go b/tests/e2e/v3_lease_no_proxy_test.go index f554c632bd5..b24d69a0134 100644 --- a/tests/e2e/v3_lease_no_proxy_test.go +++ b/tests/e2e/v3_lease_no_proxy_test.go @@ -32,24 +32,34 @@ import ( // by old leader. // See the case 1 in https://github.com/etcd-io/etcd/issues/15247#issuecomment-1777862093. func TestLeaseRevoke_IgnoreOldLeader(t *testing.T) { - testLeaseRevokeIssue(t, true) + t.Run("3 members", func(t *testing.T) { + testLeaseRevokeIssue(t, 3, true) + }) + t.Run("5 members", func(t *testing.T) { + testLeaseRevokeIssue(t, 5, true) + }) } // TestLeaseRevoke_ClientSwitchToOtherMember verifies that leases shouldn't // be revoked by new leader. // See the case 2 in https://github.com/etcd-io/etcd/issues/15247#issuecomment-1777862093. func TestLeaseRevoke_ClientSwitchToOtherMember(t *testing.T) { - testLeaseRevokeIssue(t, false) + t.Run("3 members", func(t *testing.T) { + testLeaseRevokeIssue(t, 3, false) + }) + t.Run("5 members", func(t *testing.T) { + testLeaseRevokeIssue(t, 5, false) + }) } -func testLeaseRevokeIssue(t *testing.T, connectToOneFollower bool) { +func testLeaseRevokeIssue(t *testing.T, clusterSize int, connectToOneFollower bool) { e2e.BeforeTest(t) ctx := context.Background() t.Log("Starting a new etcd cluster") epc, err := e2e.NewEtcdProcessCluster(ctx, t, - e2e.WithClusterSize(3), + e2e.WithClusterSize(clusterSize), e2e.WithGoFailEnabled(true), e2e.WithGoFailClientTimeout(40*time.Second), ) @@ -63,7 +73,7 @@ func testLeaseRevokeIssue(t *testing.T, connectToOneFollower bool) { leaderIdx := epc.WaitLeader(t) t.Logf("Leader index: %d", leaderIdx) - epsForNormalOperations := epc.Procs[(leaderIdx+2)%3].EndpointsGRPC() + epsForNormalOperations := epc.Procs[(leaderIdx+2)%clusterSize].EndpointsGRPC() t.Logf("Creating a client for normal operations: %v", epsForNormalOperations) client, err := clientv3.New(clientv3.Config{Endpoints: epsForNormalOperations, DialTimeout: 3 * time.Second}) require.NoError(t, err) @@ -71,7 +81,7 @@ func testLeaseRevokeIssue(t *testing.T, connectToOneFollower bool) { var epsForLeaseKeepAlive []string if connectToOneFollower { - epsForLeaseKeepAlive = epc.Procs[(leaderIdx+1)%3].EndpointsGRPC() + epsForLeaseKeepAlive = epc.Procs[(leaderIdx+1)%clusterSize].EndpointsGRPC() } else { epsForLeaseKeepAlive = epc.EndpointsGRPC() }