Skip to content

Commit

Permalink
fix e2e scenario evaluators (#14798)
Browse files Browse the repository at this point in the history
* make fork evaluators conditional on fork for scenario tests

* changelog
  • Loading branch information
james-prysm authored Jan 16, 2025
1 parent dc002c2 commit 0b16c79
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 20 deletions.
3 changes: 3 additions & 0 deletions changelog/james-prysm_e2e-scenario-fork-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Fixed

- added conditional evaluators to fix scenario e2e tests
26 changes: 14 additions & 12 deletions testing/endtoend/endtoend_setup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ func addIfForkSet(
return evals
}

func scenarioEvals() []types.Evaluator {
return []types.Evaluator{
func scenarioEvals(cfg *params.BeaconChainConfig) []types.Evaluator {
evals := []types.Evaluator{
ev.PeersConnect,
ev.HealthzCheck,
ev.MetricsCheck,
Expand All @@ -198,18 +198,19 @@ func scenarioEvals() []types.Evaluator {
ev.ProposeVoluntaryExit,
ev.ValidatorsHaveExited,
ev.ColdStateCheckpoint,
ev.AltairForkTransition,
ev.BellatrixForkTransition,
ev.CapellaForkTransition,
ev.DenebForkTransition,
ev.FinishedSyncing,
ev.AllNodesHaveSameHead,
ev.ValidatorSyncParticipation,
}
evals = addIfForkSet(evals, cfg.AltairForkEpoch, ev.AltairForkTransition)
evals = addIfForkSet(evals, cfg.BellatrixForkEpoch, ev.BellatrixForkTransition)
evals = addIfForkSet(evals, cfg.CapellaForkEpoch, ev.CapellaForkTransition)
evals = addIfForkSet(evals, cfg.DenebForkEpoch, ev.DenebForkTransition)
return evals
}

func scenarioEvalsMulti() []types.Evaluator {
return []types.Evaluator{
func scenarioEvalsMulti(cfg *params.BeaconChainConfig) []types.Evaluator {
evals := []types.Evaluator{
ev.PeersConnect,
ev.HealthzCheck,
ev.MetricsCheck,
Expand All @@ -218,11 +219,12 @@ func scenarioEvalsMulti() []types.Evaluator {
ev.ProposeVoluntaryExit,
ev.ValidatorsHaveExited,
ev.ColdStateCheckpoint,
ev.AltairForkTransition,
ev.BellatrixForkTransition,
ev.CapellaForkTransition,
ev.DenebForkTransition,
ev.FinishedSyncing,
ev.AllNodesHaveSameHead,
}
evals = addIfForkSet(evals, cfg.AltairForkEpoch, ev.AltairForkTransition)
evals = addIfForkSet(evals, cfg.BellatrixForkEpoch, ev.BellatrixForkTransition)
evals = addIfForkSet(evals, cfg.CapellaForkEpoch, ev.CapellaForkTransition)
evals = addIfForkSet(evals, cfg.DenebForkEpoch, ev.DenebForkTransition)
return evals
}
6 changes: 4 additions & 2 deletions testing/endtoend/mainnet_scenario_e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ import (
)

func TestEndToEnd_MultiScenarioRun_Multiclient(t *testing.T) {
runner := e2eMainnet(t, false, true, types.InitForkCfg(version.Bellatrix, version.Deneb, params.E2EMainnetTestConfig()), types.WithEpochs(24))
runner.config.Evaluators = scenarioEvalsMulti()
cfg := types.InitForkCfg(version.Bellatrix, version.Deneb, params.E2EMainnetTestConfig())
runner := e2eMainnet(t, false, true, cfg, types.WithEpochs(24))
// override for scenario tests
runner.config.Evaluators = scenarioEvalsMulti(cfg)
runner.config.EvalInterceptor = runner.multiScenarioMulticlient
runner.scenarioRunner()
}
14 changes: 8 additions & 6 deletions testing/endtoend/minimal_scenario_e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ import (
)

func TestEndToEnd_MultiScenarioRun(t *testing.T) {
runner := e2eMinimal(t, types.InitForkCfg(version.Bellatrix, version.Deneb, params.E2ETestConfig()), types.WithEpochs(26))

runner.config.Evaluators = scenarioEvals()
cfg := types.InitForkCfg(version.Bellatrix, version.Deneb, params.E2ETestConfig())
runner := e2eMinimal(t, cfg, types.WithEpochs(26))
// override for scenario tests
runner.config.Evaluators = scenarioEvals(cfg)
runner.config.EvalInterceptor = runner.multiScenario
runner.scenarioRunner()
}
Expand All @@ -30,9 +31,10 @@ func TestEndToEnd_MinimalConfig_ValidatorRESTApi(t *testing.T) {

func TestEndToEnd_ScenarioRun_EEOffline(t *testing.T) {
t.Skip("TODO(#10242) Prysm is current unable to handle an offline e2e")
runner := e2eMinimal(t, types.InitForkCfg(version.Bellatrix, version.Deneb, params.E2ETestConfig()))

runner.config.Evaluators = scenarioEvals()
cfg := types.InitForkCfg(version.Bellatrix, version.Deneb, params.E2ETestConfig())
runner := e2eMinimal(t, cfg)
// override for scenario tests
runner.config.Evaluators = scenarioEvals(cfg)
runner.config.EvalInterceptor = runner.eeOffline
runner.scenarioRunner()
}

0 comments on commit 0b16c79

Please sign in to comment.