Оценка покрытия кода
Вы работаете над изменением. Вы хотите оценить покрытие кода для вашего нового кода.
V8 предоставляет два инструмента для этого: локально, на вашем компьютере; и поддержку инфраструктуры сборки.
Локально
В относительном пути от корня репозитория V8 используйте ./tools/gcov.sh
(протестировано на Linux). Этот инструмент использует средства для оценки покрытия кода GNU и некоторый скрипт для создания HTML-отчета, где вы можете углубиться в информацию о покрытии по каталогам, файлам и затем до уровня строки кода.
Скрипт собирает V8 в отдельном каталоге out
, используя настройки gcov
. Мы используем отдельный каталог, чтобы не затрагивать ваши обычные настройки сборки. Этот отдельный каталог называется cov
— он создается прямо в корне репозитория. Затем, gcov.sh
запускает тестовый набор и создает отчет. Путь к отчету предоставляется после завершения выполнения скрипта.
Если ваше изменение имеет архитектурно-специфичные компоненты, вы можете кумулятивно собирать покрытие из запусков для каждой архитектуры.
./tools/gcov.sh x64 arm
Это выполняет перестройку на месте для каждой архитектуры, перезаписывая двоичные файлы из предыдущего запуска, но при этом сохраняет и накапливает результаты покрытия.
По умолчанию, скрипт собирает данные из запусков Release
. Если вы хотите Debug
, вы можете указать это:
BUILD_TYPE=Debug ./tools/gcov.sh x64 arm arm64
Запуск скрипта без параметров также предоставит сводку доступных вариантов.
Бот анализа покрытия кода
Для каждого принятого изменения мы выполняем анализ покрытия для архитектуры x64 — смотрите бот покрытия. Мы не запускаем боты для анализа покрытия для других архитектур.
Чтобы получить отчет для конкретного запуска, вам нужно просмотреть шаги сборки, найти шаг “gsutil coverage report” (ближе к концу) и открыть “отчет” под ним.