StartEtcdProcessCluster launches a new cluster from etcd processes.
(ctx context.Context, t testing.TB, epc *EtcdProcessCluster, cfg *EtcdProcessClusterConfig)
| 482 | |
| 483 | // StartEtcdProcessCluster launches a new cluster from etcd processes. |
| 484 | func StartEtcdProcessCluster(ctx context.Context, t testing.TB, epc *EtcdProcessCluster, cfg *EtcdProcessClusterConfig) (*EtcdProcessCluster, error) { |
| 485 | if cfg.RollingStart { |
| 486 | if err := epc.RollingStart(ctx); err != nil { |
| 487 | return nil, fmt.Errorf("cannot rolling-start: %w", err) |
| 488 | } |
| 489 | } else { |
| 490 | if err := epc.Start(ctx); err != nil { |
| 491 | return nil, fmt.Errorf("cannot start: %w", err) |
| 492 | } |
| 493 | } |
| 494 | |
| 495 | for _, proc := range epc.Procs { |
| 496 | if cfg.GoFailEnabled && !proc.Failpoints().Enabled() { |
| 497 | epc.Close() |
| 498 | t.Skip("please run 'make gofail-enable && make build' before running the test") |
| 499 | } |
| 500 | } |
| 501 | if cfg.InitialLeaderIndex >= 0 { |
| 502 | if err := epc.MoveLeader(ctx, t, cfg.InitialLeaderIndex); err != nil { |
| 503 | return nil, fmt.Errorf("failed to move leader: %w", err) |
| 504 | } |
| 505 | } |
| 506 | return epc, nil |
| 507 | } |
| 508 | |
| 509 | func (cfg *EtcdProcessClusterConfig) ClientScheme() string { |
| 510 | return setupScheme(cfg.BaseClientScheme, cfg.Client.ConnectionType == ClientTLS) |
no test coverage detected
searching dependent graphs…