Перейти к основному содержимому

Оценка покрытия кода

Вы работаете над изменением. Вы хотите оценить покрытие кода для вашего нового кода.

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” (ближе к концу) и открыть “отчет” под ним.