&options.flag_exclude,
&options.flag_package)?;
- let test = options.flag_tests ||
- match options.flag_profile.as_ref().map(|t| &t[..]) {
+ let test = match options.flag_profile.as_ref().map(|t| &t[..]) {
Some("test") => true,
None => false,
Some(profile) => {
spec: spec,
mode: ops::CompileMode::Check{test:test},
release: options.flag_release,
- filter: ops::CompileFilter::new(options.flag_lib || options.flag_tests,
- &options.flag_bin, options.flag_bins || options.flag_tests,
+ filter: ops::CompileFilter::new(options.flag_lib,
+ &options.flag_bin, options.flag_bins,
&options.flag_test, options.flag_tests,
&options.flag_example, options.flag_examples,
&options.flag_bench, options.flag_benches,
pkg, bins, "bin", Target::is_bin, profile)?);
targets.append(&mut propose_indicated_targets(
pkg, examples, "example", Target::is_example, profile)?);
+ // If --benches was specified, add all targets that would be
+ // generated by `cargo bench`.
+ let bench_filter = match benches {
+ FilterRule::All => Target::benched,
+ FilterRule::Just(_) => Target::is_bench
+ };
targets.append(&mut propose_indicated_targets(
- pkg, tests, "test", Target::is_test, test_profile)?);
+ pkg, benches, "bench", bench_filter, bench_profile)?);
+ // If --tests was specified, add all targets that would be
+ // generated by `cargo test`.
+ let test_filter = match tests {
+ FilterRule::All => Target::tested,
+ FilterRule::Just(_) => Target::is_test
+ };
targets.append(&mut propose_indicated_targets(
- pkg, benches, "bench", Target::is_bench, bench_profile)?);
+ pkg, tests, "test", test_filter, test_profile)?);
targets
}
};
.with_stderr_contains("[..]badtext[..]"));
}
+// Verify what is checked with various command-line filters.
#[test]
-fn check_unit_test_all_tests() {
- // Lib unit.
+fn check_filters() {
let p = project("foo")
.file("Cargo.toml", SIMPLE_MANIFEST)
.file("src/lib.rs", r#"
.build();
assert_that(p.cargo("check"),
- execs().with_status(0)
- .with_stderr_contains("[..]unused_normal_lib[..]")
- .with_stderr_contains("[..]unused_normal_bin[..]")
- .with_stderr_does_not_contain("unused_noraml_t1")
- .with_stderr_does_not_contain("unused_noraml_ex1")
- .with_stderr_does_not_contain("unused_noraml_b1")
- .with_stderr_does_not_contain("unused_unit_"));
+ execs().with_status(0)
+ .with_stderr_contains("[..]unused_normal_lib[..]")
+ .with_stderr_contains("[..]unused_normal_bin[..]")
+ .with_stderr_does_not_contain("unused_normal_t1")
+ .with_stderr_does_not_contain("unused_normal_ex1")
+ .with_stderr_does_not_contain("unused_normal_b1")
+ .with_stderr_does_not_contain("unused_unit_"));
p.root().join("target").rm_rf();
assert_that(p.cargo("check").arg("--tests").arg("-v"),
- execs().with_status(0)
- .with_stderr_contains("[..]unused_unit_lib[..]")
- .with_stderr_contains("[..]unused_unit_bin[..]")
- .with_stderr_contains("[..]unused_unit_t1[..]")
- .with_stderr_does_not_contain("unused_normal_ex1")
- .with_stderr_does_not_contain("unused_normal_b1")
- .with_stderr_does_not_contain("unused_unit_ex1")
- .with_stderr_does_not_contain("unused_unit_b1"));
+ execs().with_status(0)
+ .with_stderr_contains("[..] --crate-name foo src[/]lib.rs [..] --test [..]")
+ .with_stderr_contains("[..] --crate-name foo src[/]lib.rs --crate-type lib [..]")
+ .with_stderr_contains("[..] --crate-name foo src[/]main.rs [..] --test [..]")
+ .with_stderr_contains("[..] --crate-name foo src[/]main.rs --crate-type bin [..]")
+ .with_stderr_contains("[..]unused_unit_lib[..]")
+ .with_stderr_contains("[..]unused_unit_bin[..]")
+ .with_stderr_contains("[..]unused_normal_lib[..]")
+ .with_stderr_contains("[..]unused_normal_bin[..]")
+ .with_stderr_contains("[..]unused_unit_t1[..]")
+ .with_stderr_contains("[..]unused_normal_ex1[..]")
+ .with_stderr_contains("[..]unused_unit_ex1[..]")
+ .with_stderr_does_not_contain("unused_normal_b1")
+ .with_stderr_does_not_contain("unused_unit_b1"));
+ p.root().join("target").rm_rf();
+ assert_that(p.cargo("check").arg("--test").arg("t1").arg("-v"),
+ execs().with_status(0)
+ .with_stderr_contains("[..]unused_normal_lib[..]")
+ .with_stderr_contains("[..]unused_normal_bin[..]")
+ .with_stderr_contains("[..]unused_unit_t1[..]")
+ .with_stderr_does_not_contain("unused_unit_lib")
+ .with_stderr_does_not_contain("unused_unit_bin")
+ .with_stderr_does_not_contain("unused_normal_ex1")
+ .with_stderr_does_not_contain("unused_normal_b1")
+ .with_stderr_does_not_contain("unused_unit_ex1")
+ .with_stderr_does_not_contain("unused_unit_b1"));
p.root().join("target").rm_rf();
assert_that(p.cargo("check").arg("--all-targets").arg("-v"),
- execs().with_status(0)
- .with_stderr_contains("[..]unused_normal_lib[..]")
- .with_stderr_contains("[..]unused_normal_bin[..]")
- .with_stderr_contains("[..]unused_normal_t1[..]")
- .with_stderr_contains("[..]unused_normal_ex1[..]")
- .with_stderr_contains("[..]unused_normal_b1[..]")
- .with_stderr_contains("[..]unused_unit_b1[..]")
- .with_stderr_contains("[..]unused_unit_t1[..]")
- .with_stderr_does_not_contain("unused_unit_lib")
- .with_stderr_does_not_contain("unused_unit_bin")
- .with_stderr_does_not_contain("unused_unit_ex1"));
+ execs().with_status(0)
+ .with_stderr_contains("[..]unused_normal_lib[..]")
+ .with_stderr_contains("[..]unused_normal_bin[..]")
+ .with_stderr_contains("[..]unused_normal_t1[..]")
+ .with_stderr_contains("[..]unused_normal_ex1[..]")
+ .with_stderr_contains("[..]unused_normal_b1[..]")
+ .with_stderr_contains("[..]unused_unit_b1[..]")
+ .with_stderr_contains("[..]unused_unit_t1[..]")
+ .with_stderr_contains("[..]unused_unit_lib[..]")
+ .with_stderr_contains("[..]unused_unit_bin[..]")
+ .with_stderr_contains("[..]unused_unit_ex1[..]"));
}
#[test]