11
votes

Avec GCOV, est-il possible de fusionner des fichiers .gcda?

J'ai les mêmes fichiers source (C et Obj-C) étant compilé dans deux cibles: l'exécutable du test de l'unité et le produit réel (qui obtient ensuite l'intégration testée). Les deux cibles se développent à différents endroits, de sorte que les fichiers d'objet, .gcno et .gcda sont séparés. Tous les fichiers source ne sont pas compilés dans le test de l'unité, de sorte que tous les objets n'existeront pas. Tous les fichiers source sont compilés dans la construction du produit.

Y a-t-il un moyen de combiner les deux ensembles de fichiers .gcda pour obtenir la couverture totale des tests d'unités et des tests d'intégration (car ils sont exécutés sur la construction du produit)?

J'utilise LCOV.

Mac OS X 10.6, GCC 4.0

merci!


0 commentaires

4 Réponses :


7
votes

Étant donné que vous utilisez LCOV, vous devriez pouvoir convertir les fichiers GCOV .gcda en fichiers LCOV et les fusionner avec LCOV - ADD-TRACEFILE .

de Manpage: Ajouter le contenu de Tracefile. Spécifiez plusieurs traces de traces à l'aide du commutateur -A pour combiner les données de couverture contenues dans ces fichiers en ajoutant des chiffres d'exécution pour assortir des combinaisons de test et de nom de fichier.


0 commentaires

9
votes

Enfin j'ai réussi à résoudre mon problème au moyen de LCOV.

Fondamentalement ce que j'ai fait est ce qui suit:

  • Compilez l'application avec les indicateurs -FProfile-arcs -ftest -s-Couverture - Coverage
  • Distribuez la copie de l'application à chaque nœud.
  • Exécutez l'application dans chaque noeud en parallèle. (Cette étape génère dans le répertoire d'applications dans l'hôte d'accès les informations de couverture)
  • Laissez LCOV faire son travail:
    • LCOV --Directory src / -capture --Output-file couverture_reports / app.info
    • génère la sortie HTML:
      • GENHTML -O Couverture_Reports / Coverage_Reports / app.info

        J'espère que cela peut être utile à quelqu'un.


2 commentaires

Wow, merci d'avoir répondu. J'ai eu 2 emplois très différents entre poser cette question et maintenant. J'espère que cela aidera quelqu'un.


- couverture est un synonyme de -fprofile-arcs -ftest-couverture (lors de la compilation) et -LGCOV (lors de la liaison), donc en utilisant ainsi Tous sont redondants.



0
votes

Je le fusionner par les paramètres multicouts LCOV ci-dessous. Cela fonctionne.

lcov -c -d ./tmp/ -d ./tmp1/ -o ./tmp/coverage.info


0 commentaires

1
votes

Je pense que la façon prévue de le faire est de combiner directement les fichiers .gcda directement, mais pour créer des fichiers de données de couverture indépendants à l'aide de xxx

chaque donnée de couverture alors représente une "course". Vous pouvez bien sûr créer des graphiques distincts ou des vues HTML. Mais vous pouvez également combiner les données à l'aide de - add-tracefile , -A pour court xxx

de la < Code> Total. Coverage Vous pouvez générer le rapport total, à l'aide de GenhTML par exemple.


0 commentaires