diff options
| author | David Tolnay <dtolnay@gmail.com> | 2020-02-13 00:16:28 -0800 |
|---|---|---|
| committer | David Tolnay <dtolnay@gmail.com> | 2020-03-09 12:01:32 -0700 |
| commit | 33600e4d2d7a61f7dcb1b278bb1ccb8f04690db3 (patch) | |
| tree | 297172a5606e7a46b4dbc7cb6b1d8573bbfe02d9 | |
| parent | a9cc010c4883bafba1304f6fd581343f5b1b3ba2 (diff) | |
| download | rust-33600e4d2d7a61f7dcb1b278bb1ccb8f04690db3.tar.gz rust-33600e4d2d7a61f7dcb1b278bb1ccb8f04690db3.zip | |
Add test of Debug representation of Backtrace
| -rw-r--r-- | src/libstd/backtrace.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/libstd/backtrace.rs b/src/libstd/backtrace.rs index 04fd80ecbdb..f3dd7a62fcb 100644 --- a/src/libstd/backtrace.rs +++ b/src/libstd/backtrace.rs @@ -433,3 +433,55 @@ impl RawFrame { } } } + +#[test] +fn test_debug() { + let backtrace = Backtrace { + inner: Inner::Captured(Mutex::new(Capture { + actual_start: 1, + resolved: true, + frames: vec![ + BacktraceFrame { + frame: RawFrame::Fake, + symbols: vec![BacktraceSymbol { + name: Some(b"std::backtrace::Backtrace::create".to_vec()), + filename: Some(BytesOrWide::Bytes(b"/rust/backtrace.rs".to_vec())), + lineno: Some(100), + }], + }, + BacktraceFrame { + frame: RawFrame::Fake, + symbols: vec![BacktraceSymbol { + name: Some(b"__rust_maybe_catch_panic".to_vec()), + filename: None, + lineno: None, + }], + }, + BacktraceFrame { + frame: RawFrame::Fake, + symbols: vec![ + BacktraceSymbol { + name: Some(b"std::rt::lang_start_internal".to_vec()), + filename: Some(BytesOrWide::Bytes(b"/rust/rt.rs".to_vec())), + lineno: Some(300), + }, + BacktraceSymbol { + name: Some(b"std::rt::lang_start".to_vec()), + filename: Some(BytesOrWide::Bytes(b"/rust/rt.rs".to_vec())), + lineno: Some(400), + }, + ], + }, + ], + })), + }; + + #[rustfmt::skip] + let expected = "Backtrace [\ + \n { fn: \"__rust_maybe_catch_panic\" },\ + \n { fn: \"std::rt::lang_start_internal\", file: \"/rust/rt.rs\", line: 300 },\ + \n { fn: \"std::rt::lang_start\", file: \"/rust/rt.rs\", line: 400 },\ + \n]"; + + assert_eq!(format!("{:#?}", backtrace), expected); +} |
