본문으로 건너뛰기

코드 커버리지 평가

변경 작업을 하고 있습니다. 새 코드의 코드 커버리지를 평가하려고 합니다.

V8은 이를 위한 두 가지 도구를 제공합니다: 로컬에서 실행되는 도구와 빌드 인프라 지원.

로컬

v8 저장소의 루트 기준으로, ./tools/gcov.sh를 사용하세요 (리눅스에서 테스트됨). 이는 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 커버리지 보고서”(끝부분 근처)를 찾은 다음 그 아래의 “보고서”를 열어야 합니다.