Skip to content

Commit 13c8b79

Browse files
committed
Test std::backtrace::Backtrace
Fixes #1578
1 parent ea5b480 commit 13c8b79

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

tests/run-pass/backtrace-std.rs

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// normalize-stderr-test ".*/(rust|checkout)/library/" -> "RUSTLIB/"
2+
// normalize-stderr-test "RUSTLIB/(.*):\d+:\d+ "-> "RUSTLIB/$1:LL:COL "
3+
// normalize-stderr-test "::<.*>" -> ""
4+
// compile-flags: -Zmiri-disable-isolation
5+
6+
#![feature(backtrace)]
7+
8+
use std::backtrace::Backtrace;
9+
10+
#[inline(never)] fn func_a() -> Backtrace { func_b::<u8>() }
11+
#[inline(never)] fn func_b<T>() -> Backtrace { func_c() }
12+
13+
macro_rules! invoke_func_d {
14+
() => { func_d() }
15+
}
16+
17+
#[inline(never)] fn func_c() -> Backtrace { invoke_func_d!() }
18+
#[inline(never)] fn func_d() -> Backtrace { Backtrace::capture() }
19+
20+
fn main() {
21+
eprint!("{}", func_a());
22+
}

tests/run-pass/backtrace-std.stderr

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
0: func_d
2+
at $DIR/backtrace-std.rs:18
3+
1: func_c
4+
at $DIR/backtrace-std.rs:17
5+
2: func_b
6+
at $DIR/backtrace-std.rs:11
7+
3: func_a
8+
at $DIR/backtrace-std.rs:10
9+
4: main
10+
at $DIR/backtrace-std.rs:21
11+
5: <fn() as std::ops::FnOnce<()>>::call_once - shim(fn())
12+
RUSTLIB/core/src/ops/function.rs:227
13+
6: std::sys_common::backtrace::__rust_begin_short_backtrace
14+
RUSTLIB/std/src/sys_common/backtrace.rs:125
15+
7: std::rt::lang_start::{closure#0}
16+
RUSTLIB/std/src/rt.rs:66
17+
8: std::ops::function::impls::call_once
18+
RUSTLIB/core/src/ops/function.rs:259
19+
9: std::panicking::r#try::do_call
20+
RUSTLIB/std/src/panicking.rs:381
21+
10: std::panicking::r#try
22+
RUSTLIB/std/src/panicking.rs:345
23+
11: std::panic::catch_unwind
24+
RUSTLIB/std/src/panic.rs:382
25+
12: std::rt::lang_start_internal
26+
RUSTLIB/std/src/rt.rs:51
27+
13: std::rt::lang_start
28+
RUSTLIB/std/src/rt.rs:65

0 commit comments

Comments
 (0)