1*2a08713aSRalph Squillace use test_programs::p3::wasi::random;
2*2a08713aSRalph Squillace 
3*2a08713aSRalph Squillace struct Component;
4*2a08713aSRalph Squillace 
5*2a08713aSRalph Squillace test_programs::p3::export!(Component);
6*2a08713aSRalph Squillace 
7*2a08713aSRalph Squillace impl test_programs::p3::exports::wasi::cli::run::Guest for Component {
run() -> Result<(), ()>8*2a08713aSRalph Squillace     async fn run() -> Result<(), ()> {
9*2a08713aSRalph Squillace         test_big_random_buf().await;
10*2a08713aSRalph Squillace         Ok(())
11*2a08713aSRalph Squillace     }
12*2a08713aSRalph Squillace }
13*2a08713aSRalph Squillace 
main()14*2a08713aSRalph Squillace fn main() {
15*2a08713aSRalph Squillace     unreachable!()
16*2a08713aSRalph Squillace }
17*2a08713aSRalph Squillace 
test_big_random_buf()18*2a08713aSRalph Squillace async fn test_big_random_buf() {
19*2a08713aSRalph Squillace     let buf = random::random::get_random_bytes(1024);
20*2a08713aSRalph Squillace     // Chances are pretty good that at least *one* byte will be non-zero in
21*2a08713aSRalph Squillace     // any meaningful random function producing 1024 u8 values.
22*2a08713aSRalph Squillace     assert!(buf.iter().any(|x| *x != 0), "random_get returned all zeros");
23*2a08713aSRalph Squillace }
24