Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xD2Up-00000000HXA-3q8C for pgsql-hackers@arkaria.postgresql.org; Sat, 03 Oct 2026 16:21:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1xD2Uo-00000002O4b-3Q92 for pgsql-hackers@arkaria.postgresql.org; Sat, 03 Oct 2026 16:21:58 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xD2Uo-00000002O4S-2BBJ for pgsql-hackers@lists.postgresql.org; Sat, 03 Oct 2026 16:21:58 +0000 Received: from sss.pgh.pa.us ([68.162.161.243]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xD2Ul-00000000D8D-47ck for pgsql-hackers@lists.postgresql.org; Sat, 03 Oct 2026 16:21:58 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.18.1/8.18.1) with ESMTP id 693GLjSI075994; Sat, 3 Oct 2026 12:21:45 -0400 From: Tom Lane To: Pierre Forstmann cc: pgsql-hackers@lists.postgresql.org Subject: Re: How to run test coverage on Debian 13 ? In-reply-to: <27e7ac16-5f9c-454b-ad64-ed0411d41a71@gmail.com> References: <27e7ac16-5f9c-454b-ad64-ed0411d41a71@gmail.com> Comments: In-reply-to Pierre Forstmann message dated "Sat, 03 Oct 2026 18:08:17 +0200" MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-ID: <75992.1791044505.1@sss.pgh.pa.us> Content-Transfer-Encoding: 8bit Date: Sat, 03 Oct 2026 12:21:45 -0400 Message-ID: <75993.1791044505@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Pierre Forstmann writes: > I'm trying to test run test coverage using master branch on Debian 13 with: > ... > postgres@alma:~/postgresql$ make coverage-html > /usr/bin/lcov --gcov-tool /usr/bin/gcov -q --no-external -c -i -d . -d . > -o lcov_base.info > lcov: ERROR: (usage) duplicate file ./src/backend/parser/scan.gcno in > both . and . >     (use "lcov --ignore-errors usage ..." to bypass this error) > Message summary: >   1 error message: >     usage: 1 > make: *** [src/Makefile.global:1065: lcov_base.info] Error 1 Yeah, recent versions of lcov are rather broken :-(. Best bet is to apply "--ignore-errors" liberally, and even then you'll get a bunch of useless warnings. The output seems correct despite all that. My coverage-running script currently does this so that I don't see any complaints: ----- # In RHEL 10.1 (LCOV version 2.0-1), we need a bunch of options # to silence useless-and-probably-bogus warnings. make -s coverage-html \ LCOVFLAGS="-q --ignore-errors gcov,gcov" \ GENHTML_FLAGS="-q --legend --ignore-errors unmapped,unmapped" \ 2>&1 | grep -v -e 'gcno:no functions found$' -e '^stderr:$' \ -e 'WARNING: Duplicate specification "base-directory' \ -e 'WARNING: Duplicate specification "build-directory' ----- You might want to leave out the "grep -v" part until you've satisfied yourself that no interesting messages are produced on your installation. regards, tom lane