()
| 166 | #[cfg(all(nightly, feature = "eyre", feature = "backtrace"))] |
| 167 | #[ignore = "bug: `eyre` currently does not provide a backtrace`"] |
| 168 | fn eyre_backtrace() { |
| 169 | install_eyre_hook(); |
| 170 | |
| 171 | let error = eyre::eyre!("test error"); |
| 172 | let error_backtrace = |
| 173 | error::request_ref::<std::backtrace::Backtrace>(error.as_ref() as &dyn error::Error) |
| 174 | .expect("no backtrace captured"); |
| 175 | let error_backtrace_len = error_backtrace.frames().len(); |
| 176 | let error_backtrace_string = error_backtrace.to_string(); |
| 177 | |
| 178 | let report: Report<eyre::Error> = Err::<(), _>(error) |
| 179 | .into_report() |
| 180 | .expect_err("should have returned error"); |
| 181 | let report_backtrace = report |
| 182 | .request_ref::<std::backtrace::Backtrace>() |
| 183 | .next() |
| 184 | .expect("No backtrace captured"); |
| 185 | let report_backtrace_len = report_backtrace.frames().len(); |
| 186 | let report_backtrace_string = report_backtrace.to_string(); |
| 187 | |
| 188 | assert_eq!(error_backtrace_len, report_backtrace_len); |
| 189 | assert_eq!(error_backtrace_string, report_backtrace_string); |
| 190 | } |
| 191 | |
| 192 | #[test] |
| 193 | #[cfg(feature = "eyre")] |
nothing calls this directly
no test coverage detected