From aaf379c566d19457a9c0a6ebd1c09c72be72338e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 10 Jul 2021 19:19:23 +0100 Subject: [PATCH] wdt: Do not tolerate JS errors Signed-off-by: Ian Jackson --- wdriver/wdriver.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/wdriver/wdriver.rs b/wdriver/wdriver.rs index 09618868..16c9f47e 100644 --- a/wdriver/wdriver.rs +++ b/wdriver/wdriver.rs @@ -199,6 +199,12 @@ impl JsLogfileImp { /// current window must be this one, named `name` as we passed to open #[throws(AE)] pub fn fetch(&mut self, driver: &T4d) { + self.fetchx(driver, false)?; + } + + /// current window must be this one, named `name` as we passed to open + #[throws(AE)] + pub fn fetchx(&mut self, driver: &T4d, tolerate_errors: bool) { self.counter += 1; let head = format!( "-------------------- JS {} {} --------------------", @@ -206,6 +212,8 @@ impl JsLogfileImp { ); writeln!(&mut self.fh, "{}", &head)?; + let mut intolerable = vec![]; + (||{ let got = driver.execute_script(r#" var returning = window.console.saved; @@ -230,12 +238,22 @@ impl JsLogfileImp { .context("parse log entry")?; writeln!(&mut self.fh, "{:?}", &ent)?; + + if ! tolerate_errors { + match ent.0.as_str() { + "log" => { }, + _ => intolerable.push(ent) + } + } } Ok::<_,AE>(()) })() .with_context(|| self.name.clone()) .context("fetch JS log messages")?; + assert!{ intolerable.is_empty(), + "Intolerable JS error(s) {:#?}", intolerable }; + info!("{}", head); } } -- 2.30.2