From 4dfcdb1a82b318c1fd018718278caea587193a25 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 6 Jan 2021 00:32:01 +0000 Subject: [PATCH] ensure_eq, fix Signed-off-by: Ian Jackson --- src/utils.rs | 17 +++++++++++++++++ wdriver.rs | 1 + wdriver/wdt-simple.rs | 4 ++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/utils.rs b/src/utils.rs index 69a651bc..378d843a 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -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() } diff --git a/wdriver.rs b/wdriver.rs index 2ba265b2..11ca44c4 100644 --- a/wdriver.rs +++ b/wdriver.rs @@ -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}; diff --git a/wdriver/wdt-simple.rs b/wdriver/wdt-simple.rs index 44c8ee82..cba2c188 100644 --- a/wdriver/wdt-simple.rs +++ b/wdriver/wdt-simple.rs @@ -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()?; } -- 2.30.2