2017-05-26 2 views
2

Comment puis-je faire lcov et genhtml afficher les fichiers qui ne sont pas liés/chargés? Je l'utilise pour montrer la couverture de test et j'aimerais voir chaque fichier source apparaître dans le rapport HTML, même s'il n'a aucune couverture. De cette façon, je peux utiliser lcov pour identifier les fichiers source qui manquent des tests. Les fichiers sources manquants ont un fichier .gcno créé pour eux, mais pas un fichier .gcda.Est-ce que lcov/genhtml peut montrer des fichiers qui n'ont jamais été exécutés?

+0

Pouvez-vous fournir un exemple de code minimal qui réplique ce comportement? – AmeyaVS

Répondre

3

Si vous voulez voir tous les fichiers, vous devez créer un fichier de données de couverture de base avec l'option -i. Après avoir capturé vos données, vous devez combiner les deux fichiers avec l'option -a.

Il est un exemple dans la page man lcov (https://linux.die.net/man/1/lcov):

données de couverture initiale de capture zéro.

Exécutez lcov avec -c et cette option sur les répertoires contenant les fichiers .bb, .bbg ou .gcno avant d'exécuter un test élémentaire. Le résultat est un fichier de données de couverture «de base» qui ne contient aucune couverture pour chaque ligne instrumentée . Combiner ce fichier de données (en utilisant lcov -a) avec des fichiers de données de couverture capturés après un test pour s'assurer que le pourcentage de lignes couvertes est correct même si tous les fichiers de code source n'ont pas été chargés pendant le test.

procédure recommandée lors de la capture des données pour un test:

  1. créer le fichier de données de couverture de base

    lcov -c -i -d appdir -o app_base.info

  2. effectuer un test

    appdir/test

  3. créer un fichier de données de couverture de test

    lcov -c -d appdir -o app_test.info

  4. combiner les données de couverture de base et de test

    lcov -a app_base.info -a app_test.info -o app_total .info

Vous devez alors utiliser la app_total.info comme source pour Genhtml.