Skip to content

Commit

Permalink
fix tests add message
Browse files Browse the repository at this point in the history
  • Loading branch information
stupendoussuperpowers committed Aug 8, 2023
1 parent 5641599 commit 4fffb8b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
19 changes: 15 additions & 4 deletions src/cargo/ops/cargo_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ fn run_unit_tests(
unit: unit.clone(),
kind: test_kind,
};
report_test_error(ws, &options.compile_opts, &unit_err, e);
report_test_error(ws, test_args, &options.compile_opts, &unit_err, e);
errors.push(unit_err);
if !options.no_fail_fast {
return Err(CliError::code(code));
Expand Down Expand Up @@ -275,7 +275,7 @@ fn run_doc_tests(
unit: unit.clone(),
kind: TestKind::Doctest,
};
report_test_error(ws, &options.compile_opts, &unit_err, e);
report_test_error(ws, test_args, &options.compile_opts, &unit_err, e);
errors.push(unit_err);
if !options.no_fail_fast {
return Err(CliError::code(code));
Expand Down Expand Up @@ -407,6 +407,7 @@ fn no_fail_fast_err(
/// Displays an error on the console about a test failure.
fn report_test_error(
ws: &Workspace<'_>,
test_args: &[&str],
opts: &ops::CompileOptions,
unit_err: &UnitTestError,
test_error: anyhow::Error,
Expand All @@ -420,13 +421,23 @@ fn report_test_error(
let mut err = format_err!("{}, to rerun pass `{}`", which, unit_err.cli_args(ws, opts));
// Don't show "process didn't exit successfully" for simple errors.
// libtest exits with 101 for normal errors.
let is_simple = test_error
let (is_simple, executed) = test_error
.downcast_ref::<ProcessError>()
.and_then(|proc_err| proc_err.code)
.map_or(false, |code| code == 101);
.map_or((false, false), |code| (code == 101, true));

if !is_simple {
err = test_error.context(err);
}

crate::display_error(&err, &mut ws.config().shell());

let harness: bool = unit_err.unit.target.harness();
let nocapture: bool = test_args.contains(&"--nocapture");

if !is_simple && executed && harness && !nocapture {
drop(ws.config().shell().note(
"test exited abnormally; to see the full output pass --nocapture to the harness.",
));
}
}
4 changes: 3 additions & 1 deletion tests/testsuite/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4794,6 +4794,7 @@ error: test failed, to rerun pass `--test t2`
Caused by:
process didn't exit successfully: `[ROOT]/foo/target/debug/deps/t2[..]` (exit [..]: 4)
note: test exited abnormally; to see the full output pass --nocapture to the harness.
",
)
.with_status(4)
Expand Down Expand Up @@ -4825,6 +4826,7 @@ error: test failed, to rerun pass `--test t2`
Caused by:
process didn't exit successfully: `[ROOT]/foo/target/debug/deps/t2[..]` (exit [..]: 4)
note: test exited abnormally; to see the full output pass --nocapture to the harness.
error: 2 targets failed:
`--test t1`
`--test t2`
Expand All @@ -4838,7 +4840,7 @@ error: 2 targets failed:
"\
[FINISHED] test [..]
[RUNNING] tests/t1.rs (target/debug/deps/t1[..])
thread 't' panicked at 'this is a normal error', tests/t1[..]
thread 't' panicked at [..] tests/t1[..]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: test failed, to rerun pass `--test t1`
[RUNNING] tests/t2.rs (target/debug/deps/t2[..])
Expand Down

0 comments on commit 4fffb8b

Please sign in to comment.