31.5. Examen de cobertura de pruebas #

31.5.1. Cobertura con Autoconf y Make
31.5.2. Cobertura con Meson

El código fuente de PostgreSQL se puede compilar con instrumentación de pruebas de cobertura, de modo que sea posible examinar qué partes del código están cubiertas por las pruebas de regresión o cualquier otra suite de pruebas que se ejecute con el código. Actualmente esto está soportado cuando se compila con GCC, y requiere los paquetes gcov y lcov.

31.5.1. Cobertura con Autoconf y Make #

Un flujo de trabajo típico se ve así:

./configure --enable-coverage ... OTRAS OPCIONES ...
make
make check # u otra suite de pruebas
make coverage-html

Luego apunta tu navegador HTML a coverage/index.html.

Si no tienes lcov o prefieres una salida de texto en lugar de un reporte HTML, puedes ejecutar

make coverage

en lugar de make coverage-html, lo cual producirá archivos de salida .gcov para cada archivo fuente relevante para la prueba. (make coverage y make coverage-html se sobrescribirán mutuamente, por lo que mezclarlos podría resultar confuso).

Puedes ejecutar varias pruebas diferentes antes de generar el reporte de cobertura; los conteos de ejecución se acumularán. Si deseas reiniciar los conteos de ejecución entre ejecuciones de prueba, ejecuta:

make coverage-clean

Puedes ejecutar el comando make coverage-html o make coverage en un subdirectorio si deseas un reporte de cobertura solo para una parte del árbol de código.

Usa make distclean para limpiar cuando hayas terminado.

31.5.2. Cobertura con Meson #

Un flujo de trabajo típico se ve así:

meson setup -Db_coverage=true ... OTRAS OPCIONES ... builddir/
meson compile -C builddir/
meson test -C builddir/
cd builddir/
ninja coverage-html

Luego apunta tu navegador HTML a ./meson-logs/coveragereport/index.html.

Puedes ejecutar varias pruebas diferentes antes de generar el reporte de cobertura; los conteos de ejecución se acumularán.