diff --git a/src/window.rs b/src/window.rs index a503e181b3..2da2ec7832 100644 --- a/src/window.rs +++ b/src/window.rs @@ -1056,23 +1056,30 @@ mod test { } #[test] pub fn test_repair_backoff() { - let mut last = 0; - let mut times = 0; - let total: usize = (0..127) - .map(|x| { - let rv = repair_backoff(&mut last, &mut times, 1) as usize; - assert_eq!(times, x + 2); - rv + let num_tests = 100; + let res: usize = (0..num_tests) + .map(|_| { + let mut last = 0; + let mut times = 0; + let total: usize = (0..127) + .map(|x| { + let rv = repair_backoff(&mut last, &mut times, 1) as usize; + assert_eq!(times, x + 2); + rv + }) + .sum(); + assert_eq!(times, 128); + assert_eq!(last, 1); + repair_backoff(&mut last, &mut times, 1); + assert_eq!(times, 64); + repair_backoff(&mut last, &mut times, 2); + assert_eq!(times, 2); + assert_eq!(last, 2); + total }) .sum(); - assert_eq!(times, 128); - assert_eq!(last, 1); - assert!(total > 0); - assert!(total < 127); - repair_backoff(&mut last, &mut times, 1); - assert_eq!(times, 64); - repair_backoff(&mut last, &mut times, 2); - assert_eq!(times, 2); - assert_eq!(last, 2); + let avg = res / num_tests; + assert!(avg >= 3); + assert!(avg <= 5); } }