1 #![allow(clippy::extra_unused_type_parameters)]
2 
3 mod drop;
4 
5 use self::drop::{DetectDrop, Flag};
6 use anyhow::Error;
7 use std::marker::Unpin;
8 use std::mem;
9 
10 #[test]
test_error_size()11 fn test_error_size() {
12     assert_eq!(mem::size_of::<Error>(), mem::size_of::<usize>());
13 }
14 
15 #[test]
test_null_pointer_optimization()16 fn test_null_pointer_optimization() {
17     assert_eq!(mem::size_of::<Result<(), Error>>(), mem::size_of::<usize>());
18 }
19 
20 #[test]
test_autotraits()21 fn test_autotraits() {
22     fn assert<E: Unpin + Send + Sync + 'static>() {}
23     assert::<Error>();
24 }
25 
26 #[test]
test_drop()27 fn test_drop() {
28     let has_dropped = Flag::new();
29     drop(Error::new(DetectDrop::new(&has_dropped)));
30     assert!(has_dropped.get());
31 }
32