【发布时间】:2019-01-29 09:36:24
【问题描述】:
我有一个带有引用参数的函数:
#include <iostream>
class A { static void TestA(const int &y) };
void A::TestA(const int &y) { std::cout << y; }
int main()
{
A::TestA(2);
return 0;
}
在我使用 google 单元测试的 (lcov) 代码覆盖率中,它说缺少一个带有 TestA() 函数的分支,并且符号列表添加了一个 stack_chk_fail 符号。如果我将函数参数更改为非引用,则覆盖率为 100%。
我正在使用 g++ 编译器。
我错过了什么吗?
谢谢
【问题讨论】:
-
你用的是什么编译器?它的哪个版本?您在构建时使用什么标志?什么优化级别?你有没有检查过生成的代码,看看它到底做了什么?
-
你的意思是当你通过你的测试覆盖工具运行这个短程序时,它会标记一些东西?如果没有,为什么我们看到的是这个程序而不是正确的minimal reproducible example?
-
什么是“我的代码覆盖率”?不清楚你在问什么,你已经在问题中说明你缺少什么
-
好吧好吧……我的第一条评论是错误的。我可以在我的系统上重现它。
-
@StoryTeller 我已经更新了我的代码,并添加了我的测试细节。
标签: c++ reference code-coverage