Google测试 - 测试仅在模式发布中失败并使用ASSERT _ *

时间:2018-03-02 10:28:19

标签: c++ debugging release googletest assertions

我在我的项目中使用Google Test,而且我习惯使用ASSERT宏(ASSERT_EQ,ASSERT_STREQ等)而不是EXPECT来在第一次失败时停止我的测试。

我通常在调试模式下测试我的项目,一切都找到了,Valgrind没有检测到任何问题(没有内存泄漏,没有错误访问)。

最近,我在发布模式下测试了我的代码(标志-O3用于优化),并且我的一些测试仍然失败。但是,只要我用EXPECT_ *替换所有ASSERT_ *(这应该是非终止断言),我的所有测试都会完美传递。

我的问题是:

  • gtest的ASSERT_ *宏是否适合高级代码优化?或者它是100%确定问题出在我的代码中吗?
  • 如果问题出在我的代码中,有什么可以让EXPECT_ *宏通过而不是ASSERT _ *?

对不起,这篇文章没有可复制的代码,但需要复制数十行的十几个文件。

0 个答案:

没有答案