2008-09-01 10 views
5

Ist es möglich, gcov für Coverage-Tests von Multithread-Anwendungen zu verwenden?GCOV für Multithread-Anwendungen

Ich habe einige triviale Tests unserer Code-Basis vorgenommen, aber es wäre schön, eine Vorstellung von der Reichweite zu haben, die wir erreichen. Wenn gcov nicht geeignet ist, kann jemand ein alternatives Tool (mögliches Orofile) empfehlen, idealerweise mit einer guten Dokumentation zum Einstieg.

Antwort

8

Wir haben sicherlich gcov verwendet, um Coverage-Informationen zu unserer Multithread-Anwendung zu erhalten.

Sie möchten mit gcc 4.3 kompilieren, die Abdeckung auf dynamischen Code tun können.

Sie kompilieren mit den -fprofile-arcs -ftest-coverage Optionen, und der Code generiert. GCDA-Dateien, die dann verarbeitet werden kann.

Wir machen einen separaten Build von unserem Produkt, und erfassen Abdeckung, laufende Unit-Tests und Regressionstests.

Schließlich verwenden wir lcov, um HTML-Ergebnisseiten zu generieren.

1

Gcov arbeitet für Multi-Threaded-Anwendungen gut. Die Instrumentierungsarchitektur ist ordnungsgemäß serialisiert, so dass Sie Abdeckungsdaten mit guter Wiedergabetreue erhalten.

Ich würde empfehlen, Gcov in Verbindung mit lcov. Dadurch erhalten Sie großartige Berichte, die vom vollständigen Projekt bis zu einzelnen Quelldateien reichen.

lcov bietet Ihnen auch eine schön farbcodierte HTML-Version Ihrer Quelle, so dass Sie schnell Ihre Deckungslücken auswerten können.