Skip to content

Commit 5f45c69

Browse files
committed
Improve filtering in default-backtrace-ice.rs.
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.
1 parent 6edb4ca commit 5f45c69

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

tests/ui/panics/default-backtrace-ice.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@
44
// failure-status:101
55
// normalize-stderr-test "note: .*" -> ""
66
// normalize-stderr-test "thread 'rustc' .*" -> ""
7-
// normalize-stderr-test " .*\n" -> ""
7+
// normalize-stderr-test " +\d+:.*__rust_begin_short_backtrace.*" -> "(begin_short_backtrace)"
8+
// normalize-stderr-test " +\d+:.*__rust_end_short_backtrace.*" -> "(end_short_backtrace)"
9+
// normalize-stderr-test " +\d+:.*\n" -> ""
10+
// normalize-stderr-test " +at .*\n" -> ""
11+
//
12+
// This test makes sure that full backtraces are used for ICEs when
13+
// RUST_BACKTRACE is not set. It does this by checking for the presence of
14+
// `__rust_{begin,end}_short_backtrace` markers, which only appear in full
15+
// backtraces. The rest of the backtrace is filtered out.
816

917
fn main() { missing_ident; }

tests/ui/panics/default-backtrace-ice.stderr

+5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
error[E0425]: cannot find value `missing_ident` in this scope
2+
--> $DIR/default-backtrace-ice.rs:17:13
3+
|
24
LL | fn main() { missing_ident; }
5+
| ^^^^^^^^^^^^^ not found in this scope
36

47

58
stack backtrace:
9+
(end_short_backtrace)
10+
(begin_short_backtrace)
611

712
error: the compiler unexpectedly panicked. this is a bug.
813

0 commit comments

Comments
 (0)