2010-07-02 19 views
11

Gcov kapsama analizinden belirli işlevleri veya kod satırlarını dışlamak mümkün mü? Kodum, hata ayıklama için kullanılan ve test paketimin bir parçası olarak kullanılmayan bazı işlevleri içerir. Bu işlevler, gcov tarafından bildirilen kapsama yüzdesini azaltır. Bu işlevleri sonuçlardan çıkarmak isterim. Eğer gcov ile mümkün değilse, belki de lcov yoluyla mümkün olabilir, ancak bunu çözemedim. Yardımın takdire değer.Bazı işlevler gcov/lcov kapsamı sonuçları hariç tutulduğunda

+0

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

cevap

5

Basit bir awk komut dosyasından lcov --capture çıktısını çalıştırarak belirli kaynak dosyalarını filtrelerim. Lcov --capture'ın çıktısı çok basit bir biçime sahiptir ve aşağıdaki awk betiği, file_pattern ile eşleşen kaynak dosyaları filtreler. Bence betik, dosya isimleri yerine filtre işlevlerini yerine getirecek şekilde uyarlanabiliyor.

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" 
} 
İlgili konular