doc: Add guidelines to generate coverage reports with meson
These instructions were already available for configure-based builds, but not the meson-based builds. This commit closes the gap. Reviewed-by: Peter Eisentraut Discussion: https://postgr.es/m/d3751ca3-1ac9-cc5e-9315-cf9fb0eaa9e9@enterprisedb.com
This commit is contained in:
parent
0d237aeeba
commit
f1c3963292
@ -825,53 +825,77 @@ PG_TEST_NOCLEAN=1 make -C src/bin/pg_dump check
|
|||||||
instrumentation, so that it becomes possible to examine which
|
instrumentation, so that it becomes possible to examine which
|
||||||
parts of the code are covered by the regression tests or any other
|
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
|
test suite that is run with the code. This is currently supported
|
||||||
when compiling with GCC, and it requires the <command>gcov</command>
|
when compiling with GCC, and it requires the <literal>gcov</literal>
|
||||||
and <command>lcov</command> programs.
|
and <literal>lcov</literal> packages.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<sect2 id="regress-coverage-configure">
|
||||||
A typical workflow looks like this:
|
<title>Coverage with Autoconf and Make</title>
|
||||||
|
<para>
|
||||||
|
A typical workflow looks like this:
|
||||||
<screen>
|
<screen>
|
||||||
./configure --enable-coverage ... OTHER OPTIONS ...
|
./configure --enable-coverage ... OTHER OPTIONS ...
|
||||||
make
|
make
|
||||||
make check # or other test suite
|
make check # or other test suite
|
||||||
make coverage-html
|
make coverage-html
|
||||||
</screen>
|
</screen>
|
||||||
Then point your HTML browser
|
Then point your HTML browser
|
||||||
to <filename>coverage/index.html</filename>.
|
to <filename>coverage/index.html</filename>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
If you don't have <command>lcov</command> or prefer text output over an
|
If you don't have <command>lcov</command> or prefer text output over an
|
||||||
HTML report, you can run
|
HTML report, you can run
|
||||||
<screen>
|
<screen>
|
||||||
make coverage
|
make coverage
|
||||||
</screen>
|
</screen>
|
||||||
instead of <literal>make coverage-html</literal>, which will
|
instead of <literal>make coverage-html</literal>, which will
|
||||||
produce <filename>.gcov</filename> output files for each source file
|
produce <filename>.gcov</filename> output files for each source file
|
||||||
relevant to the test. (<literal>make coverage</literal> and <literal>make
|
relevant to the test. (<literal>make coverage</literal> and <literal>make
|
||||||
coverage-html</literal> will overwrite each other's files, so mixing them
|
coverage-html</literal> will overwrite each other's files, so mixing them
|
||||||
might be confusing.)
|
might be confusing.)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
You can run several different tests before making the coverage report;
|
You can run several different tests before making the coverage report;
|
||||||
the execution counts will accumulate. If you want
|
the execution counts will accumulate. If you want
|
||||||
to reset the execution counts between test runs, run:
|
to reset the execution counts between test runs, run:
|
||||||
<screen>
|
<screen>
|
||||||
make coverage-clean
|
make coverage-clean
|
||||||
</screen>
|
</screen>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
You can run the <literal>make coverage-html</literal> or <literal>make
|
You can run the <literal>make coverage-html</literal> or <literal>make
|
||||||
coverage</literal> command in a subdirectory if you want a coverage
|
coverage</literal> command in a subdirectory if you want a coverage
|
||||||
report for only a portion of the code tree.
|
report for only a portion of the code tree.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Use <literal>make distclean</literal> to clean up when done.
|
Use <literal>make distclean</literal> to clean up when done.
|
||||||
</para>
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="regress-coverage-meson">
|
||||||
|
<title>Coverage with Meson</title>
|
||||||
|
<para>
|
||||||
|
A typical workflow looks like this:
|
||||||
|
<screen>
|
||||||
|
meson setup -Db_coverage=true ... OTHER OPTIONS ... builddir/
|
||||||
|
meson compile -C builddir/
|
||||||
|
meson test -C builddir/
|
||||||
|
cd builddir/
|
||||||
|
ninja coverage-html
|
||||||
|
</screen>
|
||||||
|
Then point your HTML browser
|
||||||
|
to <filename>./meson-logs/coveragereport/index.html</filename>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You can run several different tests before making the coverage report;
|
||||||
|
the execution counts will accumulate.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
</chapter>
|
</chapter>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user