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