about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libextra/test.rs9
1 files changed, 5 insertions, 4 deletions
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 {