lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

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 }