9bb24283

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Support multi-package/multi-test-suite mutation testing

- covering_tests is now Map Text [TestId] (suite name → tests) instead of [TestId]
  - empty string "" key preserves backward-compat with single-suite setups
  - old JSON array format decodes as Map "" [...] for reading existing files
- New CLI flags: --mutation-suite-name and --mutation-suite-exe name=path
- Coverage mode tags covered tests by suite name and merges incrementally
  into manifest-augmented.json so multiple suites can run sequentially
- Parent spawns one child per covering suite; suites with empty covering
  tests are skipped (avoids running all tests when filter is empty)
- Child filters by --mutation-suite-name to select the right covering tests
- mutationCheck.nix and compileMutationReport.nix accept testSuites list
  of {package, executableName}; old testPackage/testExecutableName still work

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 3s 3s 3s
Eval 3s 4s 4s 8s
Build - - - -
Test - - - -
Deploy - - - -
Suite 0s 7s 8s 8s

Timeline

0s