Como testar a cobertura do código usando o comando linux gcov

Como testar a cobertura do código usando o comando linux gcov
Como parte do teste do desempenho do seu código, o comando gcov leva sua otimização de código para o próximo nível, permitindo que você verifique a cobertura. O GCOV, quando executado em um programa, exibe um relatório mostrando quais seções do código são executadas e quais não são. Você consegue ver uma porcentagem da cobertura do seu código. Dessa forma, você pode melhorar o desempenho do seu programa.

Este guia abrange um exemplo em que um programa C verifica sua cobertura de código usando o comando gcov linux.

Como usar o comando gcov no linux

Um comando GCOV é uma ferramenta útil, especialmente para desenvolvedores, e oferece vários benefícios, incluindo:

  • Otimizando o desempenho do código
  • Alterando quais partes do código estão desacelerando os programas
  • Verificação se o programa causar vazamentos de memória
  • Verificar se o programa invoca as funções corretamente

O comando gcov é usado com os arquivos executados compilados usando G ++ ou GCC. Portanto, o comando funciona melhor com C ou c++ programas. O programa é compilado com sinalizadores específicos para permitir que o GCOV colete dados de cobertura. Uma vez compilado, vários arquivos são gerados contendo os arquivos Notes.

A partir daí, você executa o comando gcov com o arquivo executável para obter o relatório da cobertura de dados.

Por exemplo, usaremos um programa C que verifica e imprime os números divisíveis por números específicos dentro de um determinado intervalo. Por padrão, o comando gcov vem pré-instalado. Para compilar seu programa, use a sintaxe abaixo e substitua o nome do arquivo para corresponder ao seu. Para este exemplo, nosso arquivo é GCOV-TEST1.c como mostrado abaixo:

$ GCC -WALL -FPROFILE -ARCS -TEst -Coberage GCOV -Test.c

Depois de compilar seu código, você deve obter várias saídas, como na imagem anterior. Compilar o código cria um executável instrumentado que permite ao GCOV calcular as linhas de código usadas. O -Coberta de Ftest Permite que o GCOV calcule as linhas de código executadas. Por outro lado, o -FPROFILE-ARCS incorpora outros condicionais e você pode executar o executável instrumentado, como mostrado com o seguinte comando. Nosso instrumento executável é o a.fora Arquivo, mas se você especificou um arquivo de saída ao compilar o código, você teria um arquivo instrumentado diferente.

$ ./a.fora

O comando executa o programa e fornece a saída esperada, que no nosso caso é listar os números divisíveis no intervalo definido.

Depois que o código for executado, a próxima coisa é verificar a cobertura do código usando o comando gcov linux. Antes disso, você notará mais arquivos criados. Eles contêm os arquivos de notas em que o GCOV conta para gerar o relatório.

Aqui, você deve adicionar o nome do programa como argumento ao GCOV no seguinte comando:

$ GCOV GCOV-TEST1.c

Nossa saída será:

Observe que todas as linhas em nosso código foram executadas, o que significa que nosso código está bem otimizado. Além disso, um novo arquivo GCOV-TEST1.c.gcov foi criado. Ele contém o número de vezes que cada linha em nosso programa foi executada, como mostrado na imagem abaixo. Qualquer linha não executada teria o ###### precedendo, e o número à esquerda mostra o horário em que a linha individual foi executada. Usando esses detalhes, você pode determinar as alterações a fazer para otimizar seu programa e executá -lo mais rápido.

Se alguma linha for exibida como não executada usando um depurador, você poderá consertar isso. O objetivo é garantir que todas as linhas sejam executadas para atingir 100% e permitir que o código seja mais rápido.

Conclusão

Este artigo abrange a verificação da cobertura do seu código usando o comando gcov linux. Ao codificar programas, escrevemos várias linhas, mas nem todas são executadas. Assim, sabendo quais linhas executam e aquelas que não são necessárias. As informações ajudam a consertar ou remover essas linhas que não são executadas, tornando o código mais rápido e é uma boa maneira de otimizar seu programa.