Skip to content

Commit ea51760

Browse files
committed
fix(harness): Report cases as we discover them
1 parent 0803c18 commit ea51760

1 file changed

Lines changed: 9 additions & 13 deletions

File tree

crates/libtest2-harness/src/harness.rs

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -100,28 +100,24 @@ impl Harness<StateParsed> {
100100
.into(),
101101
)?;
102102

103-
let mut cases = cases
104-
.into_iter()
105-
.map(|c| Box::new(c) as Box<dyn Case>)
106-
.collect::<Vec<_>>();
107-
let mut retain_cases = Vec::with_capacity(cases.len());
108-
for case in cases.iter() {
109-
let retain_case = case_priority(case.as_ref(), &self.state.opts).is_some();
110-
retain_cases.push(retain_case);
103+
let mut selected_cases = Vec::new();
104+
for case in cases {
105+
let selected = case_priority(&case, &self.state.opts).is_some();
111106
self.state.notifier.notify(
112107
notify::event::DiscoverCase {
113108
name: case.name().to_owned(),
114109
mode: RunMode::Test,
115-
selected: retain_case,
110+
selected,
116111
elapsed_s: Some(notify::Elapsed(self.state.start.elapsed())),
117112
}
118113
.into(),
119114
)?;
115+
if selected {
116+
selected_cases.push(Box::new(case) as Box<dyn Case>);
117+
}
120118
}
121-
let mut retain_cases = retain_cases.into_iter();
122-
cases.retain(|_| retain_cases.next().unwrap());
123119

124-
cases.sort_unstable_by_key(|case| {
120+
selected_cases.sort_unstable_by_key(|case| {
125121
let priority = case_priority(case.as_ref(), &self.state.opts);
126122
let name = case.name().to_owned();
127123
(priority, name)
@@ -139,7 +135,7 @@ impl Harness<StateParsed> {
139135
start: self.state.start,
140136
opts: self.state.opts,
141137
notifier: self.state.notifier,
142-
cases,
138+
cases: selected_cases,
143139
},
144140
})
145141
}

0 commit comments

Comments
 (0)