评估代码覆盖率

您正在进行更改。您想评估新代码的代码覆盖率。

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”。