Comment tester la couverture du code à l'aide de la commande Linux GCOV

Comment tester la couverture du code à l'aide de la commande Linux GCOV
Dans le cadre du test des performances de votre code, la commande GCOV fait passer votre optimisation de code au niveau suivant en vous permettant de vérifier la couverture. Le GCOV, lorsqu'il est exécuté sur un programme, affiche un rapport indiquant quelles sections du code sont exécutées et lesquelles ne sont pas. Vous pouvez voir un pourcentage de votre couverture de code. De cette façon, vous pouvez améliorer les performances de votre programme.

Ce guide couvre un exemple dans lequel un programme C vérifie sa couverture de code à l'aide de la commande GCOV Linux.

Comment utiliser la commande gCOV dans Linux

Une commande GCOV est un outil utile, en particulier pour les développeurs, et il offre divers avantages, notamment:

  • Optimisation des performances du code
  • Modifier les parties du code ralentit les programmes
  • Vérifier si le programme provoque des fuites de mémoire
  • Vérification si le programme invoque correctement les fonctions

La commande GCOV est utilisée avec les fichiers exécutés compilés en utilisant G ++ ou GCC. Par conséquent, la commande fonctionne mieux avec C ou C++ programmes. Le programme est compilé avec des drapeaux spécifiques pour permettre à GCOV de collecter les données de couverture. Une fois compilé, divers fichiers sont générés contenant les fichiers de notes.

À partir de là, vous exécutez la commande GCOV avec le fichier exécutable pour obtenir le rapport de la couverture des données.

Par exemple, nous utiliserons un programme C qui vérifie et imprime les nombres divisibles par des nombres spécifiques dans une plage donnée. Par défaut, la commande GCOV est préinstallée. Pour compiler votre programme, utilisez la syntaxe ci-dessous et remplacez le nom du fichier pour correspondre au vôtre. Pour cet exemple, notre fichier est GCOV-TEST1.c comme indiqué ci-dessous:

$ gcc -wall -fprofile-arcs -ftest-couvercle gcov-test.c

Une fois que vous compilez votre code, vous devriez obtenir diverses sorties comme dans l'image précédente. La compilation du code crée un exécutable instrumenté qui permet à GCOV de calculer les lignes de code utilisées. Le -couverture de Ftest permet à GCOV de calculer les lignes de code exécutées. D'un autre côté, le -arc de fprofile intègre d'autres conditions et vous pouvez exécuter l'exécutable instrumenté, comme indiqué avec la commande suivante. Notre exécutable d'instrument est le un.dehors fichier, mais si vous spécifiiez un fichier de sortie lors de la compilation du code, vous auriez un fichier instrumenté différent.

$ ./un.dehors

La commande exécute le programme et donne la sortie attendue, ce qui dans notre cas est de répertorier les nombres divisibles dans l'intervalle définie.

Une fois le code exécuté, la prochaine chose consiste à vérifier la couverture du code à l'aide de la commande gcov Linux. Avant cela, vous noterez plus de fichiers créés. Ils contiennent les fichiers de notes sur lesquels GCOV s'appuie pour générer le rapport.

Ici, vous devez ajouter le nom du programme comme argument à GCOV dans la commande suivante:

$ gcov gcov-test1.c

Notre sortie sera:

Notez que toutes les lignes de notre code ont été exécutées, ce qui signifie que notre code est bien optimisé. De plus, un nouveau fichier GCOV-TEST1.c.gcov a été créé. Il contient le nombre de fois que chaque ligne de notre programme a été exécutée, comme indiqué dans l'image ci-dessous. Toute ligne non exécutée aurait le ###### le précédant, et le numéro à gauche montre les fois où la ligne individuelle a été exécutée. En utilisant ces détails, vous pouvez déterminer les modifications à apporter pour optimiser votre programme et l'exécuter plus rapidement.

Si des lignes sont affichées comme non exécutées à l'aide d'un débogueur, vous pouvez résoudre ce problème. L'objectif est de s'assurer que toutes les lignes sont exécutées pour atteindre 100% et permettre au code l'exécution plus rapidement.

Conclusion

Cet article couvre la vérification de votre couverture de code à l'aide de la commande GCOV Linux. Lors des programmes de codage, nous écrivons plusieurs lignes, mais toutes ne sont pas exécutées. Ainsi, sachant quelles lignes s'exécutent et celles qui ne sont pas nécessaires. Les informations aident à corriger ou à supprimer les lignes qui ne sont pas exécutées, ce qui rend le code plus rapide et est un bon moyen d'optimiser votre programme.