跳至主要内容

評估程式碼覆蓋率

您正在進行一項更改。您希望評估新程式碼的覆蓋率。

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