summaryrefslogtreecommitdiff
path: root/rand/rand_jitter/tests/mod.rs
blob: 961dc27d31b729430ca83e81b0ed1abc5012863d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use rand_jitter::JitterRng;
#[cfg(feature = "std")]
use rand_core::RngCore;

#[cfg(feature = "std")]
#[test]
fn test_jitter_init() {
    // Because this is a debug build, measurements here are not representive
    // of the final release build.
    // Don't fail this test if initializing `JitterRng` fails because of a
    // bad timer (the timer from the standard library may not have enough
    // accuracy on all platforms).
    match JitterRng::new() {
        Ok(ref mut rng) => {
            // false positives are possible, but extremely unlikely
            assert!(rng.next_u32() | rng.next_u32() != 0);
        },
        Err(_) => {},
    }
}

#[test]
fn test_jitter_bad_timer() {
    fn bad_timer() -> u64 { 0 }
    let mut rng = JitterRng::new_with_timer(bad_timer);
    assert!(rng.test_timer().is_err());
}