Mutation变异检查crashed问题记录

举报
Amrf 发表于 2020/11/06 15:18:44 2020/11/06
【摘要】 mull工程 - https://github.com/mull-project/mull问题现象:使用mull对gtest进行用例变异有效性检查的时候,跑origin test过程中,首先是,报了一堆gtest和mockcpp的符号找不到的waring,(JIT engine could not resolve the following symbols)然后是,跑origin test报...

mull工程 - https://github.com/mull-project/mull


问题现象:


使用mull对gtest进行用例变异有效性检查的时候,跑origin test过程中,

首先是,报了一堆gtest和mockcpp的符号找不到的waring,(JIT engine could not resolve the following symbols)

然后是,跑origin test报一堆status:crashed;


问题分析过程:


由于刚升级gtest到了最新的版本,而最新的版本里使用了c++11,而1.8.1之前的版本不用c++11就可以编译;(其实后来发现没升级的那个版本也有同样的问题)

-->所以分析的时候也就因为这个关注点走偏了,所以花了很多功夫看mull中的TestFramework为googletest相关的内容;


测试背景原来ubuntu16/mull0.7-llvm8,前面使用的是clang5编译的gtest和用例;

后来无意中切换gtest编译选项为 CXX:=clang++-8 -fembed-bitcode,crashed和符号的问题消失了;


看了下面这个https://stackoverflow.com/questions/56567351/mutation-testing-fails-with-mull,


得出的判断是当用例的llvm版本和mull的版本不一致时候,有概率会出现crash,(gtest升级高版本使用了c++11特性,所以导致的更高的crash概率,这个结论存疑)


进一步的修改gtest编译选项 CXX:=clang++-5.0 -fembed-bitcode,发现mull检测依旧没有出现crashed问题,llvm版本虽然不同,但是只有有一些找不到debug符号的问题;



过程反思:


问题定位的基础立足点要早好,这就好像分组实验里的控制变量法,否则问题的焦点就容易找偏了,但是我的看法是,弯路也有弯路的价值,只要成本你还能接受;


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。