From 68b02862ee43538a26ddbd80f84fef5cd6f3b82f Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 15 Feb 2021 00:35:57 +0000 Subject: [PATCH] wdt: Screenshot only some of the time Saves ~50% runtime! Signed-off-by: Ian Jackson --- wdriver.rs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/wdriver.rs b/wdriver.rs index 7179cc28..7e39d808 100644 --- a/wdriver.rs +++ b/wdriver.rs @@ -724,9 +724,9 @@ fn prepare_thirtyfour() -> (T4d, ScreenShotCount, Vec) { const FRONT: &str = "front"; let window_names = vec![FRONT.into()]; driver.set_window_name(FRONT).context("set initial window name")?; - screenshot(&mut driver, &mut count, "startup")?; + screenshot(&mut driver, &mut count, "startup", log::Level::Trace)?; driver.get(URL).context("navigate to front page")?; - screenshot(&mut driver, &mut count, "front")?; + screenshot(&mut driver, &mut count, "front", log::Level::Trace)?; fetch_log(&driver, "front")?; @@ -1055,19 +1055,24 @@ impl<'g> Drop for WindowGuard<'g> { } pub trait Screenshottable { - fn screenshot(&mut self, slug: &str) -> Result<(),AE>; + fn screenshot(&mut self, slug: &str, level: log::Level) -> Result<(),AE>; } impl<'g> Screenshottable for WindowGuard<'g> { #[throws(AE)] - fn screenshot(&mut self, slug: &str) { + fn screenshot(&mut self, slug: &str, level: log::Level) { screenshot(&self.su.driver, &mut self.su.screenshot_count, - &format!("{}-{}", &self.w.name, slug))? + &format!("{}-{}", &self.w.name, slug), level)? } } #[throws(AE)] -fn screenshot(driver: &T4d, count: &mut ScreenShotCount, slug: &str) { +fn screenshot(driver: &T4d, count: &mut ScreenShotCount, slug: &str, + level: log::Level) { + if !log_enabled!(level) { + debug!("skipping screenshot {}", slug); + return + } let path = format!("{:03}{}.png", count, slug); *count += 1; driver.screenshot(&path::PathBuf::from(&path)) @@ -1256,7 +1261,7 @@ impl Drop for Setup { name: name.clone(), instance: TABLE.parse().context(TABLE)?, }; - self.w(&w)?.screenshot("final") + self.w(&w)?.screenshot("final", log::Level::Info) .context(name) .context("final screenshot") .just_warn(); @@ -1363,7 +1368,7 @@ impl Setup { let w = su.new_window(instance, nick)?; let url = subst.subst("@url@/@pl@?@token@")?; su.w(&w)?.get(url)?; - su.w(&w)?.screenshot("initial")?; + su.w(&w)?.screenshot("initial", log::Level::Trace)?; w } StaticUser::iter().map( -- 2.30.2