diff options
Diffstat (limited to 'src/tools/miri/tests/pass-dep/wcslen.rs')
| -rw-r--r-- | src/tools/miri/tests/pass-dep/wcslen.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/tools/miri/tests/pass-dep/wcslen.rs b/src/tools/miri/tests/pass-dep/wcslen.rs new file mode 100644 index 00000000000..c5c9d992479 --- /dev/null +++ b/src/tools/miri/tests/pass-dep/wcslen.rs @@ -0,0 +1,20 @@ +fn to_c_wchar_t_str(s: &str) -> Vec<libc::wchar_t> { + let mut r = Vec::<libc::wchar_t>::new(); + for c in s.bytes() { + if c == 0 { + panic!("can't contain a null character"); + } + if c >= 128 { + panic!("only ASCII supported"); + } + r.push(c.into()); + } + r.push(0); + r +} + +pub fn main() { + let s = to_c_wchar_t_str("Rust"); + let len = unsafe { libc::wcslen(s.as_ptr()) }; + assert_eq!(len, 4); +} |
