指定根目录时gcovr无限循环

时间:2014-05-21 05:59:59

标签: python unit-testing gcc code-coverage gcovr

背景
我使用python工具gcovr为我的一些c项目生成覆盖数据。我能够毫无问题地获得覆盖数据,但由于工具查找源文件的问题,我无法查看哪些代码行被覆盖。

检查gcovr生成的XML数据后,我意识到该工具正在查找错误的目录以获取覆盖率信息。在这种情况下,我为gcovr的文档指定了源文件的根目录。

# gcovr ... --object-directory=/some/path -r /some/path  

但是,当我为源文件指定目录时,gcovr进入无限循环。

问题
导致此无限循环的原因是什么,我需要做什么来指定源文件所在的目录?

如果需要任何额外信息来解决这个问题,我愿意尽我所能。

2 个答案:

答案 0 :(得分:2)

gcovr 3.1中存在记录的错误,处理“-r”(或“--root =”)选项。该错误导致gcovr从“/”级别搜索gcda文件,这需要很长时间。修复是在第1828行用方括号括起参数“options.root”,即get_datafiles([options.root])。有关更多信息,请参阅https://github.com/gcovr/gcovr/pull/27

为了让gcovr 3.1在目录树中的源高于对象(和gcno)目录时正确设置源链接,我必须将修复应用于问题27(root无限循环),42(修复gcov不正确的相对路径)和49(gcovr无法找到gcov 4.8.2的源文件)。这是我的源区域的视觉效果:

的src /富/ *。立方厘米

的src /富/ .OBJ /变体/ *。Ø

答案 1 :(得分:0)

此问题已在gcovr 3.2中解决