Skip to content

Releases: sourcefrog/cargo-mutants

cargo-mutants 23.5.0

27 May 16:22
cargo-mutants-23.5.0
Compare
Choose a tag to compare

"Pickled crab"

  • cargo mutants can now successfully test packages that transitively depend on a different version of themselves, such as itertools. Previously, cargo-mutants used the cargo --package option, which is ambiguous in this case, and now it uses --manifest-path instead. #117

  • Mutate functions returning &'_ str (whether a lifetime is named or not) to return "xyzzy" and "".

  • Switch to CalVer numbering.

cargo-mutants 1.2.3

05 May 16:11
cargo-mutants-1.2.3
Compare
Choose a tag to compare
  • New --error option, to cause functions returning Result to be mutated to return the specified error.

  • New --no-config option, to disable reading .cargo/mutants.toml.

  • Mutate functions returning String to String::new() rather than "".into(): same result but a bit more idiomatic.

  • New --leak-dirs option, for debugging cargo-mutants.

  • Update to syn 2.0, adding support for new Rust syntax.

  • Minimum supported Rust version increased to 1.65 due to changes in dependencies.

cargo-mutants-1.2.2

01 Apr 18:54
cargo-mutants-1.2.2
Compare
Choose a tag to compare
  • Don't mutate unsafe fns.

  • Don't mutate functions that never return (i.e. -> !).

  • Minimum supported Rust version increased to 1.64 due to changes in dependencies.

  • Some command-line options can now also be configured through environment variables: CARGO_MUTANTS_JOBS, CARGO_MUTANTS_TRACE_LEVEL.

  • New command line option --minimum-test-timeout and config file variable minimum_test_timeout join existing environment variable CARGO_MUTANTS_MINIMUM_TEST_TIMEOUT, to allow boosting the minimum, especially for test environments with poor or uneven throughput.

  • Changed: Renamed fields in outcomes.json from cargo_result to process_status and from command to argv.

  • Warn if no mutants were generated or if all mutants were unviable.

cargo-mutants-1.2.1

07 Jan 20:22
cargo-mutants-1.2.1
Compare
Choose a tag to compare
  • Converted most of the docs to a book available at https://mutants.rs/.

  • Fixed: Correctly find submodules that don't use mod.rs naming, e.g. when descending from src/foo.rs to src/foo/bar.rs. Also handle module names that are raw identifiers using r#. (Thanks to @kpreid for the report.)

cargo-mutants 1.2.0

25 Nov 17:01
cargo-mutants-1.2.0
Compare
Choose a tag to compare

Thankful mutants!

  • Fixed: Files that are excluded by filters are also excluded from --list-files.

  • Fixed: --exclude-re and --re can match against the return type as shown in --list.

  • New: A .cargo/mutants.toml file can be used to configure standard filters and cargo args for a project.

cargo-mutants 1.1.1

31 Oct 18:33
cargo-mutants-1.1.1
Compare
Choose a tag to compare

Spooky mutants!

  • Fixed support for the Mold linker, or for other options passed via RUSTFLAGS or CARGO_ENCODED_RUSTFLAGS. (See the instructions in README.md).

  • Source trees are walked by following mod statements rather than globbing the directory. This is more correct if there are files that are not referenced by mod statements. Once attributes on modules are stable in Rust (rust-lang/rust#54727) this opens a path to skip mods using attributes.

cargo-mutants-1.1.0

31 Oct 13:56
cargo-mutants-1.1.0
Compare
Choose a tag to compare

Fearless concurrency!

  • cargo-mutants can now run multiple cargo build and test tasks in parallel, to make better use of machine resources and find mutants faster, controlled by --jobs.

  • The minimum Rust version to build cargo-mutants is now 1.63.0. It can still be used to test code under older toolchains.

cargo-mutants-1.0.3

29 Sep 21:22
cargo-mutants-1.0.3
Compare
Choose a tag to compare
  • cargo-mutants is now finds no uncaught mutants in itself! Various tests were added and improved, particularly around handling timeouts.

  • New: --re and --exclude-re options to filter by mutant name, including the path. The regexps match against the strings printed by --list.

cargo-mutants-1.0.2

24 Sep 15:40
cargo-mutants-1.0.2
Compare
Choose a tag to compare
  • New: cargo mutants --completions to generate shell completions using clap_complete.

  • Changed: carg-mutants no longer builds in the source directory, and no longer copies the target/ directory to the scratch directory. Since cargo-mutants now sets RUSTFLAGS to avoid false failures from warnings, it is unlikely to match the existing build products in the source directory target/, and in fact building there is just likely to cause rebuilds in the source. The behavior now is as if --no-copy-target was always passed. That option is still accepted, but it has no effect.

  • Changed: cargo-mutants finds all possible mutations before doing the baseline test, so that you can see earlier how many there will be.

  • New: Set INSTA_UPDATE=no so that tests that use the Insta library don't write updates back into the source directory, and so don't falsely pass.

cargo-mutants 1.0.1

12 Sep 14:38
cargo-mutants-1.0.1
Compare
Choose a tag to compare
  • Fixed: Don't try to mutate functions within test targets, e.g. within tests/**/*.rs.

  • New: missed.txt, caught.txt, timeout.txt and unviable.txt files are written in to the output directory to make results easier to review later.

  • New: --output creates the specified directory if it does not exist.

  • Internal: Switched from Argh to Clap for command-line parsing. There may be some small changes in CLI behavior and help formatting.