Hi all, I have mentioned on a different thread of -docs that we have no documentation to achieve $subject, so attached is a patch to add something. This can be done with the following steps: meson setup -Db_coverage=true .. blah ninja meson test ninja coverage-html
As far as I can see, there is no option to generate anything else than a HTML report? This portion is telling the contrary, still it does not seem to work here and ninja does the job with coverage-html or coverage as only available targets: https://mesonbuild.com/howtox.html#producing-a-coverage-report Side issue: the current code generates no reports for the files that are automatically generated in src/backend/nodes/, which are actually part of src/include/ for a meson build. I have not looked into that yet. Thoughts? -- Michael
diff --git a/doc/src/sgml/regress.sgml b/doc/src/sgml/regress.sgml index a08c7a78af..dd9a004a6d 100644 --- a/doc/src/sgml/regress.sgml +++ b/doc/src/sgml/regress.sgml @@ -825,53 +825,76 @@ PG_TEST_NOCLEAN=1 make -C src/bin/pg_dump check 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 <command>gcov</command> - and <command>lcov</command> programs. + when compiling with GCC, and it requires the <command>gcov</command>, + <command>lcov</command> and <command>genhtml</command> programs. </para> - <para> - A typical workflow looks like this: + <sect2 id="regress-coverage-configure"> + <title>Coverage with <filename>configure</filename></title> + <para> + A typical workflow looks like this: <screen> ./configure --enable-coverage ... OTHER OPTIONS ... make make check # or other test suite make coverage-html </screen> - Then point your HTML browser - to <filename>coverage/index.html</filename>. - </para> + Then point your HTML browser + to <filename>coverage/index.html</filename>. + </para> - <para> - If you don't have <command>lcov</command> or prefer text output over an - HTML report, you can run + <para> + If you don't have <command>lcov</command> or prefer text output over an + HTML report, you can run <screen> make coverage </screen> - instead of <literal>make coverage-html</literal>, which will - produce <filename>.gcov</filename> output files for each source file - relevant to the test. (<literal>make coverage</literal> and <literal>make - coverage-html</literal> will overwrite each other's files, so mixing them - might be confusing.) - </para> + instead of <literal>make coverage-html</literal>, which will + produce <filename>.gcov</filename> output files for each source file + relevant to the test. (<literal>make coverage</literal> and <literal>make + coverage-html</literal> will overwrite each other's files, so mixing them + might be confusing.) + </para> - <para> - 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: + <para> + 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: <screen> make coverage-clean </screen> - </para> + </para> - <para> - You can run the <literal>make coverage-html</literal> or <literal>make - coverage</literal> command in a subdirectory if you want a coverage - report for only a portion of the code tree. - </para> + <para> + You can run the <literal>make coverage-html</literal> or <literal>make + coverage</literal> command in a subdirectory if you want a coverage + report for only a portion of the code tree. + </para> - <para> - Use <literal>make distclean</literal> to clean up when done. - </para> + <para> + Use <literal>make distclean</literal> to clean up when done. + </para> + </sect2> + + <sect2 id="regress-coverage-meson"> + <title>Coverage with <filename>meson</filename></title> + <para> + A typical workflow looks like this: +<screen> +meson setup -Db_coverage=true ... OTHER OPTIONS ... +ninja +meson test +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> </chapter>
signature.asc
Description: PGP signature