From cf05284a0cdfb6bff62ecb60baf16bec9853abe4 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 26 Aug 2024 13:40:37 +0200 Subject: [PATCH] Small improvements to the test runner (#4838) --- tests/src/args.rs | 3 +++ tests/src/logger.rs | 6 ++++-- tests/src/run.rs | 7 ++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/src/args.rs b/tests/src/args.rs index ca0ee73c2..b3441e90d 100644 --- a/tests/src/args.rs +++ b/tests/src/args.rs @@ -46,6 +46,9 @@ pub struct CliArguments { /// Displays the syntax tree. #[arg(long)] pub syntax: bool, + /// Displays only one line per test, hiding details about failures. + #[arg(short, long)] + pub compact: bool, /// Prevents the terminal from being cleared of test names. #[arg(short, long)] pub verbose: bool, diff --git a/tests/src/logger.rs b/tests/src/logger.rs index b6b44848c..a8ba43c6e 100644 --- a/tests/src/logger.rs +++ b/tests/src/logger.rs @@ -70,8 +70,10 @@ impl<'a> Logger<'a> { self.print(move |out| { if !result.errors.is_empty() { writeln!(out, "❌ {test}")?; - for line in result.errors.lines() { - writeln!(out, " {line}")?; + if !crate::ARGS.compact { + for line in result.errors.lines() { + writeln!(out, " {line}")?; + } } } else if crate::ARGS.verbose || !result.infos.is_empty() { writeln!(out, "✅ {test}")?; diff --git a/tests/src/run.rs b/tests/src/run.rs index c65f5e389..f356f0d0e 100644 --- a/tests/src/run.rs +++ b/tests/src/run.rs @@ -157,6 +157,10 @@ impl<'a> Runner<'a> { }; let skippable = match document.pages.as_slice() { + [] => { + log!(self, "document has zero pages"); + return; + } [page] => skippable(page), _ => false, }; @@ -231,7 +235,7 @@ impl<'a> Runner<'a> { std::fs::write(&ref_path, &ref_data).unwrap(); log!( into: self.result.infos, - "Updated reference image ({ref_path}, {})", + "updated reference image ({ref_path}, {})", FileSize(ref_data.len()), ); } @@ -414,6 +418,7 @@ fn render_links(canvas: &mut sk::Pixmap, ts: sk::Transform, frame: &Frame) { fn skippable(page: &Page) -> bool { page.frame.width().approx_eq(Abs::pt(120.0)) && page.frame.height().approx_eq(Abs::pt(20.0)) + && page.fill.is_auto() && skippable_frame(&page.frame) }