From 805acffed9d95363f39ec0dc3a9d0d1134fa5382 Mon Sep 17 00:00:00 2001 From: Collins Abitekaniza Date: Thu, 21 Feb 2019 16:41:05 +0300 Subject: [PATCH] forward --quiet flag only if harness=true --- src/bin/cargo/commands/test.rs | 4 ---- src/cargo/core/compiler/compilation.rs | 4 ++-- src/cargo/core/compiler/context/mod.rs | 3 +-- src/cargo/ops/cargo_test.rs | 8 +++++++- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/bin/cargo/commands/test.rs b/src/bin/cargo/commands/test.rs index b2cff39b0..852ddc65b 100644 --- a/src/bin/cargo/commands/test.rs +++ b/src/bin/cargo/commands/test.rs @@ -144,10 +144,6 @@ pub fn exec(config: &mut Config, args: &ArgMatches<'_>) -> CliResult { .map(|s| s.to_string()), ); - if args.is_present("quiet") { - test_args.push("-q".to_string()) - } - let err = ops::run_tests(&ws, &ops, &test_args)?; match err { None => Ok(()), diff --git a/src/cargo/core/compiler/compilation.rs b/src/cargo/core/compiler/compilation.rs index 863affc7c..afe2c9e48 100644 --- a/src/cargo/core/compiler/compilation.rs +++ b/src/cargo/core/compiler/compilation.rs @@ -6,7 +6,7 @@ use std::path::PathBuf; use semver::Version; use super::BuildContext; -use crate::core::{Edition, Package, PackageId, Target, TargetKind}; +use crate::core::{Edition, Package, PackageId, Target}; use crate::util::{self, join_paths, process, CargoResult, CfgExpr, Config, ProcessBuilder}; pub struct Doctest { @@ -22,7 +22,7 @@ pub struct Doctest { /// A structure returning the result of a compilation. pub struct Compilation<'cfg> { /// An array of all tests created during this compilation. - pub tests: Vec<(Package, TargetKind, String, PathBuf)>, + pub tests: Vec<(Package, Target, PathBuf)>, /// An array of all binaries created. pub binaries: Vec, diff --git a/src/cargo/core/compiler/context/mod.rs b/src/cargo/core/compiler/context/mod.rs index 27f8adb20..650e7d2f5 100644 --- a/src/cargo/core/compiler/context/mod.rs +++ b/src/cargo/core/compiler/context/mod.rs @@ -167,8 +167,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { if unit.mode == CompileMode::Test { self.compilation.tests.push(( unit.pkg.clone(), - unit.target.kind().clone(), - unit.target.name().to_string(), + unit.target.clone(), output.path.clone(), )); } else if unit.target.is_bin() || unit.target.is_bin_example() { diff --git a/src/cargo/ops/cargo_test.rs b/src/cargo/ops/cargo_test.rs index d335a80a8..210da9879 100644 --- a/src/cargo/ops/cargo_test.rs +++ b/src/cargo/ops/cargo_test.rs @@ -2,6 +2,7 @@ use std::ffi::OsString; use crate::core::compiler::{Compilation, Doctest}; use crate::core::Workspace; +use crate::core::shell::Verbosity; use crate::ops; use crate::util::errors::CargoResult; use crate::util::{CargoTestError, ProcessError, Test}; @@ -80,10 +81,15 @@ fn run_unit_tests( let mut errors = Vec::new(); - for &(ref pkg, ref kind, ref test, ref exe) in &compilation.tests { + for &(ref pkg, ref target, ref exe) in &compilation.tests { + let kind = target.kind(); + let test = target.name().to_string(); let exe_display = exe.strip_prefix(cwd).unwrap_or(exe).display(); let mut cmd = compilation.target_process(exe, pkg)?; cmd.args(test_args); + if target.harness() && config.shell().verbosity() == Verbosity::Quiet { + cmd.arg("--quiet"); + } config .shell() .concise(|shell| shell.status("Running", &exe_display))?; -- 2.39.5