]> git.bitcoin.ninja Git - rust-lightning/blob - src/util/rng.rs
Stub out RNG when fuzzing
[rust-lightning] / src / util / rng.rs
1 #[cfg(not(feature = "fuzztarget"))]
2 mod real_rng {
3         use rand::{thread_rng,Rng};
4         use bitcoin::util::uint::Uint256;
5
6         pub fn fill_bytes(data: &mut [u8]) {
7                 let mut rng = thread_rng();
8                 rng.fill_bytes(data);
9         }
10
11         pub fn rand_uint256() -> Uint256 {
12                 let mut rng = thread_rng();
13                 Uint256([rng.gen(), rng.gen(), rng.gen(), rng.gen()])
14         }
15
16         pub fn rand_f32() -> f32 {
17                 let mut rng = thread_rng();
18                 rng.next_f32()
19         }
20 }
21 #[cfg(not(feature = "fuzztarget"))]
22 pub use self::real_rng::*;
23
24 #[cfg(feature = "fuzztarget")]
25 mod fuzzy_rng {
26         use bitcoin::util::uint::Uint256;
27
28         pub fn fill_bytes(data: &mut [u8]) {
29                 for i in 0..data.len() {
30                         data[i] = 0x42;
31                 }
32         }
33
34         pub fn rand_uint256() -> Uint256 {
35                 Uint256([0xdeadbeef, 0x1badcafe, 0xbadbeef, 0xdeadcafe])
36         }
37
38         pub fn rand_f32() -> f32 {
39                 0.42
40         }
41 }
42 #[cfg(feature = "fuzztarget")]
43 pub use self::fuzzy_rng::*;