31.5. Test Coverage Examination
  The PostgreSQL source code can be compiled with coverage testing
    instrumentation, so that it becomes possible to examine which
    parts of the code are covered by the regression tests or any other
    test suite that is run with the code.  This is currently supported
    when compiling with GCC, and it requires the
  
   gcov
  
  and
  
   lcov
  
  packages.
 
31.5.1. Coverage with Autoconf and Make #
A typical workflow looks like this:
./configure --enable-coverage ... OTHER OPTIONS ... make make check # or other test suite make coverage-html
   Then point your HTML browser
     to
   
    coverage/index.html
   
   .
  
   If you don't have
   
    lcov
   
   or prefer text output over an
     HTML report, you can run
  
make coverage
   instead of
   
    make coverage-html
   
   , which will
     produce
   
    .gcov
   
   output files for each source file
     relevant to the test.  (
   
    make coverage
   
   and
   
    make
     coverage-html
   
   will overwrite each other's files, so mixing them
     might be confusing.)
  
You can run several different tests before making the coverage report; the execution counts will accumulate. If you want to reset the execution counts between test runs, run:
make coverage-clean
   You can run the
   
    make coverage-html
   
   or
   
    make
     coverage
   
   command in a subdirectory if you want a coverage
     report for only a portion of the code tree.
  
   Use
   
    make distclean
   
   to clean up when done.
  
31.5.2. Coverage with Meson #
A typical workflow looks like this:
meson setup -Db_coverage=true ... OTHER OPTIONS ... builddir/ meson compile -C builddir/ meson test -C builddir/ cd builddir/ ninja coverage-html
   Then point your HTML browser
     to
   
    ./meson-logs/coveragereport/index.html
   
   .
  
You can run several different tests before making the coverage report; the execution counts will accumulate.