Pergunta

É possível usar o gcov para testes de cobertura de aplicativos multithread?

Defini alguns testes triviais de nossa base de código, mas seria bom ter uma ideia da cobertura que estamos alcançando.Se o gcov não for apropriado, alguém pode recomendar uma ferramenta alternativa (possível oprofile), de preferência com alguma boa documentação sobre como começar.

Foi útil?

Solução

Certamente usamos o gcov para obter informações de cobertura em nosso aplicativo multithread.

Você deseja compilar com o gcc 4.3, que pode cobrir código dinâmico.

Você compila com o -fprofile-arcs -ftest-coverage opções, e o código gerará arquivos .gcda que o gcov poderá processar.

Fazemos uma construção separada do nosso produto e coletamos cobertura sobre isso, executando testes de unidade e testes de regressão.

Finalmente usamos lcov para gerar páginas de resultados HTML.

Outras dicas

Gcov funciona bem para aplicativos multithread.A arquitetura de instrumentação é serializada adequadamente para que você obtenha dados de cobertura de boa fidelidade.

Eu sugeriria usar gcov em conjunto com lcov.Isso fornecerá ótimos relatórios com escopo desde o projeto completo até os arquivos de origem individuais.

lcov também oferece uma versão HTML bem codificada por cores de sua fonte para que você possa avaliar rapidamente seus lapsos de cobertura.

Não usei o gcov para trabalho de cobertura multithread.No entanto, no MacOS, a ferramenta Shark da Apple lida com vários threads.É principalmente um criador de perfil, mas também pode fornecer informações de cobertura.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top