coverity - 覆盖率。配置为忽略源代码的某些部分
问题描述
寻找一种方法来配置覆盖以忽略某些代码部分。例如,假设我有带有func1
and的源代码func2
。我不想覆盖分析func1
,但我仍然希望它分析func2
。有没有办法做到这一点?是否有我可以添加的特殊内联注释?
int func1(int* value)
{
*value++;
return 0;
}
int func2(int* value)
{
*value--;
return 0;
}
解决方案
__COVERITY__
您可以使用由 Coverity 编译器定义的预处理器宏来排除一段 C/C++ 代码。例如,要排除func1
但包含func2
在分析中,请执行以下操作:
#ifndef __COVERITY__ // <-- added
int func1(int* value)
{
*value++;
return 0;
}
#endif // <-- added
int func2(int* value)
{
*value--;
return 0;
}
有关的:
- Synopsys 社区支持问题“忽略特定功能”,其中还描述了使用
__COVERITY__
. - Synopsys 支持文章“如何从分析中排除特定路径或文件”,其中描述了
skip_file
可用于排除整个文件的指令。 - 所以问题“Coverity 为使用 'cov-build' 的构建定义了哪些预处理器符号?” ,事实证明这是一个与此问题类似的问题,尽管从标题中并不清楚(因为它引用了一个假定的解决方案而不是描述问题),因此我不认为它是重复的。
推荐阅读
- javascript - 使用 lodash/fp 删除两个数组中的重复日期
- node.js - 30 秒后 nginx websocket 连接超时
- matlab - 多维数组中的FFT原理
- javascript - req.body 无法解析来自名称属性数组的输入
- curl - 需要用php和curl登录ipb板
- javascript - 从 js cssText 字符串中搜索并删除 css 属性
- python - 烧瓶缓存-当redis服务关闭时处理异常
- xcode - 由于一个信号库,Xcode 上的构建失败
- python - 用图像填充 Tkinter 画布多边形
- vuejs2 - Vue:更改 webpack 应用程序构建路径以在网站的子目录中使用