Add test of capturing Arc<Backtrace>

This commit is contained in:
David Tolnay 2020-10-06 16:47:03 -07:00
parent 1baf746f7d
commit 256576e718
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
1 changed files with 26 additions and 0 deletions

View File

@ -59,6 +59,15 @@ pub mod structs {
backtrace: Option<Backtrace>,
}
#[derive(Error, Debug)]
#[error("...")]
pub struct ArcBacktraceFrom {
#[from]
source: Inner,
#[backtrace]
backtrace: Arc<Backtrace>,
}
#[test]
fn test_backtrace() {
let error = PlainBacktrace {
@ -86,6 +95,9 @@ pub mod structs {
let error = OptBacktraceFrom::from(Inner);
assert!(error.backtrace().is_some());
let error = ArcBacktraceFrom::from(Inner);
assert!(error.backtrace().is_some());
}
}
@ -152,6 +164,17 @@ pub mod enums {
},
}
#[derive(Error, Debug)]
pub enum ArcBacktraceFrom {
#[error("...")]
Test {
#[from]
source: Inner,
#[backtrace]
backtrace: Arc<Backtrace>,
},
}
#[test]
fn test_backtrace() {
let error = PlainBacktrace::Test {
@ -179,6 +202,9 @@ pub mod enums {
let error = OptBacktraceFrom::from(Inner);
assert!(error.backtrace().is_some());
let error = ArcBacktraceFrom::from(Inner);
assert!(error.backtrace().is_some());
}
}