Rollup merge of #95783 - notriddle:notriddle/doctest-signal, r=GuillaumeGomez
rustdoc doctest: include signal number in exit status Related to #95601
This commit is contained in:
commit
7644de5eda
5 changed files with 79 additions and 15 deletions
|
@ -1069,13 +1069,7 @@ impl Tester for Collector {
|
|||
}
|
||||
}
|
||||
TestFailure::ExecutionFailure(out) => {
|
||||
let reason = if let Some(code) = out.status.code() {
|
||||
format!("exit code {code}")
|
||||
} else {
|
||||
String::from("terminated by signal")
|
||||
};
|
||||
|
||||
eprintln!("Test executable failed ({reason}).");
|
||||
eprintln!("Test executable failed ({reason}).", reason = out.status);
|
||||
|
||||
// FIXME(#12309): An unfortunate side-effect of capturing the test
|
||||
// executable's output is that the relative ordering between the test's
|
||||
|
|
28
src/test/rustdoc-ui/failed-doctest-output-windows.rs
Normal file
28
src/test/rustdoc-ui/failed-doctest-output-windows.rs
Normal file
|
@ -0,0 +1,28 @@
|
|||
// only-windows
|
||||
// There's a parallel generic version of this test for non-windows platforms.
|
||||
|
||||
// Issue #51162: A failed doctest was not printing its stdout/stderr
|
||||
// FIXME: if/when the output of the test harness can be tested on its own, this test should be
|
||||
// adapted to use that, and that normalize line can go away
|
||||
|
||||
// compile-flags:--test --test-args --test-threads=1
|
||||
// rustc-env:RUST_BACKTRACE=0
|
||||
// normalize-stdout-test: "src/test/rustdoc-ui" -> "$$DIR"
|
||||
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
|
||||
// failure-status: 101
|
||||
|
||||
// doctest fails at runtime
|
||||
/// ```
|
||||
/// println!("stdout 1");
|
||||
/// eprintln!("stderr 1");
|
||||
/// println!("stdout 2");
|
||||
/// eprintln!("stderr 2");
|
||||
/// panic!("oh no");
|
||||
/// ```
|
||||
pub struct SomeStruct;
|
||||
|
||||
// doctest fails at compile time
|
||||
/// ```
|
||||
/// no
|
||||
/// ```
|
||||
pub struct OtherStruct;
|
39
src/test/rustdoc-ui/failed-doctest-output-windows.stdout
Normal file
39
src/test/rustdoc-ui/failed-doctest-output-windows.stdout
Normal file
|
@ -0,0 +1,39 @@
|
|||
|
||||
running 2 tests
|
||||
test $DIR/failed-doctest-output-windows.rs - OtherStruct (line 25) ... FAILED
|
||||
test $DIR/failed-doctest-output-windows.rs - SomeStruct (line 15) ... FAILED
|
||||
|
||||
failures:
|
||||
|
||||
---- $DIR/failed-doctest-output-windows.rs - OtherStruct (line 25) stdout ----
|
||||
error[E0425]: cannot find value `no` in this scope
|
||||
--> $DIR/failed-doctest-output-windows.rs:26:1
|
||||
|
|
||||
LL | no
|
||||
| ^^ not found in this scope
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0425`.
|
||||
Couldn't compile the test.
|
||||
---- $DIR/failed-doctest-output-windows.rs - SomeStruct (line 15) stdout ----
|
||||
Test executable failed (exit code: 101).
|
||||
|
||||
stdout:
|
||||
stdout 1
|
||||
stdout 2
|
||||
|
||||
stderr:
|
||||
stderr 1
|
||||
stderr 2
|
||||
thread 'main' panicked at 'oh no', $DIR/failed-doctest-output-windows.rs:7:1
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
|
||||
failures:
|
||||
$DIR/failed-doctest-output-windows.rs - OtherStruct (line 25)
|
||||
$DIR/failed-doctest-output-windows.rs - SomeStruct (line 15)
|
||||
|
||||
test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
// ignore-windows
|
||||
// There's a parallel version of this test for Windows.
|
||||
|
||||
// Issue #51162: A failed doctest was not printing its stdout/stderr
|
||||
// FIXME: if/when the output of the test harness can be tested on its own, this test should be
|
||||
// adapted to use that, and that normalize line can go away
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
|
||||
running 2 tests
|
||||
test $DIR/failed-doctest-output.rs - OtherStruct (line 22) ... FAILED
|
||||
test $DIR/failed-doctest-output.rs - SomeStruct (line 12) ... FAILED
|
||||
test $DIR/failed-doctest-output.rs - OtherStruct (line 25) ... FAILED
|
||||
test $DIR/failed-doctest-output.rs - SomeStruct (line 15) ... FAILED
|
||||
|
||||
failures:
|
||||
|
||||
---- $DIR/failed-doctest-output.rs - OtherStruct (line 22) stdout ----
|
||||
---- $DIR/failed-doctest-output.rs - OtherStruct (line 25) stdout ----
|
||||
error[E0425]: cannot find value `no` in this scope
|
||||
--> $DIR/failed-doctest-output.rs:23:1
|
||||
--> $DIR/failed-doctest-output.rs:26:1
|
||||
|
|
||||
LL | no
|
||||
| ^^ not found in this scope
|
||||
|
@ -16,8 +16,8 @@ error: aborting due to previous error
|
|||
|
||||
For more information about this error, try `rustc --explain E0425`.
|
||||
Couldn't compile the test.
|
||||
---- $DIR/failed-doctest-output.rs - SomeStruct (line 12) stdout ----
|
||||
Test executable failed (exit code 101).
|
||||
---- $DIR/failed-doctest-output.rs - SomeStruct (line 15) stdout ----
|
||||
Test executable failed (exit status: 101).
|
||||
|
||||
stdout:
|
||||
stdout 1
|
||||
|
@ -32,8 +32,8 @@ note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
|||
|
||||
|
||||
failures:
|
||||
$DIR/failed-doctest-output.rs - OtherStruct (line 22)
|
||||
$DIR/failed-doctest-output.rs - SomeStruct (line 12)
|
||||
$DIR/failed-doctest-output.rs - OtherStruct (line 25)
|
||||
$DIR/failed-doctest-output.rs - SomeStruct (line 15)
|
||||
|
||||
test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue