agents/skills/experimental-code-coverage-installer/SKILL.md
This skill guides the verification and initialization of the development environment.
Use this skill when:
The primary and recommended method to verify and initialize all code coverage
dependencies automatically is to run the installer script with the required
--infra-dir argument:
python3 tools/code_coverage/code_coverage_installer.py --infra-dir <path_to_infra_dir>
[!IMPORTANT] If the user has not explicitly provided an infra directory path in their request, you must ask them to specify one before running the installer or starting manual verification. Do not choose a default directory or initialize the repository without the user's explicit consent.
If you prefer to perform checks manually, or if you need to troubleshoot specific components, follow the manual checklist workflow below:
Before performing any code coverage operations, verify that a valid Chromium source code checkout is available on the local disk.
src/ directory).src/DEPS: Contains Chromium's external dependency definitions.src/tools/code_coverage/: The root directory for coverage-related
scripts.Verify that LLVM coverage tools are available in third_party/.
src/third_party/llvm-build/Release+Asserts/bin/llvm-covsrc/third_party/llvm-build/Release+Asserts/bin/llvm-profdata.gclient (as it will affect future sync speeds).
.gclient so that coverage tools are fetched
during workspace syncs:
.gclient configuration file (located in the directory above
src/).custom_vars dictionary:
"checkout_clang_coverage_tools": True,
gclient runhooks
Verify that the code coverage recipe codebase is available under the specified
<infra_dir>. This code runs on LUCI builders to generate raw coverage data and
upload it to GCS.
<infra_dir>:
<infra_dir>/build/recipes/recipe_modules/code_coverage/code_coverage/:
api.py: Contains the recipe module API.constants.py: Contains configuration constants.properties.proto: Defines configuration properties.Verify that the code coverage service codebase is available under the specified
<infra_dir>. This is the AppEngine service (Findit) that ingests, processes,
and serves the coverage data to Gerrit and the dashboard.
<infra_dir>:
<infra_dir>/infra/appengine/findit/findit/:
app.yaml: AppEngine configuration.handlers/code_coverage/: Directory containing handlers for coverage APIs.services/code_coverage/: Service logic for processing code coverage.If either the recipe code or service code is missing, they must be checked out
together using the infra_superproject configuration.
<infra_dir> (e.g.,
~/chrome_infra) does not exist, create it..gclient), run:
cd <infra_dir>
gclient sync
cd <infra_dir>
fetch infra_superproject