Fix test macros expansion safety
Most if not all test macros are evaluating both expressions twice in case of failure, which at best can lead to invalid logs, and at worst can lead to incorrect calls, especially when invoked as ASSERT_TRUE( cb->somethingBlocking() )