diff --git a/tests/e2e/ctl_v3_auth_cluster_test.go b/tests/e2e/ctl_v3_auth_cluster_test.go index af0d97d9a..93685c15d 100644 --- a/tests/e2e/ctl_v3_auth_cluster_test.go +++ b/tests/e2e/ctl_v3_auth_cluster_test.go @@ -65,7 +65,7 @@ func TestAuthCluster(t *testing.T) { } // start second process - if err := epc.StartNewProc(ctx, t, rootUserClientOpts); err != nil { + if err := epc.StartNewProc(ctx, nil, t, rootUserClientOpts); err != nil { t.Fatalf("could not start second etcd process (%v)", err) } diff --git a/tests/e2e/etcd_grpcproxy_test.go b/tests/e2e/etcd_grpcproxy_test.go index b6b0b0f73..a38e95332 100644 --- a/tests/e2e/etcd_grpcproxy_test.go +++ b/tests/e2e/etcd_grpcproxy_test.go @@ -65,7 +65,7 @@ func TestGrpcProxyAutoSync(t *testing.T) { require.NoError(t, err) // Add and start second member - err = epc.StartNewProc(ctx, t) + err = epc.StartNewProc(ctx, nil, t) require.NoError(t, err) // Wait for auto sync of endpoints diff --git a/tests/framework/e2e/cluster.go b/tests/framework/e2e/cluster.go index f02e1861b..be3e98b5c 100644 --- a/tests/framework/e2e/cluster.go +++ b/tests/framework/e2e/cluster.go @@ -604,11 +604,15 @@ func (epc *EtcdProcessCluster) Endpoints(f func(ep EtcdProcess) []string) (ret [ func (epc *EtcdProcessCluster) CloseProc(ctx context.Context, finder func(EtcdProcess) bool, opts ...config.ClientOption) error { procIndex := -1 - for i := range epc.Procs { - if finder(epc.Procs[i]) { - procIndex = i - break + if finder != nil { + for i := range epc.Procs { + if finder(epc.Procs[i]) { + procIndex = i + break + } } + } else { + procIndex = len(epc.Procs) - 1 } if procIndex == -1 { @@ -651,8 +655,14 @@ func (epc *EtcdProcessCluster) CloseProc(ctx context.Context, finder func(EtcdPr return proc.Close() } -func (epc *EtcdProcessCluster) StartNewProc(ctx context.Context, tb testing.TB, opts ...config.ClientOption) error { - serverCfg := epc.Cfg.EtcdServerProcessConfig(tb, epc.nextSeq) +func (epc *EtcdProcessCluster) StartNewProc(ctx context.Context, cfg *EtcdProcessClusterConfig, tb testing.TB, opts ...config.ClientOption) error { + var serverCfg *EtcdServerProcessConfig + if cfg != nil { + serverCfg = cfg.EtcdServerProcessConfig(tb, epc.nextSeq) + } else { + serverCfg = epc.Cfg.EtcdServerProcessConfig(tb, epc.nextSeq) + } + epc.nextSeq++ initialCluster := []string{