-
Notifications
You must be signed in to change notification settings - Fork 218
Improve systests #6494
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
Comments
Here are my 2 cents to the current problems with system tests: There should be a single test that asserts all the functional requirements we have for go-spacemesh:
Non-functional tests probably require their own test each:
I am unsure if this needs its own test or can be part of
The basic idea is that the big test spawns a network at the start and then runs multiple tests (partially at the same time) on the same network with the same nodes instead of having to tear down and setup a new network multiple times. Additionally we should consider to cover all supported modes of smeshing during the one big test: some nodes should use supervised smeshing, some should use remote smeshing, some multi-smeshing (ideally with at least one of those marrying their identities). |
This probably should be taken into account: |
@fasmat It makes sense and it would speed up the tests significantly 👍, but we need to be careful and avoid creating "subtests" running in parallel on a single network that depend on each other as it would be a nightmare to debug if things go south. I think it's possible to have a test structure like this: func TestNetwork(t *testing.T) {
// setup a cluster
t.Run("sending transactions", ....) // send transactions and observe accounts changes
t.Run("poet failures", ....) // kills a poet and oberves that ATXs are still produced
.... more The problem is, that once things stop working because the poet was killed, the other test(s) would most likely start to fail too and telling why (what's the root of the problem) might be difficult. |
@ivan4th we have that hardcoded to go-spacemesh/systest/cluster/nodes.go Line 914 in cc65f27
|
Also regarding |
Description
At the moment systests contain a lot of spagetti code which seems to be time to time extended with another piece glued into it. In result:
The text was updated successfully, but these errors were encountered: