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()11fn test_error_size() { 12 assert_eq!(mem::size_of::<Error>(), mem::size_of::<usize>()); 13 } 14 15 #[test] test_null_pointer_optimization()16fn test_null_pointer_optimization() { 17 assert_eq!(mem::size_of::<Result<(), Error>>(), mem::size_of::<usize>()); 18 } 19 20 #[test] test_autotraits()21fn test_autotraits() { 22 fn assert<E: Unpin + Send + Sync + 'static>() {} 23 assert::<Error>(); 24 } 25 26 #[test] test_drop()27fn test_drop() { 28 let has_dropped = Flag::new(); 29 drop(Error::new(DetectDrop::new(&has_dropped))); 30 assert!(has_dropped.get()); 31 } 32