]> git.lizzy.rs Git - rust.git/blob - src/libtest/formatters/mod.rs
Auto merge of #64925 - ehuss:document-json, r=Mark-Simulacrum
[rust.git] / src / libtest / formatters / mod.rs
1 use super::*;
2
3 mod pretty;
4 mod json;
5 mod terse;
6
7 pub(crate) use self::pretty::PrettyFormatter;
8 pub(crate) use self::json::JsonFormatter;
9 pub(crate) use self::terse::TerseFormatter;
10
11 pub(crate) trait OutputFormatter {
12     fn write_run_start(&mut self, test_count: usize) -> io::Result<()>;
13     fn write_test_start(&mut self, desc: &TestDesc) -> io::Result<()>;
14     fn write_timeout(&mut self, desc: &TestDesc) -> io::Result<()>;
15     fn write_result(
16         &mut self,
17         desc: &TestDesc,
18         result: &TestResult,
19         exec_time: Option<&TestExecTime>,
20         stdout: &[u8],
21         state: &ConsoleTestState,
22     ) -> io::Result<()>;
23     fn write_run_finish(&mut self, state: &ConsoleTestState) -> io::Result<bool>;
24 }
25
26 pub(crate) fn write_stderr_delimiter(test_output: &mut Vec<u8>, test_name: &TestName) {
27     match test_output.last() {
28         Some(b'\n') => (),
29         Some(_) => test_output.push(b'\n'),
30         None => (),
31     }
32     write!(test_output, "---- {} stderr ----\n", test_name).unwrap();
33 }