코드 커버리지 평가
변경 작업을 하고 있습니다. 새 코드의 코드 커버리지를 평가하려고 합니다.
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 커버리지 보고서”(끝부분 근처)를 찾은 다음 그 아래의 “보고서”를 열어야 합니다.