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

Run echidna tests in parallel #571

Merged
merged 12 commits into from
Feb 3, 2021
Merged

Conversation

elopez
Copy link
Member

@elopez elopez commented Nov 30, 2020

This PR implements parallel execution of the echidna tests on Actions,
which improves testing speed, especially once several solc versions
are added to the test matrix.

The main drawback is that test execution now waits for both Mac and
Linux builds to finish, because they are both part of the same job. As
far as I could see, there is no way to depend on a specific matrix
combination of a job. A possible solution would be to duplicate the
job, and have different ones for Mac and Linux, instead of using
a build matrix.

The testing system could also use an extra feature to specify a range
of solc versions that a test is good for. There are currently some tests
in the suite with hardcoded versions (i.e. with something like
cryticArgs: ["--solc", "solc-x.y.z"] in the corresponding .yml).
I saw an attempt at something like that in #383, but I think it should be
something more flexible using e.g. Data.SemVer, to allow for fewer
version number hardcoding.

Resolves #563

@ggrieco-tob
Copy link
Member

Uhm, it seems we need to fix the fallback test before merging this. @incertia @arcz any thoughts ?

@ggrieco-tob
Copy link
Member

@elopez can you try merging with #594 to check if the tests are passing?

ggrieco-tob and others added 9 commits January 26, 2021 16:54
This has been fixed upstream by GitHub.
Currently the tar.gz file has several folders inside from where
the binary used to be in the runner, clean those up using -C.
This helps in the case of CI, and allows to run the tests on a separate
container without having to set up any library or Haskell dependencies.
This allows for parallel execution of the echidna tests, which
helps improve testing speed, especially once newer solc versions
are included in the pipeline.
@elopez
Copy link
Member Author

elopez commented Jan 26, 2021

@ggrieco-tob I've rebased on that PR and it looks like it works fine 👍 I noticed on a personal run that gasuse.sol failed once; that test can be a bit flaky and it may become more annoying with this patchset now that there's two extra test suite runs.

@ggrieco-tob ggrieco-tob merged commit 41c45af into crytic:master Feb 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Test Echidna with newer version of solc and report results
2 participants