056edebd

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

Add `ignore` config option to skip mutating selected calls

The plugin now reads an `ignore` list from the YAML config (`--config=PATH`).
An expression whose syntactic head matches any name on the list is left
untouched, and so are all of its sub-expressions. Use this to silence noisy
mutations on calls whose removal or modification does not affect observable
behaviour, e.g.

    ignore:
      - logDebug
      - logInfo

Without this, the `RemoveAction` operator turns
`do { logDebug "x"; doWork }` into `do { doWork }`, which no test will fail
on, producing surviving mutants that are pure noise.

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 3s 3s 3s
Eval 3s 35s 35s 38s
Build 6s 48s 22s 29s
Test - - - -
Deploy - - - -
Suite 0s 1m26s 38s 38s

Timeline

0s10s20s30s