chore(tests): do not osExit and return error#2452
Conversation
- `RunGossamer`: do not os.Exit and return an error - `InitializeAndStartNodes` return error and teardown nodes on error - `InitializeAndStartNodesWebsocket` return error and teardown nodes on error - Fix thread safety on nodes slice in `InitializeAndStartNodesWebsocket`
Codecov Report
@@ Coverage Diff @@
## development #2452 +/- ##
===============================================
- Coverage 58.54% 58.48% -0.07%
===============================================
Files 214 214
Lines 28004 28004
===============================================
- Hits 16396 16379 -17
- Misses 9956 9970 +14
- Partials 1652 1655 +3
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
|
|
||
| func InitializeAndStartNodesWebsocket(t *testing.T, num int, genesis, config string) ( | ||
| nodes []*Node, err error) { | ||
| var nodesMutex, errMutex sync.Mutex |
There was a problem hiding this comment.
why not use an errChan or a defined []error of len(num) to get the errors?
There was a problem hiding this comment.
Good point, although there is little point to do this considering the future-to-be changes: this parallel logic is changed to be sequential since it takes a short time to init+start, so only the first error encountered is returned.
os.Exit and return errored1d0f2 to
c7dded0
Compare
os.Exit and return error
os.Exit and return errorc7dded0 to
45d79d7
Compare
45d79d7 to
642f5ba
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)
Changes
RunGossamer: do not os.Exit and return an errorInitializeAndStartNodesreturn error and teardown nodes on errorInitializeAndStartNodesWebsocketreturn error and teardown nodes on errorInitializeAndStartNodesWebsocket.Tests
Issues
os.Exit#2387Primary Reviewer