about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2013-07-17 12:28:48 -0700
committerGraydon Hoare <graydon@mozilla.com>2013-07-17 12:28:48 -0700
commit6d78a367b1f5721624c7f8b66b1796303f0b6f45 (patch)
treee463a650c0b08222315db8d3a6355f53a2c32cab /src
parent4bf6b84a4d23606394fb7176b4f2f216dff06e5b (diff)
downloadrust-6d78a367b1f5721624c7f8b66b1796303f0b6f45.tar.gz
rust-6d78a367b1f5721624c7f8b66b1796303f0b6f45.zip
extra: avoid possible divide-by-zero conditions test.
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 {