-
Notifications
You must be signed in to change notification settings - Fork 117
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
end-to-end tests: refactor and fix flaky tests #2470
Conversation
23c4806
to
cce2193
Compare
Codecov Report
@@ Coverage Diff @@
## development #2470 +/- ##
============================================
Coverage 57.34% 57.34%
============================================
Files 215 215
Lines 28417 28407 -10
============================================
- Hits 16296 16291 -5
+ Misses 10442 10440 -2
+ Partials 1679 1676 -3
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
3287691
to
d02eb44
Compare
dc36f16
to
bd18ecd
Compare
bd18ecd
to
85c38a5
Compare
…etry.UntilNoError`
- Use `Decode` from rpc package instead - Add fields to RPC server response struct
Co-authored-by: Timothy Wu <[email protected]>
- Add `fetchWithTimeout` helper function - Change test cases slices to individual subtests - Add `t.SkipNow()` to parent tests where all subtests are skipped - Make `TestChainRPC` event driven and increase testing depth - Add a few `TODO`s to increase testing depth - Run each query call in parallel
- Refactor websocket code - Assert things and increase test depth - Graceful shutdown of websocket
- Use Go to implement `integration-test-all.sh` directly in single 'stable' test - The test is fast and only does RPC calls, it should be part of the RPC workflow - Remove stable workflow from Makefile, github workflows directory and document
ff87feb
to
f0e0187
Compare
I am Quentin Mc Gaw, a software engineer working the Go Polkadot host **Gossamer**. I have been working full time on Gossamer since October 2021, mostly on the state trie and storage. I have also made a [few minor pull requests](https://github.com/w3f/polkadot-spec/pulls?q=is%3Apr+is%3Aclosed+author%3Aqdm12) to the Polkadot specification repository. I am requesting to join the Fellowship at rank 1. ## Main contributions ### Gossamer - Fix memory leaks - Trie encoding buffer pools usage fixed [#2009](ChainSafe/gossamer#2009) - Fix state map of tries memory leak [#2286](ChainSafe/gossamer#2286) - Fix sync benchmark [#2234](ChainSafe/gossamer#2234) - Trie proof fixes ([#2604](ChainSafe/gossamer#2604), [#2661](ChainSafe/gossamer#2661)) - Fix end to end tests orchestration ([#2470](ChainSafe/gossamer#2470), [#2452](ChainSafe/gossamer#2452), [#2385](ChainSafe/gossamer#2385), [#2370](ChainSafe/gossamer#2370)) - State trie statistics ([#2378](ChainSafe/gossamer#2378), [#2310](ChainSafe/gossamer#2310), [#2272](ChainSafe/gossamer#2272)) - State trie fixes and improvements - Only deep copy nodes when mutation is certain [#2352](ChainSafe/gossamer#2352) and [#2223](ChainSafe/gossamer#2223) - Only deep copy necessary fields of a node [#2384](ChainSafe/gossamer#2384) - Use Merkle values for database keys instead of always hash [#2725](ChainSafe/gossamer#2725) - Opportunistic parallel Merkle value commputing [#2081](ChainSafe/gossamer#2081) - Grandpa capped number of tracked messages ([#2490](ChainSafe/gossamer#2490), [#2485](ChainSafe/gossamer#2485)) - Add pprof HTTP service for profiling [#1991](ChainSafe/gossamer#1991) Ongoing work: - State trie lazy loading and caching - State trie v1 support ([#2736](ChainSafe/gossamer#2736), [#2747](ChainSafe/gossamer#2747), [#2687](ChainSafe/gossamer#2687), [#2686](ChainSafe/gossamer#2686), [#2685](ChainSafe/gossamer#2685), [#2673](ChainSafe/gossamer#2673), [#2611](ChainSafe/gossamer#2611), [#2530](ChainSafe/gossamer#2530)) ### Polkadot specification ➡️ [Pull requests from qdm12](https://github.com/w3f/polkadot-spec/pulls?q=is%3Apr+is%3Aclosed+author%3Aqdm12)
💡 Review commit by commit by starting with the first commit
Changes
TLDR
make gossamer
)Details
TestAuthorSubmitExtrinsic
TestSync_SingleBlockProducer
(Fix Flaky Tests inTestSync_SingleBlockProducer
#2167)compareBlocksByNumber
TestSystemRPC
(Fix Flaky Tests inTestSystemRPC
#2161)networkState
test caseTestSystemRPC
#2161 and RPC tests for system_health should start 2 peers and assert correctly #807retry.UntilNoError
functioncompareBlocksByNumber
waitForNode
GetBlockHash
to not retry RPCPostWithRetry
maxTries
andtestTimeout
in stress testsgetResponse
tests/utils
packagetests/utils/rpc
packagetests/utils/websocket
packagetests/utils/config
packageDecodeRPC_NT
HOSTNAME
variableGenesisTwoAuthsSecondaryVRF0_9_10
GenesisDefault
andGenesisDev
GenerateGenesisAuths
functiont.TempDir()
for base pathswaitForNode
context based function (tests/utils: addwaitForNode
context-based function to wait for a node #2390)DecodeRPC
not test aware (tests/utils: make helping functions not test aware #2389)Tests
Issues
See issues mentioned in changes above.
Indirectly fixed: #2165
Primary Reviewer