]>
Commit | Line | Data |
---|---|---|
dfeec247 | 1 | use std::{io, io::prelude::Write}; |
e74abb32 XL |
2 | |
3 | use crate::{ | |
353b0b11 | 4 | console::{ConsoleTestDiscoveryState, ConsoleTestState}, |
e74abb32 | 5 | test_result::TestResult, |
dfeec247 XL |
6 | time, |
7 | types::{TestDesc, TestName}, | |
e74abb32 | 8 | }; |
2c00a5a8 | 9 | |
2c00a5a8 | 10 | mod json; |
17df50a5 | 11 | mod junit; |
dfeec247 | 12 | mod pretty; |
2c00a5a8 XL |
13 | mod terse; |
14 | ||
2c00a5a8 | 15 | pub(crate) use self::json::JsonFormatter; |
17df50a5 | 16 | pub(crate) use self::junit::JunitFormatter; |
dfeec247 | 17 | pub(crate) use self::pretty::PrettyFormatter; |
2c00a5a8 XL |
18 | pub(crate) use self::terse::TerseFormatter; |
19 | ||
20 | pub(crate) trait OutputFormatter { | |
353b0b11 FG |
21 | fn write_discovery_start(&mut self) -> io::Result<()>; |
22 | fn write_test_discovered(&mut self, desc: &TestDesc, test_type: &str) -> io::Result<()>; | |
23 | fn write_discovery_finish(&mut self, state: &ConsoleTestDiscoveryState) -> io::Result<()>; | |
24 | ||
c295e0f8 | 25 | fn write_run_start(&mut self, test_count: usize, shuffle_seed: Option<u64>) -> io::Result<()>; |
2c00a5a8 XL |
26 | fn write_test_start(&mut self, desc: &TestDesc) -> io::Result<()>; |
27 | fn write_timeout(&mut self, desc: &TestDesc) -> io::Result<()>; | |
28 | fn write_result( | |
29 | &mut self, | |
30 | desc: &TestDesc, | |
31 | result: &TestResult, | |
e74abb32 | 32 | exec_time: Option<&time::TestExecTime>, |
2c00a5a8 | 33 | stdout: &[u8], |
e1599b0c | 34 | state: &ConsoleTestState, |
2c00a5a8 XL |
35 | ) -> io::Result<()>; |
36 | fn write_run_finish(&mut self, state: &ConsoleTestState) -> io::Result<bool>; | |
37 | } | |
e74abb32 XL |
38 | |
39 | pub(crate) fn write_stderr_delimiter(test_output: &mut Vec<u8>, test_name: &TestName) { | |
40 | match test_output.last() { | |
41 | Some(b'\n') => (), | |
42 | Some(_) => test_output.push(b'\n'), | |
43 | None => (), | |
44 | } | |
9c376795 | 45 | writeln!(test_output, "---- {test_name} stderr ----").unwrap(); |
e74abb32 | 46 | } |