From: arcnmx Date: Tue, 23 Feb 2016 06:37:21 +0000 (-0500) Subject: CStr::from_bytes_with_nul tests X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=71f29cd83704b39a2aefd609eab645decd3bce92;p=rust.git CStr::from_bytes_with_nul tests --- diff --git a/src/libstd/ffi/c_str.rs b/src/libstd/ffi/c_str.rs index f3561622fa3..1db45764552 100644 --- a/src/libstd/ffi/c_str.rs +++ b/src/libstd/ffi/c_str.rs @@ -721,4 +721,31 @@ fn equal_hash() { assert_eq!(cstr_hash, cstring_hash); } + + #[test] + fn from_bytes_with_nul() { + let data = b"123\0"; + let cstr = CStr::from_bytes_with_nul(data); + assert_eq!(cstr.map(CStr::to_bytes), Some(&b"123"[..])); + assert_eq!(cstr.map(CStr::to_bytes_with_nul), Some(&b"123\0"[..])); + + unsafe { + let cstr_unchecked = CStr::from_bytes_with_nul_unchecked(data); + assert_eq!(cstr, Some(cstr_unchecked)); + } + } + + #[test] + fn from_bytes_with_nul_unterminated() { + let data = b"123"; + let cstr = CStr::from_bytes_with_nul(data); + assert!(cstr.is_none()); + } + + #[test] + fn from_bytes_with_nul_interior() { + let data = b"1\023\0"; + let cstr = CStr::from_bytes_with_nul(data); + assert!(cstr.is_none()); + } }