2012-11-14 16 views
20

Ich habe die lcov verwendet, um Informationen zur Abdeckung in meinem Projekt zu erstellen. Aber ich kann nur statistische Informationen über die Netzabdeckung und Funktionsabdeckung erhalten.Lcov: kann Statistiken zur Filialabdeckung nicht erfassen

lcov version:1.10, gcov version:4.4.5 

Die Befehle, die ich verwendete:

lcov -d $OSPL_HOME/src -d $OSPL_OUTER_HOME/src -c -o /work/li/log/lcov-raw.info 

lcov -r /work/li/log/lcov-raw.info "*.ll" "*.yy" "*.yy.c" yaccpar "TAO161*" "/usr/include/*" "*/testsuite/*" -o /work/li/log/lcov.info 

Nach diesen beiden Befehle, ich die Ergebnisse bekam ist:

Deleted 23 files 

Writing data to /work/li/log/lcov.info 

Summary coverage rate: 

    lines......: 45.4% (65087 of 143496 lines) 

    functions..: 46.1% (5575 of 12102 functions) 

    **branches...: no data found** 

So gab es keine Zweige Berichterstattung Ergebnisse. Warum? Also was ist passiert? Und wie kann das passieren? Ich bin hier verwirrt.

Nach dem ersten Befehl, bekam ich viele Warnungen wie diese:

geninfo: WARNING: cannot find an entry for ..#..#code#accum.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#at.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#autodef.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#copyof.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#debug.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#define.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#dump.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#error.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#expand.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#expr.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#if.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#include.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#io.c.gcov in .gcno file, s kipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#is.c.gcov in .gcno file, s kipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#line.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#pragma.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#preprocess.c.gcov in .gcnofile, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#set.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#sharp.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#symtbl.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#undef.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#while.c.gcov in .gcno file , skipping file! 
+2

Bitte fügen Sie die Antwort als eine Antwort Ihre eigene Frage. Ich fand es sehr hilfreich. – nwellnhof

+0

Ich habe unten eine Gemeinschaftswiki-Antwort hinzugefügt. Wenn der Autor jemals auf diese Frage zurückkommt, kann er/sie seine eigene Antwort hinzufügen und sich in den Belohnungen sonnen. –

+0

Mögliches Duplikat von [Generieren von Filialabdeckungsdaten für lcov] (http://stackoverflow.com/questions/12360167/generating-branch-coverage-data-for-lcov) – Hcorg

Antwort

25

ich die E-Mail von Peter Oberparleiter bekam, den Autor von geninfo. Ich habe die Antwort wie folgt bekommen.

In LCOV 1.10 ist die Zweigabdeckung standardmäßig deaktiviert. Sie können es aktivieren, indem Sie die lcovrc-Datei ändern (siehe) oder indem Sie --rc lcov_branch_coverage=1 angeben, wenn Sie lcov/genhtml ausführen.

Wenn Sie nicht LCOV 1.10 verwenden und immer noch keine Branchenabdeckung erhalten, kann es sein, dass Ihre Version von GCC diese Informationen nicht enthält.

(Die obige Antwort wurde von the author auf die Frage fälschlicherweise hinzugefügt.)

11

die Lösung oben gegeben:

--rc lcov_branch_coverage=1 

sowohl für lcov und GenHTML verwendet, für mich gearbeitet.