Skip to content

Commit f39a35a

Browse files
committed
test fixes
1 parent 8c0048c commit f39a35a

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

tmc-langs-util/src/progress_reporter.rs

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,17 +156,34 @@ struct ProgressReporter<'a, T> {
156156
#[cfg(test)]
157157
mod test {
158158
use super::*;
159-
use std::sync::{Arc, Mutex};
159+
use std::sync::{Arc, Mutex, MutexGuard};
160160

161-
fn init() {
161+
static PROGRESS_MUTEX: OnceCell<Mutex<()>> = OnceCell::new();
162+
163+
fn init() -> MutexGuard<'static, ()> {
162164
use log::*;
163165
use simple_logger::*;
164166
let _ = SimpleLogger::new().with_level(LevelFilter::Debug).init();
167+
168+
// wait for lock and clear reporter map
169+
let mutex = PROGRESS_MUTEX.get_or_init(|| Mutex::new(()));
170+
let guard = mutex.lock().unwrap();
171+
if let Some(reporters) = PROGRESS_REPORTERS.get() {
172+
let mut reporters = reporters.write().unwrap();
173+
*reporters = ProgressReporter2 {
174+
reporters: TypeMap::new(),
175+
current_progress: 0.0,
176+
total_steps_left: 0,
177+
start_time: Instant::now(),
178+
stage_steps: Vec::new(),
179+
};
180+
}
181+
guard
165182
}
166183

167184
#[test]
168185
fn single_stage_progress() {
169-
init();
186+
let _lock = init();
170187

171188
let su = Arc::new(Mutex::new(None));
172189
let suc = Arc::clone(&su);
@@ -186,7 +203,7 @@ mod test {
186203

187204
#[test]
188205
fn multi_stage_progress() {
189-
init();
206+
let _lock = init();
190207

191208
let su = Arc::new(Mutex::new(None));
192209
let suc = Arc::clone(&su);
@@ -202,7 +219,7 @@ mod test {
202219

203220
start_stage::<usize>(2, "starting".to_string(), None);
204221
progress_stage::<usize>("msg".to_string(), None);
205-
assert!((su.lock().unwrap().as_ref().unwrap().percent_done - 66.66).abs() < 0.01);
222+
assert!((su.lock().unwrap().as_ref().unwrap().percent_done - 66.6666).abs() < 0.01);
206223

207224
start_stage::<usize>(2, "starting".to_string(), None);
208225
progress_stage::<usize>("msg".to_string(), None);

0 commit comments

Comments
 (0)