mod write_expr_value {
use googletest::prelude::*;
macro_rules! write_expr_value {
($expr_str:expr, $expr: expr $(,)?) => {{
let mut s = String::new();
::googletest::fmt::internal::__googletest__write_expr_value!(s, $expr_str, $expr);
s
}};
}
#[test]
fn test_with_debug_value_references() -> googletest::Result<()> {
#[derive(Debug)]
struct Foo;
let mut val = Foo;
verify_that!(write_expr_value!("val", val), eq("\n val = Foo,"))?;
verify_that!(write_expr_value!("val", &val), eq("\n val = Foo,"))?;
verify_that!(write_expr_value!("val", &&val), eq("\n val = Foo,"))?;
verify_that!(write_expr_value!("val", &mut val), eq("\n val = Foo,"))?;
verify_that!(write_expr_value!("val", &mut &mut val), eq("\n val = Foo,"))?;
Ok(())
}
#[test]
fn test_with_non_debug_value_references() -> googletest::Result<()> {
struct Foo;
let mut val = Foo;
verify_that!(write_expr_value!("val", val), eq("\n val does not implement Debug,"))?;
verify_that!(write_expr_value!("val", &val), eq("\n val does not implement Debug,"))?;
verify_that!(write_expr_value!("val", &&val), eq("\n val does not implement Debug,"))?;
verify_that!(write_expr_value!("val", &mut val), eq("\n val does not implement Debug,"))?;
verify_that!(
write_expr_value!("val", &mut &mut val),
eq("\n val does not implement Debug,")
)?;
Ok(())
}
}