summaryrefslogtreecommitdiff
path: root/rand/rand_jitter/tests
diff options
context:
space:
mode:
Diffstat (limited to 'rand/rand_jitter/tests')
-rw-r--r--rand/rand_jitter/tests/mod.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/rand/rand_jitter/tests/mod.rs b/rand/rand_jitter/tests/mod.rs
new file mode 100644
index 0000000..961dc27
--- /dev/null
+++ b/rand/rand_jitter/tests/mod.rs
@@ -0,0 +1,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());
+}
+