1 // mac-os `getrandom_1` does some pointer shenanigans
2 //@compile-flags: -Zmiri-permissive-provenance
3 use rand::{rngs::SmallRng, Rng, SeedableRng};
6 // Test `getrandom` directly (in multiple different versions).
7 let mut data = vec![0; 16];
8 getrandom_1::getrandom(&mut data).unwrap();
9 getrandom_2::getrandom(&mut data).unwrap();
11 // Try seeding with "real" entropy.
12 let mut rng = SmallRng::from_entropy();
13 let _val = rng.gen::<i32>();
14 let _val = rng.gen::<isize>();
15 let _val = rng.gen::<i128>();
17 // Also try per-thread RNG.
18 let mut rng = rand::thread_rng();
19 let _val = rng.gen::<i32>();
20 let _val = rng.gen::<isize>();
21 let _val = rng.gen::<i128>();