2010-07-02 4 views
11

Est-il possible d'exclure certaines fonctions ou lignes de code de l'analyse de couverture gcov? Mon code contient certaines fonctions qui sont utilisées pour le débogage et ne sont pas exercées dans le cadre de ma suite de tests. De telles fonctions réduisent le pourcentage de couverture rapporté par gcov. Je voudrais exclure ces fonctions des résultats. Si ce n'est pas possible via gcov, c'est peut-être possible via lcov, mais je n'ai pas réussi à le comprendre. Votre aide est appréciée.Exclure certaines fonctions des résultats de la couverture gcov/lcov

+0

Voir aussi http://stackoverflow.com/questions/3555083/how-do-i-tell-gcov-to-ignore-un-hittable-lines-of-c-code – jchl

Répondre

5

Je filtre certains fichiers source en exécutant la sortie de lcov --capture via un simple script awk. La sortie de lcov --capture a un format très simple et le script awk ci-dessous filtre les fichiers source correspondant à file_pattern. Je pense qu'il est possible d'adapter le script pour qu'il filtre les fonctions au lieu des noms de fichiers.

BEGIN { 
     record="" 
} 

/^SF/ { 
     if (match ($0, "file_pattern")) { 
      doprint = 0 
     } else { 
      doprint = 1 
     } 
} 

/^end_of_record$/ { 
     if (doprint) { 
      print record $0 
     } 
     record = "" 
     next 
} 

{ 
    record=record $0 "\n" 
} 
Questions connexes