Excluyendo ciertas funciones de gcov / resultados de cobertura lcov
Pregunta
¿Es posible excluir ciertas funciones o líneas de código a partir del análisis de la cobertura gcov. Mi código contiene ciertas funciones que se utilizan para depurar y no se ejercen como parte de mi serie de pruebas. Estas funciones reducen el porcentaje de cobertura reportada por gcov. Me gustaría excluir estas funciones a partir de los resultados. Si no es posible a través de gcov, tal vez es posible a través de lcov, pero no era capaz de entenderlo. Se agradece su ayuda.
Solución
Me filtrar determinados archivos de origen mediante la ejecución de la salida de --capture lcov a través de un sencillo script awk. La salida de --capture lcov tiene un formato muy simple y la secuencia de comandos awk debajo filtros cabo archivos de origen coincidente file_pattern. Creo que es posible adaptar el guión para que sea filtrar funciones en lugar de nombres de archivo.
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"
}