Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scenario End To End Testing #10696

Merged
merged 21 commits into from
May 20, 2022
Merged

Scenario End To End Testing #10696

merged 21 commits into from
May 20, 2022

Conversation

nisdas
Copy link
Member

@nisdas nisdas commented May 16, 2022

What type of PR is this?

End To End Feature Addition

What does this PR do? Why is it needed?

This PR introduces a new feature for our end to end testing. Currently our end to end testing works in a best-case fashion. We run our end to end test suite with a pre-defined setup and the network that is setup is run is expected to pass the designated evaluators. This approach has been very useful in ensuring our builds are reliable and any new PRs being opened do not break anything. However while our end to end testing is very useful tool, it doesn't test how resilient prysm nodes are to faults in the network. (Other nodes going offline, validators going offline,etc).

Scenario Testing introduces the ability for our e2e test runner to introduce faults in the network. The ability to do this is very much needed to test edge cases with the merge coming up. Due to the interactions between the consensus and execution node, the ability to reliably test that prysm can recover from the correctly will be important. Scenario testing now introduces the ability for our test runner to pause/resume/stop any desired process that is currently running. The ability to pause/stop a process can be used to simulate faults in the network and test for any scenarios that we want.

We now have a special scenario test runner, this test runner is slightly different from our normal test runner in that it doesn't run with a few things enabled(new deposits, weak subjectivity sync, doppelganger checks, etc). If desired these cases can be added to the scenario runner. The reason we haven't added it in so far is for simplicity.

Once this is merged in, we can start work on introducing a proxy for our execution nodes and use that to modify json-rpc requests and responses.

Which issues(s) does this PR fix?

Part of #10242

Other notes for review

@nisdas nisdas marked this pull request as ready for review May 18, 2022 09:23
@nisdas nisdas requested a review from a team as a code owner May 18, 2022 09:23
@nisdas nisdas requested review from saolyn, potuz and terencechain May 18, 2022 09:23
@nisdas nisdas added Ready For Review E2E Tests End-To-End testing Merge PRs related to the great milestone the merge labels May 18, 2022
rauljordan
rauljordan previously approved these changes May 19, 2022
Copy link
Contributor

@rauljordan rauljordan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is super creative. First time I also hear about sig pause

@rauljordan
Copy link
Contributor

Some conflicts @nisdas

rauljordan
rauljordan previously approved these changes May 19, 2022
@prylabs-bulldozer prylabs-bulldozer bot merged commit a984605 into develop May 20, 2022
@delete-merged-branch delete-merged-branch bot deleted the moveAroundRunner branch May 20, 2022 09:34
@nisdas nisdas mentioned this pull request Jun 8, 2022
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E2E Tests End-To-End testing Merge PRs related to the great milestone the merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants