Cómo probar la cobertura del código utilizando el comando Linux GCOV

Cómo probar la cobertura del código utilizando el comando Linux GCOV
Como parte de probar el rendimiento de su código, el comando GCOV lleva su optimización de código al siguiente nivel al permitirle verificar la cobertura. El GCOV, cuando se ejecuta en un programa, muestra un informe que muestra qué secciones del código se ejecutan y cuáles no están. Puedes ver un porcentaje de su cobertura de código. De esta manera, puede mejorar el rendimiento de su programa.

Esta guía cubre un ejemplo en el que un programa C verifica su cobertura de código utilizando el comando GCOV Linux.

Cómo usar el comando GCOV en Linux

Un comando GCOV es una herramienta útil, especialmente para los desarrolladores, y ofrece varios beneficios, que incluyen:

  • Optimización del rendimiento del código
  • Cambiar qué partes del código están ralentizando los programas
  • Verificar si el programa causa fugas de memoria
  • Verificar si el programa invoca las funciones correctamente

El comando GCOV se usa con los archivos ejecutados compilados usando G ++ o GCC. Por lo tanto, el comando funciona mejor con C o C++ programas. El programa se compila con banderas específicas para permitir que GCOV recopile datos de cobertura. Una vez compilado, se generan varios archivos que contienen los archivos de notas.

A partir de ahí, ejecuta el comando GCOV con el archivo ejecutable para obtener el informe de la cobertura de datos.

Por ejemplo, utilizaremos un programa C que verifique e imprima los números divisibles por números específicos dentro de un rango dado. Por defecto, el comando GCOV viene preinstalado. Para compilar su programa, use la sintaxis a continuación y reemplace el nombre del archivo para que coincida con el suyo. Para este ejemplo, nuestro archivo es gcov-test1.C Como se muestra abajo:

$ GCC -WALL -FProfile -Arcs -ftest -coberage GCov -Test.C

Una vez que compile su código, debe obtener varias salidas como en la imagen anterior. Compilar el código crea un ejecutable instrumentado que le permite a GCOV calcular las líneas de código utilizadas. El -cubierta de ftest permite que GCOV calcule las líneas de código ejecutadas. Por otro lado, el -fprofile-arcs incorpora otros condicionales, y puede ejecutar el ejecutable instrumentado, como se muestra con el siguiente comando. Nuestro ejecutable de instrumentos es el a.afuera Archivo, pero si especificó un archivo de salida al compilar el código, tendría un archivo instrumentado diferente.

ps ./a.afuera

El comando ejecuta el programa y proporciona el resultado esperado, que en nuestro caso es enumerar los números divisibles dentro del intervalo establecido.

Una vez que se ejecuta el código, lo siguiente es verificar la cobertura del código utilizando el comando GCOV Linux. Antes de eso, notará más archivos creados. Contienen los archivos de nota en los que se basa GCov para generar el informe.

Aquí, debe agregar el nombre del programa como argumento a GCOV en el siguiente comando:

$ GCOV GCOV-TEST1.C

Nuestra salida será:

Tenga en cuenta que todas las líneas en nuestro código se ejecutaron, lo que significa que nuestro código está bien optimizado. Además, un nuevo archivo gcov-test1.C.gcov fue creado. Contiene el número de veces que se ejecutó cada línea en nuestro programa, como se muestra en la imagen a continuación. Cualquier línea no ejecutada tendría la ###### que lo precede, y el número a la izquierda muestra las veces que se ejecutó la línea individual. Usando estos detalles, puede determinar los cambios a realizar para optimizar su programa y ejecutarlo más rápido.

Si se muestran alguna línea como no ejecutada usando un depurador, puede arreglar eso. El objetivo es garantizar que todas las líneas se ejecuten para alcanzar el 100% y permitir que el código se ejecute más rápido.

Conclusión

Este artículo cubre verificar su cobertura de código utilizando el comando GCOV Linux. Al codificar programas, escribimos varias líneas, pero no todas se ejecutan. Por lo tanto, es necesario saber qué líneas se ejecutan y las que no lo hacen. La información ayuda a solucionar o eliminar las líneas que no se ejecutan, lo que hace que el código sea más rápido y es una buena manera de optimizar su programa.