46 lines
1.1 KiB
Rust
46 lines
1.1 KiB
Rust
|
|
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");
|
||
|
|
}
|