Skip to content

doctests: print_merged_doctests_times() crashes JUnit formatter #149436

@ilammy

Description

@ilammy

When unstable --format=junit is used, crates with doctests panic.

Code

/// ```
/// assert_eq!(2 + 2, 4);
/// ```
pub fn foo() {}
cargo test --doc -- -Z unstable-options --format=junit

Meta

rustc --version --verbose:

rustc 1.92.0-nightly (6501e64fc 2025-10-23)
binary: rustc
commit-hash: 6501e64fcb02d22b49d6e59d10a7692ec8095619
commit-date: 2025-10-23
host: aarch64-apple-darwin
release: 1.92.0-nightly
LLVM version: 21.1.3

Error output

thread 'main' (59091947) panicked at library/test/src/formatters/junit.rs:22:9:
assertion failed: !s.contains('\n')
Backtrace

stack backtrace:
   0:        0x1117b9284 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::heca2c53e567951af
   1:        0x10ebfc128 - core::fmt::write::hfd392e77bbd0a117
   2:        0x1117722f4 - std::io::Write::write_fmt::h2e5d5d3b14293b5d
   3:        0x1117844a8 - std::sys::backtrace::BacktraceLock::print::haf2c31c8f0b66728
   4:        0x11178ad2c - std::panicking::default_hook::{{closure}}::hb6a1626dcc9d638e
   5:        0x11178a9cc - std::panicking::default_hook::he558bb5633d06dd3
   6:        0x10f7a6c2c - std[31820d8d119d2b1a]::panicking::update_hook::<alloc[c98364d87502df1f]::boxed::Box<rustc_driver_impl[741f0d247cd92ffe]::install_ice_hook::{closure#1}>>::{closure#0}
   7:        0x11178b254 - std::panicking::panic_with_hook::h9fbd4402ab35bb12
   8:        0x11178aedc - std::panicking::panic_handler::{{closure}}::hdc508ac937b59f80
   9:        0x1117845c0 - std::sys::backtrace::__rust_end_short_backtrace::h1152a0393351b73f
  10:        0x111768a7c - __rustc[4683036c762297f9]::rust_begin_unwind
  11:        0x1144f1d6c - core::panicking::panic_fmt::hd6f40ed356ee47b2
  12:        0x1144f1d4c - core::panicking::panic::h2db8414143ce2846
  13:        0x102e9e5b4 - <test::formatters::junit::JunitFormatter<T> as test::formatters::OutputFormatter>::write_merged_doctests_times::ha74d38c005789c1e
  14:        0x102eb526c - test::print_merged_doctests_times::hdcdf0fdad92fc855
  15:        0x102d665e0 - rustdoc[fc49a747f52601b2]::doctest::run_tests
  16:        0x102d62720 - rustdoc[fc49a747f52601b2]::doctest::run
  17:        0x102ca505c - rustdoc[fc49a747f52601b2]::main_args
  18:        0x102ca0a74 - rustdoc[fc49a747f52601b2]::main
  19:        0x102e86fc4 - std[31820d8d119d2b1a]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
  20:        0x102e86fdc - std[31820d8d119d2b1a]::rt::lang_start::<()>::{closure#0}
  21:        0x1117750fc - std::rt::lang_start_internal::h8bc1be803cf24ab7
  22:        0x102e8703c - _main

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions