chiark / gitweb /
ensure_eq, fix
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 6 Jan 2021 00:32:01 +0000 (00:32 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 6 Jan 2021 00:32:01 +0000 (00:32 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/utils.rs
wdriver.rs
wdriver/wdt-simple.rs

index 69a651bc1cca4ac5f8b97541046781f2e13d3f10..378d843ad51e8691beaf62ec5d738f5e97eb97bc 100644 (file)
@@ -11,6 +11,23 @@ use std::os::unix::io::IntoRawFd;
 use fehler::{throw, throws};
 use libc;
 
+#[macro_export]
+macro_rules! ensure_eq {
+  ($v1:expr, $v2:expr) => {
+    ({
+      let v1 = $v1;
+      let v2 = $v2;
+      if &v1 != &v2 {
+        Err(anyhow!("ensure_eq failed: {} != {}: {:?} != {:?}",
+                    stringify!($v1), stringify!($v2),
+                    &v1, &v2))
+      } else {
+        Ok(())
+      }
+    }?)
+  }
+}
+
 pub trait OrdExt: Ord + Sized + Clone {
   fn update_max(&mut self, new: &Self) {
     if *new > *self { *self = new.clone() }
index 2ba265b2277a1ad6fb6eed0cb3265b9bfef8ebc6..11ca44c4893b3700028014f1340a8a09c24e2b5b 100644 (file)
@@ -43,6 +43,7 @@ pub use std::process::{Command, Stdio};
 pub use std::thread::{self, sleep};
 pub use std::time;
 
+pub use otter::ensure_eq;
 pub use otter::commands::{MgmtCommand, MgmtResponse};
 pub use otter::commands::{MgmtGameInstruction, MgmtGameResponse};
 pub use otter::commands::{MgmtGameUpdateMode};
index 44c8ee82b5f6abac5f34a99fa0d5f7e178e2dc1e..cba2c1883e353ede97088b2e848e7394f5faf591 100644 (file)
@@ -57,9 +57,9 @@ fn main(){
         .perform()
         .always_context("rotate")?;
 
-      let transform = format!("rotate(-90");
+      let transform = format!("rotate(-90)");
       let pd = w.find_element(By::Id("piece4.1"))?;
-      ensure!(pd.get_attribute("transform")? == Some(transform));
+      ensure_eq!(pd.get_attribute("transform")?, Some(transform));
       w.synch()?;
     }