chiark / gitweb /
show completions
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Dec 2020 14:47:43 +0000 (14:47 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Dec 2020 14:47:43 +0000 (14:47 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
wdriver.rs
wdriver/wdt-simple.rs

index 9d8e2ecd1c4992313c3a89e410d72fce97e2dfd9..6287e9c0be882f8234715eab17d7ecb0b9040baa 100644 (file)
@@ -25,6 +25,20 @@ pub use std::time;
 pub const MS : time::Duration = time::Duration::from_millis(1);
 pub type AE = anyhow::Error;
 
+pub trait AlwaysContext<T,E> {
+  fn always_context(self, msg: &'static str) -> anyhow::Result<T>;
+}
+
+impl<T,E> AlwaysContext<T,E> for Result<T,E>
+where Self: anyhow::Context<T,E>
+{
+  fn always_context(self, msg: &'static str) -> anyhow::Result<T> {
+    let x = self.context(msg);
+    if x.is_ok() { eprintln!("completed {}.", msg) };
+    x
+  }
+}
+
 #[derive(Debug,Clone)]
 #[derive(StructOpt)]
 struct Opts {
@@ -375,13 +389,13 @@ pub fn setup() -> Setup {
   let cln = cleanup_notify::Handle::new()?;
   let (tmp, abstmp) = prepare_tmpdir(&opts, &current_exe)?;
 
-  prepare_xserver(&cln, &abstmp).context("setup X server")?;
-  prepare_gameserver().context("setup game server")?;
+  prepare_xserver(&cln, &abstmp).always_context("setup X server")?;
+  prepare_gameserver().always_context("setup game server")?;
 
   let final_hook = FinalInfoCollection;
 
-  prepare_geckodriver(&cln).context("setup webdriver serverr")?;
-  prepare_thirtyfour().context("prepare web session")?;
+  prepare_geckodriver(&cln).always_context("setup webdriver serverr")?;
+  prepare_thirtyfour().always_context("prepare web session")?;
 
   Setup {
     tmp,
index 8411ebf1b9aae4ca43e5d7cff760aebbed7ee6f1..c2692c9c50602cb12bbbf230061f9e52afd6c404 100644 (file)
@@ -6,7 +6,7 @@ use otter_webdriver_tests::*;
 
 #[throws(AE)]
 fn main(){
-  let s = setup()?;
+  let s = setup().always_context("setup")?;
 
   println!("hi! {:#?}", &s);