Domanda

È possibile utilizzare gcov per testare la copertura di applicazioni multi-thread?

Ho impostato alcuni test banali del nostro codice base, ma sarebbe carino avere un'idea della copertura che stiamo ottenendo.Se gcov non è appropriato, qualcuno può consigliare uno strumento alternativo (possibile oprofile), idealmente con una buona documentazione su come iniziare.

È stato utile?

Soluzione

Abbiamo sicuramente utilizzato gcov per ottenere informazioni sulla copertura della nostra applicazione multi-thread.

Vuoi compilare con gcc 4.3 che può coprire il codice dinamico.

Compila con il -fprofile-arcs -ftest-coverage opzioni e il codice genererà file .gcda che gcov potrà quindi elaborare.

Eseguiamo una build separata del nostro prodotto e raccogliamo la copertura su questo, eseguendo test unitari e test di regressione.

Infine utilizziamo lcov per generare pagine di risultati HTML.

Altri suggerimenti

Gcov funziona bene per le app multi-thread.L'architettura della strumentazione è adeguatamente serializzata in modo da ottenere dati di copertura di buona fedeltà.

Suggerirei di utilizzare gcov insieme a lcov.Ciò ti fornirà ottimi report che spaziano dal progetto completo fino ai singoli file sorgente.

lcov ti offre anche una versione HTML della tua fonte con un bel codice colore in modo da poter valutare rapidamente i tuoi intervalli di copertura.

Non ho utilizzato gcov per lavori di copertura multi-thread.Tuttavia, su MacOS lo strumento Shark di Apple gestisce più thread.È principalmente un profiler, ma può anche fornire informazioni sulla copertura.

http://developer.apple.com/tools/sharkoptimize.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top