error.rs (1069B)
1 use radroots_net::error::NetError; 2 use std::panic::{AssertUnwindSafe, catch_unwind}; 3 4 #[test] 5 fn msg_constructor_creates_msg_variant() { 6 let err = NetError::msg("hello"); 7 assert!(matches!(err, NetError::Msg(ref message) if message == "hello")); 8 } 9 10 #[test] 11 fn clone_covers_non_io_variants() { 12 let variants = [ 13 NetError::msg("hello"), 14 NetError::Poisoned, 15 NetError::MissingKey, 16 NetError::InvalidHex32, 17 NetError::InvalidBech32, 18 NetError::InvalidKeyFile, 19 NetError::KeyIo, 20 NetError::OverwriteDenied, 21 NetError::PersistencePathRequired, 22 NetError::PersistenceUnsupported, 23 NetError::LoggingInit("init"), 24 ]; 25 for variant in variants { 26 let cloned = variant.clone(); 27 assert_eq!(format!("{variant}"), format!("{cloned}")); 28 } 29 } 30 31 #[test] 32 fn clone_panics_for_io_variant() { 33 let io_err = NetError::Io(std::io::Error::other("io")); 34 let result = catch_unwind(AssertUnwindSafe(|| { 35 let _ = io_err.clone(); 36 })); 37 assert!(result.is_err()); 38 }