Skip to content

Commit 2a30b9d

Browse files
committed
group TestResult in experiment page
1 parent 1c71c8f commit 2a30b9d

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/server/routes/ui/experiments.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
use crate::experiments::{Experiment, Mode, Status};
22
use crate::prelude::*;
3-
use crate::results::TestResult;
3+
use crate::report::ResultName;
44
use crate::server::routes::ui::{render_template, LayoutContext};
55
use crate::server::{Data, HttpError};
66
use chrono::{Duration, SecondsFormat, Utc};
77
use chrono_humanize::{Accuracy, HumanTime, Tense};
88
use http::Response;
99
use hyper::Body;
10+
use std::collections::HashMap;
1011
use std::sync::Arc;
1112

1213
#[derive(Serialize)]
@@ -121,7 +122,7 @@ struct ExperimentExt {
121122

122123
total_jobs: u32,
123124
completed_jobs: u32,
124-
result_counts: Vec<(TestResult, u32)>,
125+
result_counts: Vec<(String, u32)>,
125126
duration: Option<String>,
126127
estimated_end: Option<String>,
127128
average_job_duration: Option<String>,
@@ -136,7 +137,13 @@ struct ExperimentContext {
136137
pub fn endpoint_experiment(name: String, data: Arc<Data>) -> Fallible<Response<Body>> {
137138
if let Some(ex) = Experiment::get(&data.db, &name)? {
138139
let (completed_jobs, total_jobs) = ex.raw_progress(&data.db)?;
139-
let result_counts = ex.get_result_counts(&data.db)?;
140+
// this is done to avoid having tons of different test result types in the experiment page
141+
// all CompilerError and DependsOn failures are grouped together
142+
let mut result_counts = HashMap::new();
143+
for (res, count) in ex.get_result_counts(&data.db)? {
144+
*result_counts.entry(res.name()).or_default() += count;
145+
}
146+
let result_counts = result_counts.into_iter().collect::<Vec<_>>();
140147

141148
let (duration, estimated_end, average_job_duration) = if completed_jobs > 0
142149
&& total_jobs > 0

0 commit comments

Comments
 (0)