diff options
Diffstat (limited to 'src/analysis/mod.rs')
-rwxr-xr-x | src/analysis/mod.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/analysis/mod.rs b/src/analysis/mod.rs index caa948d..1c072e1 100755 --- a/src/analysis/mod.rs +++ b/src/analysis/mod.rs @@ -13,7 +13,7 @@ use crate::estimate::{ }; use crate::fs; use crate::measurement::Measurement; -use crate::report::{BenchmarkId, ReportContext}; +use crate::report::{BenchmarkId, Report, ReportContext}; use crate::routine::Routine; use crate::{Baseline, Criterion, SavedSample, Throughput}; @@ -105,11 +105,22 @@ pub(crate) fn common<M: Measurement, T: ?Sized>( conn.serve_value_formatter(criterion.measurement.formatter()) .unwrap(); + return; } } criterion.report.analysis(id, report_context); + if times.iter().any(|&f| f == 0.0) { + error!( + "At least one measurement of benchmark {} took zero time per \ + iteration. This should not be possible. If using iter_custom, please verify \ + that your routine is correctly measured.", + id.as_title() + ); + return; + } + let avg_times = iters .iter() .zip(times.iter()) |