mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
f20738dfb9
This test is supposed to ensure that full backtraces are used for ICEs. But it doesn't actually do that -- the filtering done cannot distinguish between a full backtrace versus a short backtrace. So this commit changes the filtering to preserve the existence of `__rust_{begin,end}_short_backtrace` markers, which only appear in full backtraces. This change means the test now tests what it is supposed to test. Also, the existing filtering included a rule that excluded any line starting with two spaces. This was too strong because it filtered out some parts of the error message. (This was not a showstopper). It was also not strong enough because it didn't work with three digit stack frame numbers, which just started seeing after upgrading my Ubuntu distro to 23.04 machine (this *was* a showstopper). So the commit replaces that rule with two more precise rules, one for lines with stack frame numbers, and one for "at ..." lines.
22 lines
917 B
Rust
22 lines
917 B
Rust
// unset-rustc-env:RUST_BACKTRACE
|
|
// compile-flags:-Z treat-err-as-bug=1
|
|
// error-pattern:stack backtrace:
|
|
// failure-status:101
|
|
// ignore-msvc
|
|
// normalize-stderr-test "note: .*" -> ""
|
|
// normalize-stderr-test "thread 'rustc' .*" -> ""
|
|
// normalize-stderr-test " +\d+:.*__rust_begin_short_backtrace.*" -> "(begin_short_backtrace)"
|
|
// normalize-stderr-test " +\d+:.*__rust_end_short_backtrace.*" -> "(end_short_backtrace)"
|
|
// normalize-stderr-test " +\d+:.*\n" -> ""
|
|
// normalize-stderr-test " +at .*\n" -> ""
|
|
//
|
|
// This test makes sure that full backtraces are used for ICEs when
|
|
// RUST_BACKTRACE is not set. It does this by checking for the presence of
|
|
// `__rust_{begin,end}_short_backtrace` markers, which only appear in full
|
|
// backtraces. The rest of the backtrace is filtered out.
|
|
//
|
|
// Ignored on msvc becaue the `__rust_{begin,end}_short_backtrace` symbols
|
|
// aren't reliable.
|
|
|
|
fn main() { missing_ident; }
|