coverity - Coverity 找到了很多我的构建没有使用的 .h 文件
问题描述
在我的 travis 构建中,我让 travis 下载我的文件,让它运行覆盖扫描,它输出我的项目包含的所有 71 个源文件的 SCM 数据,但随后似乎找到了虚拟机包含的所有 .h 文件,并扼杀了它们文件总数的 15% 以上。隐蔽工具的相关输出行是:
71 C/C++ compilation units (100%) are ready for analysis
Extracting SCM data for 705 files...
有人知道我做错了什么吗?travis.yml 可以在https://github.com/wxMaxima-developers/wxmaxima/blob/a32e56eff71e256d2c5e7f027a6190324ab9dffb/.travis.yml阅读
解决方案
找到它:https ://scan.coverity.com/scripts/travisci_build_coverity_scan.sh包含以下行,该行尝试查找包含到项目的所有源文件,并最终在 travis 上找到整个虚拟机中的所有源文件:
cov-import-scm --dir $RESULTS_DIR --scm git --log $RESULTS_DIR/scm_log.txt 2>&1
使用脚本的本地副本并删除此行可以解决问题。此外,如果使用 ccache,则需要以下行来使覆盖收集所有不需要重新构建的文件的数据:
export CCACHE_DISABLE=1
线
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
除了coverity 主页上的说明外,不得包含“https://”......并且如果 CXXFLAGS 不包含
-ansi
Coverity 不会收集任何数据。通过所有这些更改,travis 上的覆盖构建可以正常工作,但是 travis 脚本中的另一个错误使覆盖构建返回“-1”作为退出状态:服务器给出了意外的回复“构建正确上传”。
推荐阅读
- google-sheets - 在 Google 表格中使用 BigQuery,如何授予其他用户按“刷新”的权限?
- scala - 由于缺少 Ivy 模块,无法创建 IntelliJ Scala 项目
- javascript - 如何判断 Nuxt.js 组件中使用的布局是什么?
- python - 如何将多列及其标题转换为行
- python - 如何分两步使用 TfidfVectorizer,增加分析文本的数量?
- python - `scipy.stats.binom` 方法中的精度错误
- css - 动态设置 html 代码中的选择器样式
- groovy - 在 jbehave 中是否可以使用参数化表格参数?
- iis - Socket.io + IIS 10 + 反向代理设置
- vba - 使用更新的参数集无法从 VB 关闭或刷新访问报表