Skip to content

Commit 70c389e

Browse files
Correctly display stdout and stderr in case a doctest is failing
1 parent 553600e commit 70c389e

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/librustdoc/doctest/runner.rs

+16-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,22 @@ mod __doctest_mod {{
131131
.output()
132132
.expect(\"failed to run command\");
133133
if !out.status.success() {{
134-
eprint!(\"{{}}\", String::from_utf8_lossy(&out.stderr));
134+
if let Some(code) = out.status.code() {{
135+
eprintln!(\"Test executable failed (exit status: {{code}}).\");
136+
}} else {{
137+
eprintln!(\"Test executable failed (terminated by signal).\");
138+
}}
139+
if !out.stdout.is_empty() || !out.stderr.is_empty() {{
140+
eprintln!();
141+
}}
142+
if !out.stdout.is_empty() {{
143+
eprintln!(\"stdout:\");
144+
eprintln!(\"{{}}\", String::from_utf8_lossy(&out.stdout));
145+
}}
146+
if !out.stderr.is_empty() {{
147+
eprintln!(\"stderr:\");
148+
eprintln!(\"{{}}\", String::from_utf8_lossy(&out.stderr));
149+
}}
135150
ExitCode::FAILURE
136151
}} else {{
137152
ExitCode::SUCCESS

tests/rustdoc-ui/doctest/edition-2024-error-output.stdout

+4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ test $DIR/edition-2024-error-output.rs - (line 12) ... FAILED
55
failures:
66

77
---- $DIR/edition-2024-error-output.rs - (line 12) stdout ----
8+
Test executable failed (exit status: 101).
9+
10+
stderr:
811

912
thread 'main' panicked at $TMP:6:1:
1013
assertion `left == right` failed
@@ -13,6 +16,7 @@ assertion `left == right` failed
1316
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
1417

1518

19+
1620
failures:
1721
$DIR/edition-2024-error-output.rs - (line 12)
1822

0 commit comments

Comments
 (0)