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"); }