diff options
Diffstat (limited to 'third_party/rust/anyhow/tests/test_repr.rs')
-rw-r--r-- | third_party/rust/anyhow/tests/test_repr.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/third_party/rust/anyhow/tests/test_repr.rs b/third_party/rust/anyhow/tests/test_repr.rs new file mode 100644 index 0000000000..72f5002ae1 --- /dev/null +++ b/third_party/rust/anyhow/tests/test_repr.rs @@ -0,0 +1,29 @@ +mod drop; + +use self::drop::{DetectDrop, Flag}; +use anyhow::Error; +use std::marker::Unpin; +use std::mem; + +#[test] +fn test_error_size() { + assert_eq!(mem::size_of::<Error>(), mem::size_of::<usize>()); +} + +#[test] +fn test_null_pointer_optimization() { + assert_eq!(mem::size_of::<Result<(), Error>>(), mem::size_of::<usize>()); +} + +#[test] +fn test_autotraits() { + fn assert<E: Unpin + Send + Sync + 'static>() {} + assert::<Error>(); +} + +#[test] +fn test_drop() { + let has_dropped = Flag::new(); + drop(Error::new(DetectDrop::new(&has_dropped))); + assert!(has_dropped.get()); +} |