diff --git a/src/libextra/test.rs b/src/libextra/test.rs index cebf518f09b..deef1fc3613 100644 --- a/src/libextra/test.rs +++ b/src/libextra/test.rs @@ -845,7 +845,7 @@ impl MetricMap { if delta.abs() <= noise { LikelyNoise } else { - let pct = delta.abs() / vold.value * 100.0; + let pct = delta.abs() / (vold.value).max(&f64::epsilon) * 100.0; if vold.noise < 0.0 { // When 'noise' is negative, it means we want // to see deltas that go up over time, and can @@ -954,7 +954,7 @@ impl BenchHarness { if self.iterations == 0 { 0 } else { - self.ns_elapsed() / self.iterations + self.ns_elapsed() / self.iterations.max(&1) } } @@ -977,7 +977,7 @@ impl BenchHarness { if self.ns_per_iter() == 0 { n = 1_000_000; } else { - n = 1_000_000 / self.ns_per_iter(); + n = 1_000_000 / self.ns_per_iter().max(&1); } let mut total_run = 0; @@ -1047,7 +1047,8 @@ pub mod bench { let ns_iter_summ = bs.auto_bench(f); - let iter_s = 1_000_000_000 / (ns_iter_summ.median as u64); + let ns_iter = (ns_iter_summ.median as u64).max(&1); + let iter_s = 1_000_000_000 / ns_iter; let mb_s = (bs.bytes * iter_s) / 1_000_000; BenchSamples {