Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions src/librustdoc/doctest/runner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ impl DocTestRunner {
mod __doctest_mod {{
use std::sync::OnceLock;
use std::path::PathBuf;
use std::process::ExitCode;

pub static BINARY_PATH: OnceLock<PathBuf> = OnceLock::new();
pub const RUN_OPTION: &str = \"RUSTDOC_DOCTEST_RUN_NB_TEST\";
Expand All @@ -123,16 +124,17 @@ mod __doctest_mod {{
}}

#[allow(unused)]
pub fn doctest_runner(bin: &std::path::Path, test_nb: usize) -> Result<(), String> {{
pub fn doctest_runner(bin: &std::path::Path, test_nb: usize) -> ExitCode {{
let out = std::process::Command::new(bin)
.env(self::RUN_OPTION, test_nb.to_string())
.args(std::env::args().skip(1).collect::<Vec<_>>())
.output()
.expect(\"failed to run command\");
if !out.status.success() {{
Err(String::from_utf8_lossy(&out.stderr).to_string())
eprintln!(\"{{}}\", String::from_utf8_lossy(&out.stderr));
ExitCode::FAILURE
}} else {{
Ok(())
ExitCode::SUCCESS
}}
}}
}}
Expand Down
12 changes: 12 additions & 0 deletions tests/rustdoc-ui/edition-2024-doctest-error-output.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// This is a regression test for <https://github.com/rust-lang/rust/issues/137970>.
// The output must look nice and not like a `Debug` display of a `String`.

//@ edition: 2024
//@ compile-flags: --test
//@ normalize-stdout: "tests/rustdoc-ui/doctest" -> "$$DIR"
//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
//@ failure-status: 101

//! ```rust
//! assert_eq!(2 + 2, 5);
//! ```
32 changes: 32 additions & 0 deletions tests/rustdoc-ui/edition-2024-doctest-error-output.stdout
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

running 1 test
test tests/rustdoc-ui/edition-2024-doctest-error-output.rs - (line 10) ... FAILED

failures:

---- tests/rustdoc-ui/edition-2024-doctest-error-output.rs - (line 10) stdout ----

thread 'main' panicked at /tmp/rustdoctestSZq9aS/doctest_bundle_2024.rs:6:1:
assertion `left == right` failed
left: 4
right: 5
stack backtrace:
0: __rustc::rust_begin_unwind
1: core::panicking::panic_fmt
2: core::panicking::assert_failed_inner
3: core::panicking::assert_failed
4: doctest_bundle_2024::__doctest_0::main
5: doctest_bundle_2024::__doctest_0::__main_fn
6: doctest_runner_2024::__doctest_0::TEST::{{closure}}
7: core::ops::function::FnOnce::call_once
8: doctest_runner_2024::main
9: core::ops::function::FnOnce::call_once
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.



failures:
tests/rustdoc-ui/edition-2024-doctest-error-output.rs - (line 10)

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME

Loading