echidna
echidna copied to clipboard
Shrink on one worker
trafficstars
There was a high contention while shrinking with multiple workers at the same time. This locks shrinking to the same worker which solved the test. Fixes https://github.com/crytic/echidna/issues/1105.
Changes and implications:
- Only the worker which solved a test will shrink the test. Worker number is displayed in the UI while shrinking.
- If there is shrinking work, do it until the shrink limit and then go back to fuzzing. Fuzzing will be put on pause when all workers are shrinking.
- Test limit is unevenly distributed. When worker shrinks it doesn't work on its portion of test limit. This will be fixed in another PR.
- Refactored
selectMainContract,mkTestsandmkSignatureMapout ofloadSpecified. This allows for more granular control to easier constructEnv. Movedworldto theEnvand tests can be created beforeEnv. - Merged
Campaign.updateTestandTest.updateOpenTestintoCampaign.updateOpenTest.
TODO: Look into reintroducing multicore shrinking with better synchronization (https://github.com/crytic/echidna/issues/1249).