我有一个使用 gcc 工具链版本 10.2.0(Rev6,由 MSYS2 项目构建)构建的项目,并使用
gcov
: 分析测试覆盖率
C:\test>gcov.exe "C:\test\Appl.c.gcda"
File 'C:/test/Appl.c'
Lines executed:27.54% of 207
Creating 'Appl.c.gcov'
C:\test>
但是,升级到 gcc 版本 12.2.0(Rev5,由 MSYS2 项目构建)后,输出中会重复行摘要:
C:\test>gcov.exe "C:\test\Appl.c.gcda"
File 'C:/test/Appl.c'
Lines executed:27.54% of 207
Creating 'Appl.c.gcov'
Lines executed:27.54% of 207
C:\test>
我有一个小的 shell 脚本,它使用此输出来打印覆盖范围不足的文件,但这些文件现在已损坏。我应该使其适应新的输出格式,还是它是一个错误,我应该跳过有错误的版本,直到修复出现?
在新版本中,
gcov
输出的最后一行总结了在给定编译单元中生成代码的所有文件的行覆盖率。例如,当 .c 文件包含包含内联函数的头文件时,就会发生这种情况:
C:\test>gcov.exe "C:\test\Appl.c.gcda"
File 'C:/test/Appl.c'
Lines executed:26.92% of 130
Creating 'Appl.c.gcov'
File 'C:/test/Appl.h'
Lines executed:0.00% of 8
Creating 'Appl.h.gcov'
Lines executed:25.36% of 138
C:\test>