nano33ble/test/
virtual_rng_test.rs1use capsules_core::rng;
12use capsules_core::test::virtual_rng::TestRng;
13use kernel::hil::rng::Rng;
14use kernel::{debug, static_init};
15
16pub unsafe fn run(trng: &'static nrf52840::trng::Trng) {
17 debug!("Starting virtual_rng get tests:");
18 let rng_obj = static_init!(
19 rng::Entropy32ToRandom<'static, nrf52840::trng::Trng>,
20 rng::Entropy32ToRandom::new(trng)
21 );
22
23 let mux = static_init!(
25 capsules_core::virtualizers::virtual_rng::MuxRngMaster<'static>,
26 capsules_core::virtualizers::virtual_rng::MuxRngMaster::new(rng_obj)
27 );
28
29 let device1 = static_init!(
31 capsules_core::virtualizers::virtual_rng::VirtualRngMasterDevice<'static>,
32 capsules_core::virtualizers::virtual_rng::VirtualRngMasterDevice::new(mux)
33 );
34 let device2 = static_init!(
35 capsules_core::virtualizers::virtual_rng::VirtualRngMasterDevice<'static>,
36 capsules_core::virtualizers::virtual_rng::VirtualRngMasterDevice::new(mux)
37 );
38 let device3 = static_init!(
39 capsules_core::virtualizers::virtual_rng::VirtualRngMasterDevice<'static>,
40 capsules_core::virtualizers::virtual_rng::VirtualRngMasterDevice::new(mux)
41 );
42
43 let test_device_1 = static_init!(TestRng<'static>, TestRng::new(1, device1));
45
46 let test_device_2 = static_init!(TestRng<'static>, TestRng::new(2, device2));
47
48 let test_device_3 = static_init!(TestRng<'static>, TestRng::new(3, device3));
49
50 device1.set_client(test_device_1);
52 device2.set_client(test_device_2);
53 device3.set_client(test_device_3);
54
55 test_device_1.get_random_nums();
57 test_device_2.get_random_nums();
58 test_device_3.get_random_nums();
59}