Having problems generating a code coverage report - Mailing list pgsql-hackers
From | Aleksander Alekseev |
---|---|
Subject | Having problems generating a code coverage report |
Date | |
Msg-id | CAJ7c6TN+MCh99EZ8YGhXZAdnqvNQYir6E34B_mmcB5KsxCB00A@mail.gmail.com Whole thread Raw |
Responses |
Re: Having problems generating a code coverage report
|
List | pgsql-hackers |
Hi hackers, Recently I tried to build a code coverage report according to the documentation [1]. When using the following command: ``` time sh -c 'git clean -dfx && meson setup --buildtype debug -DPG_TEST_EXTRA="kerberos ldap ssl" -Db_coverage=true -Dldap=disabled -Dssl=openssl -Dcassert=true -Dtap_tests=enabled -Dprefix=/home/eax/pginstall build && ninja -C build && PG_TEST_EXTRA=1 meson test -C build && ninja -C build coverage-html' ``` ... I get: ``` geninfo: ERROR: Unexpected negative count '-3' for /home/eax/projects/c/postgresql/src/port/snprintf.c:532. Perhaps you need to compile with '-fprofile-update=atomic (use "geninfo --ignore-errors negative ..." to bypass this error) Traceback (most recent call last): File "/usr/bin/meson", line 40, in <module> sys.exit(mesonmain.main()) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 294, in main return run(sys.argv[1:], launcher) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 282, in run return run_script_command(args[1], args[2:]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 223, in run_script_command return module.run(script_args) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/scripts/coverage.py", line 206, in run return coverage(options.outputs, options.source_root, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/scripts/coverage.py", line 123, in coverage subprocess.check_call([lcov_exe, File "/usr/lib/python3.12/subprocess.py", line 413, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['lcov', '--directory', '/home/eax/projects/c/postgresql/build', '--capture', '--output-file', '/home/eax/projects/c/postgresql/build/meson-logs/coverage.info.run', '--no-checksum', '--rc', 'branch_coverage=1']' returned non-zero exit status 1. ninja: build stopped: subcommand failed. ``` If I add -fprofile-update=atomic as suggested: ``` time CFLAGS="-fprofile-update=atomic" CXXFLAGS="-fprofile-update=atomic" sh -c 'git clean -dfx && meson setup --buildtype debug -DPG_TEST_EXTRA="kerberos ldap ssl" -Db_coverage=true -Dldap=disabled -Dssl=openssl -Dcassert=true -Dtap_tests=enabled -Dprefix=/home/eax/pginstall build && ninja -C build && PG_TEST_EXTRA=1 meson test -C build && ninja -C build coverage-html' ``` ... I get: ``` genhtml: ERROR: duplicate merge record src/include/catalog Traceback (most recent call last): File "/usr/bin/meson", line 40, in <module> sys.exit(mesonmain.main()) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 294, in main return run(sys.argv[1:], launcher) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 282, in run return run_script_command(args[1], args[2:]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 223, in run_script_command return module.run(script_args) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/scripts/coverage.py", line 206, in run return coverage(options.outputs, options.source_root, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mesonbuild/scripts/coverage.py", line 150, in coverage subprocess.check_call([genhtml_exe, File "/usr/lib/python3.12/subprocess.py", line 413, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['genhtml', '--prefix', '/home/eax/projects/c/postgresql/build', '--prefix', '/home/eax/projects/c/postgresql', '--output-directory', '/home/eax/projects/c/postgresql/build/meson-logs/coveragereport', '--title', 'Code coverage', '--legend', '--show-details', '--branch-coverage', '/home/eax/projects/c/postgresql/build/meson-logs/coverage.info']' returned non-zero exit status 1. ninja: build stopped: subcommand failed. ``` I'm using Xubuntu 24.04 LTS and my lcov version is: ``` $ lcov --version lcov: LCOV version 2.0-1 ``` I tried using Autotools with the same results. Pretty confident it worked before. I'm wondering if anyone else experienced this lately and/or knows a workaround. [1]: https://www.postgresql.org/docs/current/regress-coverage.html -- Best regards, Aleksander Alekseev
pgsql-hackers by date: