From 6c807b30f2ff463083ab4d7b73450060702965f7 Mon Sep 17 00:00:00 2001 From: Benjamin Wang Date: Fri, 23 May 2025 10:40:59 +0100 Subject: [PATCH] Move parseArgs into e2e framework Signed-off-by: Benjamin Wang --- tests/e2e/ctl_v3_member_no_proxy_test.go | 4 ++-- tests/e2e/ctl_v3_snapshot_test.go | 7 ++----- tests/e2e/utils.go | 10 ---------- tests/framework/e2e/cluster.go | 12 +++++++++++- tests/framework/e2e/cluster_test.go | 3 +-- 5 files changed, 16 insertions(+), 20 deletions(-) diff --git a/tests/e2e/ctl_v3_member_no_proxy_test.go b/tests/e2e/ctl_v3_member_no_proxy_test.go index 6f1aa28c4134..983d4b356d9f 100644 --- a/tests/e2e/ctl_v3_member_no_proxy_test.go +++ b/tests/e2e/ctl_v3_member_no_proxy_test.go @@ -78,7 +78,7 @@ func TestMemberReplace(t *testing.T) { removedMemberPeerURL := member.Config().PeerURL.String() _, err = cc.MemberAdd(ctx, memberName, []string{removedMemberPeerURL}) require.NoError(t, err) - err = patchArgs(member.Config().Args, "initial-cluster-state", "existing") + err = e2e.PatchArgs(member.Config().Args, "initial-cluster-state", "existing") require.NoError(t, err) // Sleep 100ms to bypass the known issue https://github.com/etcd-io/etcd/issues/16687. @@ -146,7 +146,7 @@ func TestMemberReplaceWithLearner(t *testing.T) { _, err = cc.MemberAddAsLearner(ctx, memberName, []string{removedMemberPeerURL}) require.NoError(t, err) - err = patchArgs(member.Config().Args, "initial-cluster-state", "existing") + err = e2e.PatchArgs(member.Config().Args, "initial-cluster-state", "existing") require.NoError(t, err) // Sleep 100ms to bypass the known issue https://github.com/etcd-io/etcd/issues/16687. diff --git a/tests/e2e/ctl_v3_snapshot_test.go b/tests/e2e/ctl_v3_snapshot_test.go index cbf6dee5e57b..c5346fc595ca 100644 --- a/tests/e2e/ctl_v3_snapshot_test.go +++ b/tests/e2e/ctl_v3_snapshot_test.go @@ -365,11 +365,8 @@ func TestRestoreCompactionRevBump(t *testing.T) { t.Log("(Re)starting the etcd member using the restored snapshot...") epc.Procs[0].Config().DataDirPath = newDataDir - for i := range epc.Procs[0].Config().Args { - if epc.Procs[0].Config().Args[i] == "--data-dir" { - epc.Procs[0].Config().Args[i+1] = newDataDir - } - } + err = e2e.PatchArgs(epc.Procs[0].Config().Args, "data-dir", newDataDir) + require.NoError(t, err) // Verify that initial snapshot is created by the restore operation verifySnapshotMembers(t, epc, membersBefore) diff --git a/tests/e2e/utils.go b/tests/e2e/utils.go index 3f4ca015bc75..9eb7e0ec2c30 100644 --- a/tests/e2e/utils.go +++ b/tests/e2e/utils.go @@ -145,16 +145,6 @@ func getMemberIDByName(ctx context.Context, c *e2e.EtcdctlV3, name string) (id u return 0, false, nil } -func patchArgs(args []string, flag, newValue string) error { - for i, arg := range args { - if strings.Contains(arg, flag) { - args[i] = fmt.Sprintf("--%s=%s", flag, newValue) - return nil - } - } - return fmt.Errorf("--%s flag not found", flag) -} - func generateCertsForIPs(tempDir string, ips []net.IP) (caFile string, certFiles []string, keyFiles []string, err error) { ca := &x509.Certificate{ SerialNumber: big.NewInt(1001), diff --git a/tests/framework/e2e/cluster.go b/tests/framework/e2e/cluster.go index f32b51671a1d..09444dd51f2a 100644 --- a/tests/framework/e2e/cluster.go +++ b/tests/framework/e2e/cluster.go @@ -573,7 +573,7 @@ func (cfg *EtcdProcessClusterConfig) EtcdServerProcessConfig(tb testing.TB, i in "--listen-peer-urls=" + peerListenURL.String(), "--initial-advertise-peer-urls=" + peerAdvertiseURL.String(), "--initial-cluster-token=" + cfg.ServerConfig.InitialClusterToken, - "--data-dir", dataDirPath, + "--data-dir=" + dataDirPath, "--snapshot-count=" + fmt.Sprintf("%d", cfg.ServerConfig.SnapshotCount), } var clientHTTPURL string @@ -932,6 +932,16 @@ func (epc *EtcdProcessCluster) UpdateProcOptions(i int, tb testing.TB, opts ...E return nil } +func PatchArgs(args []string, flag, newValue string) error { + for i, arg := range args { + if strings.Contains(arg, flag) { + args[i] = fmt.Sprintf("--%s=%s", flag, newValue) + return nil + } + } + return fmt.Errorf("--%s flag not found", flag) +} + func (epc *EtcdProcessCluster) Start(ctx context.Context) error { return epc.start(func(ep EtcdProcess) error { return ep.Start(ctx) }) } diff --git a/tests/framework/e2e/cluster_test.go b/tests/framework/e2e/cluster_test.go index 5880bd38726e..1b45c0b06c16 100644 --- a/tests/framework/e2e/cluster_test.go +++ b/tests/framework/e2e/cluster_test.go @@ -43,8 +43,7 @@ func TestEtcdServerProcessConfig(t *testing.T) { "--listen-peer-urls=http://localhost:1", "--initial-advertise-peer-urls=http://localhost:1", "--initial-cluster-token=new", - "--data-dir", - "/tmp/a/member-0", + "--data-dir=/tmp/a/member-0", "--snapshot-count=10000", "--initial-cluster-token=new", },