| use super::*; | |
| #[test] | |
| fn short() { | |
| const TEXT: &str = "abcd"; | |
| let reference = ffi::CString::new(TEXT.to_string()).unwrap(); | |
| let scs = SmallCStr::new(TEXT); | |
| assert_eq!(scs.len_with_nul(), TEXT.len() + 1); | |
| assert_eq!(scs.as_c_str(), reference.as_c_str()); | |
| assert!(!scs.spilled()); | |
| } | |
| #[test] | |
| fn empty() { | |
| const TEXT: &str = ""; | |
| let reference = ffi::CString::new(TEXT.to_string()).unwrap(); | |
| let scs = SmallCStr::new(TEXT); | |
| assert_eq!(scs.len_with_nul(), TEXT.len() + 1); | |
| assert_eq!(scs.as_c_str(), reference.as_c_str()); | |
| assert!(!scs.spilled()); | |
| } | |
| #[test] | |
| fn long() { | |
| const TEXT: &str = "01234567890123456789012345678901234567890123456789\ | |
| 01234567890123456789012345678901234567890123456789\ | |
| 01234567890123456789012345678901234567890123456789"; | |
| let reference = ffi::CString::new(TEXT.to_string()).unwrap(); | |
| let scs = SmallCStr::new(TEXT); | |
| assert_eq!(scs.len_with_nul(), TEXT.len() + 1); | |
| assert_eq!(scs.as_c_str(), reference.as_c_str()); | |
| assert!(scs.spilled()); | |
| } | |
| #[test] | |
| #[should_panic] | |
| fn internal_nul() { | |
| let _ = SmallCStr::new("abcd\0def"); | |
| } | |
| #[test] | |
| fn from_cstr() { | |
| let c = c"foo"; | |
| let s: SmallCStr = c.into(); | |
| assert_eq!(s.len_with_nul(), 4); | |
| assert_eq!(s.as_c_str(), c"foo"); | |
| } |