diff options
Diffstat (limited to 'src/tools/miri/tests/pass-dep/shims/linux-getrandom.rs')
| -rw-r--r-- | src/tools/miri/tests/pass-dep/shims/linux-getrandom.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/tools/miri/tests/pass-dep/shims/linux-getrandom.rs b/src/tools/miri/tests/pass-dep/shims/linux-getrandom.rs new file mode 100644 index 00000000000..a1436c7319d --- /dev/null +++ b/src/tools/miri/tests/pass-dep/shims/linux-getrandom.rs @@ -0,0 +1,40 @@ +//@only-target-linux + +use std::ptr; + +fn main() { + let mut buf = [0u8; 5]; + unsafe { + assert_eq!( + libc::syscall( + libc::SYS_getrandom, + ptr::null_mut::<libc::c_void>(), + 0 as libc::size_t, + 0 as libc::c_uint, + ), + 0, + ); + assert_eq!( + libc::syscall( + libc::SYS_getrandom, + buf.as_mut_ptr() as *mut libc::c_void, + 5 as libc::size_t, + 0 as libc::c_uint, + ), + 5, + ); + + assert_eq!( + libc::getrandom(ptr::null_mut::<libc::c_void>(), 0 as libc::size_t, 0 as libc::c_uint), + 0, + ); + assert_eq!( + libc::getrandom( + buf.as_mut_ptr() as *mut libc::c_void, + 5 as libc::size_t, + 0 as libc::c_uint, + ), + 5, + ); + } +} |
