Skip to content

Commit 33600e4

Browse files
committed
Add test of Debug representation of Backtrace
1 parent a9cc010 commit 33600e4

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

src/libstd/backtrace.rs

+52
Original file line numberDiff line numberDiff line change
@@ -433,3 +433,55 @@ impl RawFrame {
433433
}
434434
}
435435
}
436+
437+
#[test]
438+
fn test_debug() {
439+
let backtrace = Backtrace {
440+
inner: Inner::Captured(Mutex::new(Capture {
441+
actual_start: 1,
442+
resolved: true,
443+
frames: vec![
444+
BacktraceFrame {
445+
frame: RawFrame::Fake,
446+
symbols: vec![BacktraceSymbol {
447+
name: Some(b"std::backtrace::Backtrace::create".to_vec()),
448+
filename: Some(BytesOrWide::Bytes(b"/rust/backtrace.rs".to_vec())),
449+
lineno: Some(100),
450+
}],
451+
},
452+
BacktraceFrame {
453+
frame: RawFrame::Fake,
454+
symbols: vec![BacktraceSymbol {
455+
name: Some(b"__rust_maybe_catch_panic".to_vec()),
456+
filename: None,
457+
lineno: None,
458+
}],
459+
},
460+
BacktraceFrame {
461+
frame: RawFrame::Fake,
462+
symbols: vec![
463+
BacktraceSymbol {
464+
name: Some(b"std::rt::lang_start_internal".to_vec()),
465+
filename: Some(BytesOrWide::Bytes(b"/rust/rt.rs".to_vec())),
466+
lineno: Some(300),
467+
},
468+
BacktraceSymbol {
469+
name: Some(b"std::rt::lang_start".to_vec()),
470+
filename: Some(BytesOrWide::Bytes(b"/rust/rt.rs".to_vec())),
471+
lineno: Some(400),
472+
},
473+
],
474+
},
475+
],
476+
})),
477+
};
478+
479+
#[rustfmt::skip]
480+
let expected = "Backtrace [\
481+
\n { fn: \"__rust_maybe_catch_panic\" },\
482+
\n { fn: \"std::rt::lang_start_internal\", file: \"/rust/rt.rs\", line: 300 },\
483+
\n { fn: \"std::rt::lang_start\", file: \"/rust/rt.rs\", line: 400 },\
484+
\n]";
485+
486+
assert_eq!(format!("{:#?}", backtrace), expected);
487+
}

0 commit comments

Comments
 (0)