Le code source de PostgreSQL peut être compilé avec des informations
supplémentaire sur la couverture des tests, pour qu'il devienne possible
d'examiner les parties du code couvertes par les tests de régression ou
par toute suite de tests exécutée avec le code. Cette fonctionnalité
est supportée en compilant avec GCC et nécessite les programmes
gcov
et lcov
.
La suite typique de commandes ressemble à ceci :
./configure --enable-coverage ... OTHER OPTIONS ... make make check # or other test suite make coverage-html
Puis pointez votre navigateur HTML vers coverage/index.html
.
Si vous n'avez pas lcov
ou préférez une sortie texte
par rapport à un rapport HTML, vous pouvez exécuter
make coverage
au lieu de make coverage-html
, qui produira des
fichiers de sortie .gcov
pour chaque fichier source
concerné par le test. (make coverage
et make
coverage-html
surchargeront les fichiers de l'autre, donc les
mixer pourrait apporter de la confusion.)
Vous pouvez exécuter différents tests avant de faire la rapport de couverture ; le nombre d'exécutions va s'accumuler. Si vous voulez réinitialiser le nombre d'exécutions entre vos différents tests, exécutez :
make coverage-clean
Vous pouvez exécuter la commande make coverage-html
ou make coverage
dans un sous-répertoire si vous
voulez un rapport de couverture pour seulement une partie du code.
Utilisez make distclean
pour tout nettoyer une fois
terminé.
Une procédure typique ressemble à ceci :
meson setup -Db_coverage=true ... OTHER OPTIONS ... builddir/ meson compile -C builddir/ meson test -C builddir/ cd builddir/ ninja coverage-html
Puis pointez votre navigateur sur
./meson-logs/coveragereport/index.html
.
Vous pouvez exécuter différents tests avant de créer le rapport de couverture ; le nombre d'exécution s'accumulera.