Replies: 1 comment
-
Taking shard 3 as an example:
So in this overall run there are only about 3 mutants for each shard to test, but incremental builds are taking up to 10 minutes and the test suite takes up to 20 minutes (or maybe more in shards I didn't inspect.) With only 3-4 mutants per shard there is necessarily going to be a lot of variability in run time, as some shards will happen to get mutants that are very fast and some shards will be unlucky to get some that are very slow. Shards will give a more even effect when there are many mutants. The default GitHub workers are not very powerful, so one obvious step would be to just pay for more powerful test runners. I see you are using Shard 2 in particular was unlucky to get a mutant that caused a timeout:
Since you tests are already very slow the autoset timeout is very long (2h). You should probably prioritize investigating the mutant
It is literally just running
|
Beta Was this translation helpful? Give feedback.
-
When executing cargo mutants with 8 shards on our CI (with a diff file that originally took 3:18h without shards), we observed that the longest process took 2:47h for the job with ID 2, while the average execution time for other jobs is 1:15h. While this is an improvement compared to running mutants without shards, it still seems suboptimal (even though it takes a while to run the unmutated build and tests), considering the workload is divided into 8 parts and the expected performance is not achieved. (not even 2x better time results using 8x power)
Additionally, we encountered an issue when using shards where some jobs failed the unmutated tests, while others ran successfully. We attempted to address this by adding the -- -- --test-threads 1 argument to the cargo test command, but, despite this adjustment, the unmutated tests still failed on the job with ID 0.
Reference CI Run with Shards: https://github.com/ASuciuX/stacks-core/actions/runs/7302059398/job/19903435918?pr=35
Reference CI Run without Shards: https://github.com/ASuciuX/stacks-core/actions/runs/7269581208/job/19807417329?pr=27
Actions Code: https://github.com/ASuciuX/actions/blob/test/shards-mutants/mutation-testing/filter-pr/action.yml
Workflow Code: https://github.com/ASuciuX/stacks-core/blob/mutants-next/test-stackslib-with-shards-1/base/.github/workflows/filter-pr-mutants.yml
Beta Was this translation helpful? Give feedback.
All reactions