Chromium Chronicle n°18: couverture du code Chromium

Épisode 18:Veenita Joshi et Prakhar Asthana à Mountain View, en Californie (février 2021)
Épisodes précédents

La couverture de test mesure la quantité de code source exécutée lorsqu'une suite de tests particulière est exécutée. La génération des données de couverture comporte trois étapes principales: la compilation à l'aide de l'instrumentation, la collecte des données à partir de l'exécution de tests d'instrumentation et le post-traitement des données. L'équipe chargée de l'étude dispose des outils nécessaires pour automatiser ce processus.

Le script de couverture peut générer des rapports de couverture de code en une seule commande, sans attendre la mise à jour de l'UI Gerrit. Ce script est actuellement compatible avec Linux, Mac, iOS et ChromeOS.

Voici un exemple d'utilisation:

$ gn gen out/coverage \
    --args='use_clang_coverage=true is_component_build=false'
$ python tools/code_coverage/coverage.py \
    crypto_unittests url_unittests \
    -b out/coverage -o out/report \
    -c 'out/coverage/crypto_unittests' \
    -c 'out/coverage/url_unittests --gtest_filter=URLParser.PathURL' \
    -f url/ -f crypto/

Cette opération génère et exécute crypto_unittests et url_unittests targets. Pour url_unittests, il n'exécute que le test URLParser.PathURL. Le rapport de couverture est filtré pour n'inclure que les fichiers et sous-répertoires de url/ et crypto/. Outre l'automatisation du processus, ce script fournit des fonctionnalités supplémentaires pour afficher la couverture de code par répertoires et composants.

Capture d'écran du résultat du script de couverture. Vue Répertoire
Capture d'écran du résultat du script de couverture. Vue des composants

L'outil de couverture de code fournit une répartition de la couverture de code par répertoire et composant pour l'ensemble du codebase, pour Windows, iOS, Android, Linux et ChromeOS.

Envoyez vos commentaires:contactez code-coverage @ chromium.org ou signalez un bug sur crbug.com.

Ressources