2010-07-02 8 views
11

È possibile escludere determinate funzioni o righe di codice dall'analisi della copertura di gcov. Il mio codice contiene alcune funzioni che vengono utilizzate per il debug e non vengono esercitate come parte della mia suite di test. Tali funzioni riducono la percentuale di copertura riportata da gcov. Vorrei escludere queste funzioni dai risultati. Se non è possibile tramite gcov, forse è possibile tramite lcov, ma non sono stato in grado di capirlo. Il tuo aiuto è apprezzato.Esclusione di determinate funzioni dai risultati della copertura di gcov/lcov

+0

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

risposta

5

Filtro alcuni file sorgente eseguendo l'output di lcov -capture tramite un semplice script awk. L'output di lcov --capture ha un formato molto semplice e lo script awk sotto filtra i file sorgente corrispondenti a file_pattern. Penso che sia possibile adattare lo script per renderlo funzioni di filtro al posto dei nomi di file.

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