1
1
//! Module providing interface for running tests in the console.
2
2
3
3
use std:: fs:: File ;
4
- use std:: io:: prelude:: * ;
4
+ use std:: io:: prelude:: Write ;
5
5
use std:: io;
6
6
7
7
use term;
@@ -192,7 +192,8 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
192
192
193
193
// A simple console test runner
194
194
pub fn run_tests_console ( opts : & TestOpts , tests : Vec < TestDescAndFn > ) -> io:: Result < bool > {
195
- fn callback (
195
+ // A callback handling events that occure during test execution.
196
+ fn on_test_event (
196
197
event : & TestEvent ,
197
198
st : & mut ConsoleTestState ,
198
199
out : & mut dyn OutputFormatter ,
@@ -205,9 +206,14 @@ pub fn run_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Resu
205
206
TestEvent :: TeFilteredOut ( filtered_out) => Ok ( st. filtered_out = filtered_out) ,
206
207
TestEvent :: TeWait ( ref test) => out. write_test_start ( test) ,
207
208
TestEvent :: TeTimeout ( ref test) => out. write_timeout ( test) ,
208
- TestEvent :: TeResult ( test, result, exec_time, stdout) => {
209
- st. write_log_result ( & test, & result, exec_time. as_ref ( ) ) ?;
210
- out. write_result ( & test, & result, exec_time. as_ref ( ) , & * stdout, & st) ?;
209
+ TestEvent :: TeResult ( completed_test) => {
210
+ let test = completed_test. desc ;
211
+ let result = & completed_test. result ;
212
+ let exec_time = & completed_test. exec_time ;
213
+ let stdout = completed_test. stdout ;
214
+
215
+ st. write_log_result ( & test, result, exec_time. as_ref ( ) ) ?;
216
+ out. write_result ( & test, result, exec_time. as_ref ( ) , & * stdout, st) ?;
211
217
match result {
212
218
TestResult :: TrOk => {
213
219
st. passed += 1 ;
@@ -280,7 +286,7 @@ pub fn run_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Resu
280
286
}
281
287
}
282
288
283
- run_tests ( opts, tests, |x| callback ( & x, & mut st, & mut * out) ) ?;
289
+ run_tests ( opts, tests, |x| on_test_event ( & x, & mut st, & mut * out) ) ?;
284
290
285
291
assert ! ( st. current_test_count( ) == st. total) ;
286
292
0 commit comments