Address Sanitizer - 抑制 gtest
Posted
技术标签:
【中文标题】Address Sanitizer - 抑制 gtest【英文标题】:Address Sanitizer - suppress for gtest 【发布时间】:2022-01-23 13:34:58 【问题描述】:是否可以抑制单元测试功能?我的项目中有地址消毒剂,我收到了有关堆栈缓冲区溢出信息的报告,我想抑制这些信息。
它已经是一个有类似问题的***页面here,但是这个问题的解决方案不是我想要的(我不想禁用测试)。
例如
TEST_F(classA, testA)
some_struct a;
a.p = 100;
ASSERT_FALSE(&foo());
我不想在此测试中使用地址清理程序。应该运行测试,但我不希望有任何地址清理报告
【问题讨论】:
通常测试运行器会运行多个使用不同配置构建的测试,例如 test+coverage、test+address、test+ub、test+thread。在为 address-sanitizer 构建时禁用一个测试用例是一个很好的解决方案,禁用的测试用例将在其他构建配置中运行。 【参考方案1】:我收到有关堆栈缓冲区溢出信息的报告,我想抑制这些信息。
如果您只想忽略错误,一种解决方案是根本不使用地址清理程序进行测试。
我不想在这个测试中使用地址清理器。
如果您想禁止此特定测试用例的消毒剂报告,同时将其他测试用例的消毒剂保留在此源文件中,使用disable_sanitizer_instrumentation 属性可能会解决问题。
【讨论】:
以上是关于Address Sanitizer - 抑制 gtest的主要内容,如果未能解决你的问题,请参考以下文章
Advanced Debugging and the Address Sanitizer
Address Sanitizer 调用了 OOM-killer
Android jni 集成 Address Sanitizer