评估代码覆盖率
您正在进行更改。您想评估新代码的代码覆盖率。
V8 提供了两种工具来执行此操作:本地(在您的机器上)和构建基础设施支持。
本地 #
相对于 v8 仓库的根目录,使用 ./tools/gcov.sh
(在 Linux 上测试)。这使用 GNU 的代码覆盖率工具和一些脚本生成 HTML 报告,您可以在其中深入了解每个目录、文件以及代码行的覆盖率信息。
该脚本使用 gcov
设置在单独的 out
目录下构建 V8。我们使用单独的目录来避免覆盖您的正常构建设置。这个单独的目录称为 cov
- 它是在仓库根目录下立即创建的。gcov.sh
然后运行测试套件并生成报告。脚本完成后会提供报告的路径。
如果您的更改包含特定于体系结构的组件,您可以累积收集来自特定于体系结构的运行的覆盖率。
./tools/gcov.sh x64 arm
这将为每个体系结构就地重建,覆盖来自先前运行的二进制文件,但保留并累积覆盖率结果。
默认情况下,该脚本从 Release
运行中收集。如果您想要 Debug
,您可以指定。
BUILD_TYPE=Debug ./tools/gcov.sh x64 arm arm64
在没有选项的情况下运行脚本将提供选项摘要。
代码覆盖率机器人 #
对于每个已着陆的更改,我们都会运行 x64 覆盖率分析 - 请参阅 覆盖率机器人。我们不会为其他体系结构运行覆盖率机器人。
要获取特定运行的报告,您需要列出构建步骤,找到“gsutil coverage report”(在最后),然后打开其下的“report”。