2010-07-02 13 views
11

Es posible excluir ciertas funciones o líneas de código del análisis de cobertura de gcov. Mi código contiene ciertas funciones que se utilizan para la depuración y no se ejercen como parte de mi conjunto de pruebas. Tales funciones reducen el porcentaje de cobertura informado por gcov. Me gustaría excluir estas funciones de los resultados. Si no es posible a través de gcov, quizás sea posible a través de lcov, pero no pude resolverlo. Tu ayuda es apreciada.Excluyendo ciertas funciones de los resultados de cobertura de gcov/lcov

+0

Véase también http://stackoverflow.com/questions/3555083/how-do-i-tell-gcov-to-ignore-un-hittable-lines-of-c-code – jchl

Respuesta

5

Filtrado de algunos archivos fuente ejecutando el resultado de lcov --capture a través de un simple script awk. El resultado de lcov --capture tiene un formato muy simple y el script awk a continuación filtra los archivos fuente que coinciden con file_pattern. Creo que es posible adaptar el script para que filtre funciones en lugar de nombres de archivos.

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" 
} 
Cuestiones relacionadas