Skip to content

Commit fb19e19

Browse files
committed
Add tests for the random proposal
1 parent ed92cf9 commit fb19e19

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
use test_wasm32_wasip3::random::{
2+
export,
3+
exports::wasi::cli::run::Guest,
4+
wasi::random::{insecure, insecure_seed, random},
5+
};
6+
7+
struct Component;
8+
9+
export!(Component);
10+
11+
fn test_get_random_bytes() {
12+
assert_eq!(random::get_random_bytes(100).len(), 100);
13+
let a = random::get_random_bytes(10);
14+
let b = random::get_random_bytes(10);
15+
// Should always return fresh data.
16+
assert_ne!(a, b);
17+
}
18+
19+
fn test_get_random_u64() {
20+
let a = random::get_random_u64();
21+
let b = random::get_random_u64();
22+
// Should always return fresh data.
23+
assert_ne!(a, b);
24+
}
25+
26+
fn test_get_insecure_seed() {
27+
let (a, b) = insecure_seed::get_insecure_seed();
28+
let (a1, b1) = insecure_seed::get_insecure_seed();
29+
30+
// Meant to be only called once.
31+
// Any subsequent calls should return the same value.
32+
assert_eq!(a, a1);
33+
assert_eq!(b, b1);
34+
}
35+
36+
fn test_get_insecure_random_bytes() {
37+
let a = insecure::get_insecure_random_bytes(100);
38+
assert_eq!(a.len(), 100);
39+
}
40+
41+
impl Guest for Component {
42+
async fn run() -> Result<(), ()> {
43+
test_get_random_bytes();
44+
test_get_random_u64();
45+
test_get_insecure_seed();
46+
test_get_insecure_random_bytes();
47+
Ok(())
48+
}
49+
}
50+
51+
fn main() {
52+
unreachable!();
53+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub mod random;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
wit_bindgen::generate!({
2+
inline: r"
3+
package wasi-testsuite:test;
4+
5+
world test {
6+
include wasi:random/imports@0.3.0-rc-2026-01-06;
7+
include wasi:cli/command@0.3.0-rc-2026-01-06;
8+
}
9+
",
10+
features:["clocks-timezone"],
11+
pub_export_macro: true,
12+
default_bindings_module: "test_wasm32_wasip3::random",
13+
additional_derives: [PartialEq, Eq],
14+
generate_all
15+
});

0 commit comments

Comments
 (0)