Martin Pool
Martin Pool
For example, in a PR, it would be interesting to see new mutants that are missed relative to the baseline, or mutants that are newly caught. This could be done...
If `cargo mutants` is run from a subdirectory of a Rust source tree, with no `-d`, it errors. It could instead find the enclosing project, perhaps using [`cargo locate-project`](https://doc.rust-lang.org/cargo/commands/cargo-locate-project.html).
If someone's iterating on trying to improve coverage it might be helpful to only try mutants that were not caught on the last run, maybe by automatically looking in `mutants.out`....
For example `Option` could generate various values within the tree of possibilities. Conceivably this might generate too many mutations for some functions in which case we might need a cap.
General interpretation of `cfg` conditions seems difficult but we could at least skip `#[cfg(windows)]` on Unix and so on. At the moment they are mutated and reported as missed. This...
e.g. Unmutated baseline ... ok in 30 + 40 + 10 s
Although cargo and the test framework try to use many cores, they often go through phases of being single-threaded. The overall mutation tests would go faster if we ran multiple...
Perhaps the easiest-to-use structure is `missed.txt`, `caught.txt`, etc.
Perhaps have it mark a file when it stops, or hold a lock while it's running.
This is just harmless noise, but it should not be unexpected that there's a lock file there.