Skip to content

Commit c0dd94d

Browse files
committed
Add tests to cover new mutations in cargo-mutants
1 parent 7a36cb7 commit c0dd94d

File tree

12 files changed

+516
-90
lines changed

12 files changed

+516
-90
lines changed

src/fnvalue.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,9 +202,6 @@ fn type_replacements(type_: &Type, error_exprs: &[Expr]) -> impl Iterator<Item =
202202
.collect_vec()
203203
}
204204
},
205-
Type::Tuple(TypeTuple { elems, .. }) if elems.is_empty() => {
206-
vec![quote! { () }]
207-
}
208205
Type::Tuple(TypeTuple { elems, .. }) => {
209206
// Generate the cartesian product of replacements of every type within the tuple.
210207
elems

src/workspace.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,6 @@ impl Workspace {
201201
// in that case we'll just fall back to everything, for lack of a better option.
202202
// TODO: Use the new cargo_metadata API that doesn't panic?
203203
match catch_unwind(|| metadata.workspace_default_packages()) {
204-
Ok(default_packages) if default_packages.is_empty() => {
205-
debug!("manifest has no explicit default packages");
206-
PackageSelection::All
207-
}
208204
Ok(default_packages) => {
209205
let default_package_names: Vec<&str> = default_packages
210206
.iter()

testdata/many_patterns/src/binops.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ pub fn binops() {
66
a -= 2;
77
a *= 3;
88
a /= 2;
9+
10+
let mut b;
11+
b = a < 0;
12+
b = a <= 0;
13+
b = a > 0;
14+
b = a >= 0;
15+
b = a == 0;
16+
b = a != 0;
917
}
1018

1119
pub fn bin_assign() -> i32 {
@@ -15,5 +23,6 @@ pub fn bin_assign() -> i32 {
1523
a &= 0x0f;
1624
a >>= 4;
1725
a <<= 1;
26+
a %= 1;
1827
a
1928
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# This workspace has default-members set, which influences which packages are mutated by default.
2+
3+
[workspace]
4+
members = ["main", "excluded"]
5+
default-members = ["main"]
6+
resolver = "2"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
name = "excluded"
3+
version = "0.1.0"
4+
edition = "2021"
5+
publish = false
6+
7+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
8+
9+
[dependencies]
10+
mutants = "0.0.3"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
fn main() -> i32 {
2+
100
3+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
name = "main"
3+
version = "0.1.0"
4+
edition = "2021"
5+
publish = false
6+
7+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
8+
9+
[dependencies]
10+
mutants = "0.0.3"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const X: u32 = 2 + 1;
2+
3+
#[test]
4+
fn test() {
5+
assert_eq!(X, 3);
6+
}

tests/main.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,18 @@ fn show_version() {
4545
.stdout(predicates::str::is_match(r"^cargo-mutants \d+\.\d+\.\d+(-.*)?\n$").unwrap());
4646
}
4747

48+
#[test]
49+
fn show_help() {
50+
// Asserting on the entire help message would be a bit too annoying to maintain.
51+
run()
52+
.args(["mutants", "--help"])
53+
.assert()
54+
.success()
55+
.stdout(predicates::str::contains(
56+
"Usage: cargo mutants [OPTIONS] [-- <CARGO_TEST_ARGS>...]",
57+
));
58+
}
59+
4860
#[test]
4961
fn uses_cargo_env_var_to_run_cargo_so_invalid_value_fails() {
5062
let tmp_src_dir = copy_of_testdata("well_tested");

0 commit comments

Comments
 (0)