@@ -825,53 +825,77 @@ PG_TEST_NOCLEAN=1 make -C src/bin/pg_dump check
825
825
instrumentation, so that it becomes possible to examine which
826
826
parts of the code are covered by the regression tests or any other
827
827
test suite that is run with the code. This is currently supported
828
- when compiling with GCC, and it requires the <command >gcov</command >
829
- and <command >lcov</command> programs .
828
+ when compiling with GCC, and it requires the <literal >gcov</literal >
829
+ and <literal >lcov</literal> packages .
830
830
</para>
831
831
832
- <para>
833
- A typical workflow looks like this:
832
+ <sect2 id="regress-coverage-configure">
833
+ <title>Coverage with Autoconf and Make</title>
834
+ <para>
835
+ A typical workflow looks like this:
834
836
<screen>
835
837
./configure --enable-coverage ... OTHER OPTIONS ...
836
838
make
837
839
make check # or other test suite
838
840
make coverage-html
839
841
</screen>
840
- Then point your HTML browser
841
- to <filename>coverage/index.html</filename>.
842
- </para>
842
+ Then point your HTML browser
843
+ to <filename>coverage/index.html</filename>.
844
+ </para>
843
845
844
- <para>
845
- If you don't have <command>lcov</command> or prefer text output over an
846
- HTML report, you can run
846
+ <para>
847
+ If you don't have <command>lcov</command> or prefer text output over an
848
+ HTML report, you can run
847
849
<screen>
848
850
make coverage
849
851
</screen>
850
- instead of <literal>make coverage-html</literal>, which will
851
- produce <filename>.gcov</filename> output files for each source file
852
- relevant to the test. (<literal>make coverage</literal> and <literal>make
853
- coverage-html</literal> will overwrite each other's files, so mixing them
854
- might be confusing.)
855
- </para>
852
+ instead of <literal>make coverage-html</literal>, which will
853
+ produce <filename>.gcov</filename> output files for each source file
854
+ relevant to the test. (<literal>make coverage</literal> and <literal>make
855
+ coverage-html</literal> will overwrite each other's files, so mixing them
856
+ might be confusing.)
857
+ </para>
856
858
857
- <para>
858
- You can run several different tests before making the coverage report;
859
- the execution counts will accumulate. If you want
860
- to reset the execution counts between test runs, run:
859
+ <para>
860
+ You can run several different tests before making the coverage report;
861
+ the execution counts will accumulate. If you want
862
+ to reset the execution counts between test runs, run:
861
863
<screen>
862
864
make coverage-clean
863
865
</screen>
864
- </para>
866
+ </para>
865
867
866
- <para>
867
- You can run the <literal>make coverage-html</literal> or <literal>make
868
- coverage</literal> command in a subdirectory if you want a coverage
869
- report for only a portion of the code tree.
870
- </para>
868
+ <para>
869
+ You can run the <literal>make coverage-html</literal> or <literal>make
870
+ coverage</literal> command in a subdirectory if you want a coverage
871
+ report for only a portion of the code tree.
872
+ </para>
871
873
872
- <para>
873
- Use <literal>make distclean</literal> to clean up when done.
874
- </para>
874
+ <para>
875
+ Use <literal>make distclean</literal> to clean up when done.
876
+ </para>
877
+ </sect2>
878
+
879
+ <sect2 id="regress-coverage-meson">
880
+ <title>Coverage with Meson</title>
881
+ <para>
882
+ A typical workflow looks like this:
883
+ <screen>
884
+ meson setup -Db_coverage=true ... OTHER OPTIONS ... builddir/
885
+ meson compile -C builddir/
886
+ meson test -C builddir/
887
+ cd builddir/
888
+ ninja coverage-html
889
+ </screen>
890
+ Then point your HTML browser
891
+ to <filename>./meson-logs/coveragereport/index.html</filename>.
892
+ </para>
893
+
894
+ <para>
895
+ You can run several different tests before making the coverage report;
896
+ the execution counts will accumulate.
897
+ </para>
898
+ </sect2>
875
899
</sect1>
876
900
877
901
</chapter>
0 commit comments