-
Notifications
You must be signed in to change notification settings - Fork 33
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
[E2E Test] Utilities for State Sync Test #874
Conversation
️✅ There are no secrets present in this pull request anymore.If these secrets were true positive and are still valid, we highly recommend you to revoke them. 🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request. |
d76cd0e
to
c30913c
Compare
c30913c
to
d353048
Compare
2055b82
to
e74cc90
Compare
@dylanlott @red-0ne @adshmh Please note that this test is still a bit flaky for now (will solidify it next week), but I think this change is close enough to start getting reviews on. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't review everything in detail but this approach for handling e2e looks great. I was taking a bit of a different approach instead of waiting for a specified time after triggering the next view, I added more state to the test suite and track pending transaction hashes waiting for them to be all committed. Using the tilt executable too is a nice touch for introducing more participants.
potentially instead of a simple wait, perhaps we can add a step that gets the current height, triggers next view, and then polls for the height to change.
All in all in this is a great direction for the stability of the e2e tests.
1c6c365
to
9118167
Compare
@red-0ne Could you please prioritize taking a look at this? |
@0xBigBoss I've created #959 and added TODO comments so we can either poll on heights on healthchecks in a followup commit. Also, to avoid PRs that are too large, would appreciate if you could split out things that are possible. For example, this used to be part of the state sync PR, but I split it out to make it easier for the reviewer instead of having one multi-thousand line PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have minor comments.
It's a good base to test state sync against. LGTM 👍
Actually, I'm having trouble running making the e2e test succeed. Will comeback after resolving it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all in all a great base addition to the e2e tests. i think it's good to merge and work on removing the timers in separate PRs.
## Description <!-- reviewpad:summarize:start --> ### Summary generated by Reviewpad on 03 Aug 23 20:11 UTC This pull request introduces several changes across multiple files. Here is a summary of the changes: 1. `go.mod`: - The `golang.org/x/text` dependency is now listed explicitly instead of being an indirect dependency. 2. `scenario_test.go`: - Added a new feature called "State Sync Namespace" that includes various commands and waits for specific amounts of time. - Code improvements and TODO comments have been added. 3. `FAQ.md`: - Updated an issue related to starting LocalNet with SELinux on an operating system. Replaced the command `make compose_and_watch` with `make lightweight_localnet` to avoid permission denied errors. 4. `.gitignore`: - Removed the entry "main" from the list of ignored files. - Removed the entries "rpc/server.gen.go" and "rpc/client.gen.go" from the list of ignored files. - Added the entry "**/gomock_reflect_*/" to ignore mock temporary files. 5. `e2e/README.md`: - Added a new section on `Keywords`. - Modified scenario descriptions and code examples to replace instances of "Validator" with "Node". - Included a flowchart depicting the E2E scenarios with updated terminology. 6. Consensus module files: - Added a new logging statement in the `HandleDebugMessage` function. - Simplified the handling of the `DEBUG_CONSENSUS_RESET_TO_GENESIS` action. 7. `.tiltignore`: - Removed the entry "main" from the list of ignored files. - Removed the entries "rpc/server.gen.go" and "rpc/client.gen.go" from the list of ignored files. 8. `CHANGELOG.md`: - Updated build commands and added a new section on `Keywords`. 9. `persistence/docs/CHANGELOG.md`: - Several changes related to deprecation, addition, and fixing of functions and issues. 10. `validator.feature`: - Renamed file from "valdator.feature" to "validator.feature". - Updated scenario titles and step descriptions to use more descriptive terminology. - Replaced references to "validator" with "node". 11. `tilt_helpers.go`: - Added a new file containing functions related to syncing network configuration and checking package installation. 12. `debug.go`: - Added new debug commands and subcommands. - Updated existing functions and added new functions for debug actions. 13. `account.feature`: - Added a new file containing scenarios for testing node account functionalities. 14. `README.md` files: - Updated sections, titles, dependencies, and instructions in various README.md files. 15. `build/config/README.md`: - Updated usage instructions, changing the command `make compose_and_watch` to `make lightweight_localnet`. 16. `iteration_3_end_to_end_tx.md`: - Updated commands to start LocalNet and consensus debugger. 17. Deleted files: - `validator.go` - `watch_build.sh` 18. New files added: - `debug.feature` - `tilt_helpers.go` - `account.feature` Please let me know if you need more information about any specific change. <!-- reviewpad:summarize:end --> ## Issue Fixes par of #579 ## Type of change Please mark the relevant option(s): - [x] New feature, functionality or library - [ ] Bug fix - [ ] Code health or cleanup - [ ] Major breaking change - [ ] Documentation - [ ] Other <!-- add details here if it a different type of change --> ## List of changes - `s/compose_and_watch/lightweight_localnet` and all related helpers - `s/validator/node` in e2e tests for clarity - Add fire-and-forget `Debug` CLI w/ several useful initial subcommands - Add `keywords` to the `e2e` document - Add an `e2e debug` test to trigger views and track the blockchain increasing - Avoid rebuilding the actors if the CLI changes - Small miscellaneous improvements & code cleanup ## Testing - [x] `make develop_test`; if any code changes were made - [ ] `make test_e2e` on [k8s LocalNet](https://github.com/pokt-network/pocket/blob/main/build/localnet/README.md); if any code changes were made - [ ] `e2e-devnet-test` passes tests on [DevNet](https://pocketnetwork.notion.site/How-to-DevNet-ff1598f27efe44c09f34e2aa0051f0dd); if any code was changed - [ ] [Docker Compose LocalNet](https://github.com/pokt-network/pocket/blob/main/docs/development/README.md); if any major functionality was changed or introduced - [ ] [k8s LocalNet](https://github.com/pokt-network/pocket/blob/main/build/localnet/README.md); if any infrastructure or configuration changes were made ## Required Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have added, or updated, [`godoc` format comments](https://go.dev/blog/godoc) on touched members (see: [tip.golang.org/doc/comment](https://tip.golang.org/doc/comment)) - [ ] I have tested my changes using the available tooling - [ ] I have updated the corresponding CHANGELOG ### If Applicable Checklist - [x] I have updated the corresponding README(s); local and/or global - [x] I have added tests that prove my fix is effective or that my feature works - [ ] I have added, or updated, [mermaid.js](https://mermaid-js.github.io) diagrams in the corresponding README(s) - [ ] I have added, or updated, documentation and [mermaid.js](https://mermaid-js.github.io) diagrams in `shared/docs/*` if I updated `shared/*`README(s) --- Co-authored-by: d7t <[email protected]>
## Description <!-- reviewpad:summarize:start --> ### Summary generated by Reviewpad on 03 Aug 23 20:11 UTC This pull request introduces several changes across multiple files. Here is a summary of the changes: 1. `go.mod`: - The `golang.org/x/text` dependency is now listed explicitly instead of being an indirect dependency. 2. `scenario_test.go`: - Added a new feature called "State Sync Namespace" that includes various commands and waits for specific amounts of time. - Code improvements and TODO comments have been added. 3. `FAQ.md`: - Updated an issue related to starting LocalNet with SELinux on an operating system. Replaced the command `make compose_and_watch` with `make lightweight_localnet` to avoid permission denied errors. 4. `.gitignore`: - Removed the entry "main" from the list of ignored files. - Removed the entries "rpc/server.gen.go" and "rpc/client.gen.go" from the list of ignored files. - Added the entry "**/gomock_reflect_*/" to ignore mock temporary files. 5. `e2e/README.md`: - Added a new section on `Keywords`. - Modified scenario descriptions and code examples to replace instances of "Validator" with "Node". - Included a flowchart depicting the E2E scenarios with updated terminology. 6. Consensus module files: - Added a new logging statement in the `HandleDebugMessage` function. - Simplified the handling of the `DEBUG_CONSENSUS_RESET_TO_GENESIS` action. 7. `.tiltignore`: - Removed the entry "main" from the list of ignored files. - Removed the entries "rpc/server.gen.go" and "rpc/client.gen.go" from the list of ignored files. 8. `CHANGELOG.md`: - Updated build commands and added a new section on `Keywords`. 9. `persistence/docs/CHANGELOG.md`: - Several changes related to deprecation, addition, and fixing of functions and issues. 10. `validator.feature`: - Renamed file from "valdator.feature" to "validator.feature". - Updated scenario titles and step descriptions to use more descriptive terminology. - Replaced references to "validator" with "node". 11. `tilt_helpers.go`: - Added a new file containing functions related to syncing network configuration and checking package installation. 12. `debug.go`: - Added new debug commands and subcommands. - Updated existing functions and added new functions for debug actions. 13. `account.feature`: - Added a new file containing scenarios for testing node account functionalities. 14. `README.md` files: - Updated sections, titles, dependencies, and instructions in various README.md files. 15. `build/config/README.md`: - Updated usage instructions, changing the command `make compose_and_watch` to `make lightweight_localnet`. 16. `iteration_3_end_to_end_tx.md`: - Updated commands to start LocalNet and consensus debugger. 17. Deleted files: - `validator.go` - `watch_build.sh` 18. New files added: - `debug.feature` - `tilt_helpers.go` - `account.feature` Please let me know if you need more information about any specific change. <!-- reviewpad:summarize:end --> ## Issue Fixes par of #579 ## Type of change Please mark the relevant option(s): - [x] New feature, functionality or library - [ ] Bug fix - [ ] Code health or cleanup - [ ] Major breaking change - [ ] Documentation - [ ] Other <!-- add details here if it a different type of change --> ## List of changes - `s/compose_and_watch/lightweight_localnet` and all related helpers - `s/validator/node` in e2e tests for clarity - Add fire-and-forget `Debug` CLI w/ several useful initial subcommands - Add `keywords` to the `e2e` document - Add an `e2e debug` test to trigger views and track the blockchain increasing - Avoid rebuilding the actors if the CLI changes - Small miscellaneous improvements & code cleanup ## Testing - [x] `make develop_test`; if any code changes were made - [ ] `make test_e2e` on [k8s LocalNet](https://github.com/pokt-network/pocket/blob/main/build/localnet/README.md); if any code changes were made - [ ] `e2e-devnet-test` passes tests on [DevNet](https://pocketnetwork.notion.site/How-to-DevNet-ff1598f27efe44c09f34e2aa0051f0dd); if any code was changed - [ ] [Docker Compose LocalNet](https://github.com/pokt-network/pocket/blob/main/docs/development/README.md); if any major functionality was changed or introduced - [ ] [k8s LocalNet](https://github.com/pokt-network/pocket/blob/main/build/localnet/README.md); if any infrastructure or configuration changes were made ## Required Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have added, or updated, [`godoc` format comments](https://go.dev/blog/godoc) on touched members (see: [tip.golang.org/doc/comment](https://tip.golang.org/doc/comment)) - [ ] I have tested my changes using the available tooling - [ ] I have updated the corresponding CHANGELOG ### If Applicable Checklist - [x] I have updated the corresponding README(s); local and/or global - [x] I have added tests that prove my fix is effective or that my feature works - [ ] I have added, or updated, [mermaid.js](https://mermaid-js.github.io) diagrams in the corresponding README(s) - [ ] I have added, or updated, documentation and [mermaid.js](https://mermaid-js.github.io) diagrams in `shared/docs/*` if I updated `shared/*`README(s) --- Co-authored-by: d7t <[email protected]>
Description
Summary generated by Reviewpad on 03 Aug 23 20:11 UTC
This pull request introduces several changes across multiple files.
Here is a summary of the changes:
go.mod
:golang.org/x/text
dependency is now listed explicitly instead of being an indirect dependency.scenario_test.go
:FAQ.md
:make compose_and_watch
withmake lightweight_localnet
to avoid permission denied errors..gitignore
:e2e/README.md
:Keywords
.Consensus module files:
HandleDebugMessage
function.DEBUG_CONSENSUS_RESET_TO_GENESIS
action..tiltignore
:CHANGELOG.md
:Keywords
.persistence/docs/CHANGELOG.md
:validator.feature
:tilt_helpers.go
:debug.go
:account.feature
:README.md
files:build/config/README.md
:make compose_and_watch
tomake lightweight_localnet
.iteration_3_end_to_end_tx.md
:Deleted files:
validator.go
watch_build.sh
debug.feature
tilt_helpers.go
account.feature
Please let me know if you need more information about any specific change.
Issue
Fixes par of #579
Type of change
Please mark the relevant option(s):
List of changes
s/compose_and_watch/lightweight_localnet
and all related helperss/validator/node
in e2e tests for clarityDebug
CLI w/ several useful initial subcommandskeywords
to thee2e
documente2e debug
test to trigger views and track the blockchain increasingTesting
make develop_test
; if any code changes were mademake test_e2e
on k8s LocalNet; if any code changes were madee2e-devnet-test
passes tests on DevNet; if any code was changedRequired Checklist
godoc
format comments on touched members (see: tip.golang.org/doc/comment)If Applicable Checklist
shared/docs/*
if I updatedshared/*
README(s)