Skip to main content

experimental-code-coverage-config-validator

Validates Chromium generated builder configurations (gn-args.json) for code coverage correctness based on language context.

Informations de source

Dépôt
chromium/chromium
Dernière activité de la source
17 juillet 2026 à 09:03
Langue détectée de SKILL.md
anglais
Étoiles
24 500
Forks
9 140

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
experimental-code-coverage-config-validator
description
Validates Chromium generated builder configurations (gn-args.json) for code coverage correctness based on language context.
# Code Coverage Config Validator Use this skill to verify if a Chromium builder is correctly configured in its generated GN arguments (`gn-args.json`) to produce code coverage data. ______________________________________________________________________ ## Inputs When invoking this skill, the caller MUST pass the following inputs in the prompt: - `builders_of_concern`: Target builder names to validate (e.g., `["linux-rel"]`). To locate the Starlark `.star` definition file for each builder, reference: [builder_star_map.json](../experimental-code-coverage-cq-debugger/references/builder_star_map.json). - `language_context`: The programming language context (`"cpp"`, `"objc"`, `"rust"`, `"java"`, `"js"`, or `"ts"`). Consult [language_coverage_map.json][map_ref] for authoritative mappings. ______________________________________________________________________ ## When to Use This Skill - Verifying if a builder has the correct GN arguments for code coverage. - Debugging why code coverage artifacts are missing or not updated. - Triaging a code coverage bug where builder configuration needs validation. ______________________________________________________________________ ## Validation Checks Consult [language_coverage_map.json][map_ref] for the required settings mapped to `language_context`. Verify that the builder's configuration (`gclient_config` and generated `gn-args.json`) satisfies both: - **gclient Configuration**: Inspect `builder_spec.gclient_config` to confirm any `required_gclient_vars` (e.g., `checkout_clang_coverage_tools` set via `apply_configs = ["use_clang_coverage"]`). - **GN Arguments (`gn_args`)**: Inspect generated `gn-args.json` to confirm all `required_gn_args` are present. ______________________________________________________________________ ## Step-by-Step Execution 1. **Locate GN Args File**: Search for `builder_name` inside `infra/config/generated/builders/gn_args_locations.json` to resolve its relative path (e.g., `"try/linux-rel/gn-args.json"`). Read the JSON file at `infra/config/generated/builders/<relative_path>`. 2. **Inspect Configuration**: Examine the `"gn_args"` dictionary in the JSON. 3. **Perform Checks**: Check each required key-value pair as defined in the **Validation Checks** section for the given `language_context`. 4. **Generate Report**: - **Validation Success**: If all checks pass, report builder is valid. - **Validation Failure**: Detail missing or incorrect configurations. Recommend updating the builder's Starlark file and regenerating configs via `lucicfg generate infra/config/main.star`. 5. **Environment Reminder**: If `language_context` is `"cpp"`, `"objc"`, or `"rust"`, append a reminder that local Clang code coverage generation requires `"checkout_clang_coverage_tools": True` in the developer's `~/.gclient` file under `custom_vars`. ______________________________________________________________________ ## Example Outputs ### Example 1: Successful Validation (C++) > **Builder linux-rel validation successful for language context cpp.** All > required GN arguments (`use_clang_coverage = true`, `is_clang = true`, and > `is_debug = false`) are present in `gn-args.json`. ### Example 2: Failed Validation (C++) > **Builder linux-rel for language context cpp requires updates:** > > - **LACKING**: `"is_debug": false` is missing in `gn-args.json`. > > - **SUGGESTED CHANGE**: Update the Starlark builder definition to set > `is_debug = False` and run `lucicfg generate infra/config/main.star`. > > - **REMINDER**: For local C++ coverage generation, ensure your `~/.gclient` > file contains: > > ```python > custom_vars = { > "checkout_clang_coverage_tools": True, > } > ``` ### Example 3: Failed Validation (Java) > **Builder android-x86-rel for language context java requires updates:** > > - **LACKING**: `"use_jacoco_coverage": true` is missing in `gn-args.json`. > - **SUGGESTED CHANGE**: Update the Starlark builder definition to set > `use_jacoco_coverage = True` and regenerate configs via `lucicfg`. [map_ref]: ../../../tools/code_coverage/language_coverage_map.json
Voir sur GitHub