Skip to content

Commit 6d78a36

Browse files
committed
extra: avoid possible divide-by-zero conditions test.
1 parent 4bf6b84 commit 6d78a36

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/libextra/test.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ impl MetricMap {
845845
if delta.abs() <= noise {
846846
LikelyNoise
847847
} else {
848-
let pct = delta.abs() / vold.value * 100.0;
848+
let pct = delta.abs() / (vold.value).max(&f64::epsilon) * 100.0;
849849
if vold.noise < 0.0 {
850850
// When 'noise' is negative, it means we want
851851
// to see deltas that go up over time, and can
@@ -954,7 +954,7 @@ impl BenchHarness {
954954
if self.iterations == 0 {
955955
0
956956
} else {
957-
self.ns_elapsed() / self.iterations
957+
self.ns_elapsed() / self.iterations.max(&1)
958958
}
959959
}
960960

@@ -977,7 +977,7 @@ impl BenchHarness {
977977
if self.ns_per_iter() == 0 {
978978
n = 1_000_000;
979979
} else {
980-
n = 1_000_000 / self.ns_per_iter();
980+
n = 1_000_000 / self.ns_per_iter().max(&1);
981981
}
982982

983983
let mut total_run = 0;
@@ -1047,7 +1047,8 @@ pub mod bench {
10471047

10481048
let ns_iter_summ = bs.auto_bench(f);
10491049

1050-
let iter_s = 1_000_000_000 / (ns_iter_summ.median as u64);
1050+
let ns_iter = (ns_iter_summ.median as u64).max(&1);
1051+
let iter_s = 1_000_000_000 / ns_iter;
10511052
let mb_s = (bs.bytes * iter_s) / 1_000_000;
10521053

10531054
BenchSamples {

0 commit comments

Comments
 (0)