Releases: sourcefrog/cargo-mutants
cargo-mutants-0.2.6
-
Improved: Find source files by looking at
cargo metadata
output, rather than assuming they're insrc/**/*.rs
. This makescargo mutants
work properly on trees where it previously failed to find the source. -
New
--version
option. -
New: Write a
lock.json
into themutants.out
directory including the start timestamp, cargo-mutants version, hostname and username. Take a lock on this file whilecargo mutants
is running, so that it doesn't crash or get confused if two tasks try to write to the same directory at the same time. -
New: Restored a
--list-files
option. -
Changed: Error if no mutants are generated, which probably indicates a bug or configuration error(?)
cargo-mutants-0.2.5
-
New
--file
command line option to mutate only functions in source files matching a glob. -
Improved: Don't attempt to mutate functions called
new
or implementations ofDefault
. cargo-mutants can not yet generate good mutations for these so they are generally false positives. -
Improved: Better display of
<impl Foo for Bar>::foo
and similar type paths. -
New:
--output
directory to writemutants.out
somewhere other than the source directory.
cargo-mutants-0.2.4
-
Fix: Ignore errors setting file mtimes during copies, which can cause failures on Windows if some files are readonly.
-
Fix: Log file names now include only the source file relative path, the line number, and a counter, so they are shorter, and shouldn't cause problems on filesystems with length limits.
-
Change: version-control directories like
.git
are not copied with the source tree: they should have no effect on the build, so copying them is just a waste. -
Changed/improved json logs in
mutants.out
:-
Show durations as fractional seconds.
-
Outcomes include a "summary" field.
-
cargo-mutants 0.2.3
-
Switch from Indicatif to Nutmeg to draw progress bars and output. This fixes a bug where terminal output line-wraps badly, and adds a projection for the total estimated time to completion.
-
Change: Mutants are now tested in random order by default, so that repeated runs are more likely to surface interesting new findings early, rather than repeating previous results. The previous behavior of testing mutants in the deterministic order they're encountered in the tree can be restored with
--no-shuffle
.
cargo-mutants 0.2.2
-
The progress bar now shows which mutant is being tested out of how many total.
-
The automatic timeout is now set to the minimum of 20 seconds, or 5x the time of the tests in a baseline tree, to reduce the incidence of false timeouts on machines with variable throughput.
-
Ctrl-c (or
SIGINT
) interrupts the program during copying the tree. Previously it was not handled until the copy was complete. -
New
--no-copy-target
option.
cargo-mutants 0.2.1
- Arguments to
cargo test
can be passed on the command line after--
. This allows, for example, skipping doctests or setting the number of test threads. #15
cargo-mutants 0.2.0
0.2.0
Released 2022-02-06
-
A new
--timeout SECS
option to limit the runtime of anycargo test
invocation, so that mutations that cause tests to hang don't causecargo mutants
to hang.A default timeout is set based on the time to run tests in an unmutated tree. There is no timeout by default on the unmutated tree.
On Unix, the
cargo
subprocesses run in a new process group. As a consequence ctrl-c is explicitly caught and propagated to the child processes. -
Show a progress bar while looking for mutation opportunities, and show the total number found.
-
Show how many mutation opportunities were found, before testing begins.
-
New
--shuffle
option tests mutants in random order. -
By default, the output now only lists mutants that were missed or that timed out. Mutants that were caught, and mutants that did not build, can be printed with
--caught
and--unviable
respectively.