C ++ / gcov / lcov-如何从coverage数据中排除除一个目录外的所有目录

时间:2019-02-20 23:19:22

标签: bash shell glob gcov lcov

我正在使用gcov / lcov为我的C ++项目创建代码覆盖率报告,并且尝试从覆盖率报告中删除除某个目录中的文件以外的所有文件(即,我不想显示各种文件夹中的不同依赖项)在报告中)。

但是,我想自动而不是手动执行此操作。我尝试了以下方法:

lcov -r coverage.total '!(<path>)' -o coverage.info

但是lcov随即返回Deleted 0 files。我还尝试了!(<path>)'[^path]*',但这些方法略有变化,但似乎无济于事。我可以手动删除不需要的文件夹,例如以下方法可以工作:
lcov -r coverage.total '/usr/libs/*' '/usr/mylibs/*' -o coverage.info

所以我的问题是,如何lcov排除除特定目录之外的所有目录?

P.S。

  • 我愿意接受变通方法(例如,如果可以使用bash脚本完成此操作)
  • 我正在使用bash + CMake + gcov + lcov

P.S。

这不是this question的重复项。我问的是一种自动方法,仅将文件包括在报告中的特定目录中。 (例如当前目录)我知道--remove参数,但这不是自动化的解决方案。

非常感谢您的帮助!

0 个答案:

没有答案