]> git.proxmox.com Git - rustc.git/blobdiff - vendor/tester/src/formatters/pretty.rs
Merge tag 'debian/1.52.1+dfsg1-1_exp2' into proxmox/buster
[rustc.git] / vendor / tester / src / formatters / pretty.rs
index 2fdbc63d51330eb7f464d0849ee20d83566bc717..6fa369298416b575d7febc1c6bfe5e882a4a8e1a 100644 (file)
@@ -1,16 +1,13 @@
-use std::{
-    io,
-    io::prelude::Write,
-};
+use std::{io, io::prelude::Write};
 
+use super::OutputFormatter;
 use crate::{
-    types::TestDesc,
-    time,
-    test_result::TestResult,
-    console::{ConsoleTestState, OutputLocation},
     bench::fmt_bench_samples,
+    console::{ConsoleTestState, OutputLocation},
+    test_result::TestResult,
+    time,
+    types::TestDesc,
 };
-use super::OutputFormatter;
 
 pub(crate) struct PrettyFormatter<T> {
     out: OutputLocation<T>,
@@ -31,13 +28,7 @@ impl<T: Write> PrettyFormatter<T> {
         is_multithreaded: bool,
         time_options: Option<time::TestTimeOptions>,
     ) -> Self {
-        PrettyFormatter {
-            out,
-            use_color,
-            max_name_len,
-            is_multithreaded,
-            time_options
-        }
+        PrettyFormatter { out, use_color, max_name_len, is_multithreaded, time_options }
     }
 
     #[cfg(test)]
@@ -105,7 +96,7 @@ impl<T: Write> PrettyFormatter<T> {
     fn write_time(
         &mut self,
         desc: &TestDesc,
-        exec_time: Option<&time::TestExecTime>
+        exec_time: Option<&time::TestExecTime>,
     ) -> io::Result<()> {
         if let (Some(opts), Some(time)) = (self.time_options, exec_time) {
             let time_str = format!(" <{}>", time);
@@ -124,7 +115,7 @@ impl<T: Write> PrettyFormatter<T> {
 
             match color {
                 Some(color) => self.write_pretty(&time_str, color)?,
-                None => self.write_plain(&time_str)?
+                None => self.write_plain(&time_str)?,
             }
         }
 
@@ -134,7 +125,7 @@ impl<T: Write> PrettyFormatter<T> {
     fn write_results(
         &mut self,
         inputs: &Vec<(TestDesc, Vec<u8>)>,
-        results_type: &str
+        results_type: &str,
     ) -> io::Result<()> {
         let results_out_str = format!("\n{}:\n", results_type);
 
@@ -148,7 +139,7 @@ impl<T: Write> PrettyFormatter<T> {
                 stdouts.push_str(&format!("---- {} stdout ----\n", f.name));
                 let output = String::from_utf8_lossy(stdout);
                 stdouts.push_str(&output);
-                stdouts.push_str("\n");
+                stdouts.push('\n');
             }
         }
         if !stdouts.is_empty() {
@@ -237,7 +228,8 @@ impl<T: Write> OutputFormatter for PrettyFormatter<T> {
 
         self.write_plain(&format!(
             "test {} has been running for over {} seconds\n",
-            desc.name, time::TEST_WARN_TIMEOUT_S
+            desc.name,
+            time::TEST_WARN_TIMEOUT_S
         ))
     }
 
@@ -267,7 +259,7 @@ impl<T: Write> OutputFormatter for PrettyFormatter<T> {
 
         let s = if state.allowed_fail > 0 {
             format!(
-                ". {} passed; {} failed ({} allowed); {} ignored; {} measured; {} filtered out\n\n",
+                ". {} passed; {} failed ({} allowed); {} ignored; {} measured; {} filtered out",
                 state.passed,
                 state.failed + state.allowed_fail,
                 state.allowed_fail,
@@ -277,13 +269,20 @@ impl<T: Write> OutputFormatter for PrettyFormatter<T> {
             )
         } else {
             format!(
-                ". {} passed; {} failed; {} ignored; {} measured; {} filtered out\n\n",
+                ". {} passed; {} failed; {} ignored; {} measured; {} filtered out",
                 state.passed, state.failed, state.ignored, state.measured, state.filtered_out
             )
         };
 
         self.write_plain(&s)?;
 
+        if let Some(ref exec_time) = state.exec_time {
+            let time_str = format!("; finished in {}", exec_time);
+            self.write_plain(&time_str)?;
+        }
+
+        self.write_plain("\n\n")?;
+
         Ok(success)
     }
 }