Skip to content

lcov: update to 2.5.#61482

Open
dora-meowmeow wants to merge 4 commits into
void-linux:masterfrom
dora-meowmeow:lcov
Open

lcov: update to 2.5.#61482
dora-meowmeow wants to merge 4 commits into
void-linux:masterfrom
dora-meowmeow:lcov

Conversation

@dora-meowmeow

@dora-meowmeow dora-meowmeow commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Testing the changes

  • I tested the changes in this PR: YES

I tested this by running coverage test on my game engine's test projects. Everything seemed sane from my tests. The tests were done with C++23.

I also removed the patches, as they are no longer relevant. I have checked if other distributions like debian or arch patch lcov, but from what I can tell they don't patch anything either.

New package

New package perl-Devel-Cover was necessary as it is a dependency (see)

However, according to linux-test-project/lcov#370 (comment), Memory::Process is not a hard dependency. Debian and Gentoo seems to skip this package, so I skipped adding it as well.

UPDATE:

I decided for sake of passing 3 other tests I added Memory::Process and Memory::Usage (it is it's own dependency). From my testing it is really not necessary. I'll let the maintainers decide if it should stay or not.

Local build testing

  • I built this PR locally for my native architecture, (x86_64-glibc)
  • I built this PR locally for these architectures (if supported. mark crossbuilds):

@dora-meowmeow

Copy link
Copy Markdown
Contributor Author

I am not 100% sure regarding the licenses. Perl does licensing very weirdly. I might have messed up.

@dora-meowmeow

dora-meowmeow commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

checks depend on Date::Parse which isn't on void repo... sigh I'll be back.
according to cpan it is in perl-TimeDate package (see)

@dora-meowmeow dora-meowmeow force-pushed the lcov branch 6 times, most recently from 7d053ed to b91f89f Compare July 15, 2026 19:47
@dora-meowmeow

Copy link
Copy Markdown
Contributor Author

Final result

genhtml/simple/script.sh ........... [fail] (time 19.9s, mem 71.6MB)
genhtml/errs/msgtest.sh ............ [pass] (time 20.6s, mem 71.6MB)
...ml/insensitive/insensitive.sh ... [pass] (time 2.5s, mem 71.6MB)
genhtml/synthesize/synthesize.sh ... [pass] (time 2.4s, mem 71.6MB)
genhtml/relative/relative.sh ....... [pass] (time 0.2s, mem 71.6MB)
genhtml/lambda/lambda.sh ........... [pass] (time 1.2s, mem 128.5MB)
genhtml/exception/exception.sh ..... [pass] (time 1.8s, mem 128.5MB)
genhtml/filter/filter.pl ........... [pass] (time 0.1s, mem 128.5MB)
genhtml/function/function.sh ....... [pass] (time 4.6s, mem 128.5MB)
genhtml/full.sh .................... [pass] (time 0.3s, mem 128.5MB)
genhtml/zero.sh .................... [pass] (time 0.3s, mem 128.5MB)
genhtml/demangle.sh ................ [pass] (time 0.7s, mem 128.5MB)
scripts/gitblame_test.sh ........... [pass] (time 0.0s, mem 128.5MB)
scripts/gitdiff_test.sh ............ [pass] (time 0.0s, mem 128.5MB)
scripts/gitversion_test.sh ......... [pass] (time 0.0s, mem 128.5MB)
scripts/batchgitversion_test.sh .... [pass] (time 0.0s, mem 128.5MB)
scripts/p4annotate_test.sh ......... [fail] (time 0.3s, mem 128.5MB)
scripts/p4udiff_test.sh ............ [pass] (time 2.2s, mem 128.5MB)
scripts/p4version_test.sh .......... [pass] (time 1.1s, mem 128.5MB)
lcov/add/prune.sh .................. [pass] (time 0.9s, mem 128.5MB)
lcov/add/track.sh .................. [pass] (time 0.2s, mem 128.5MB)
lcov/misc/help.sh .................. [pass] (time 0.1s, mem 128.5MB)
lcov/misc/version.sh ............... [pass] (time 0.1s, mem 128.5MB)
lcov/summary/zero.sh ............... [pass] (time 0.2s, mem 128.5MB)
lcov/summary/full.sh ............... [pass] (time 0.2s, mem 128.5MB)
lcov/extract/extract.sh ............ [pass] (time 12.6s, mem 128.5MB)
lcov/demangle/demangle.sh .......... [pass] (time 3.0s, mem 128.5MB)
lcov/exception/exception.sh ........ [pass] (time 2.3s, mem 128.5MB)
lcov/gcov-tool/path.sh ............. [pass] (time 3.1s, mem 128.5MB)
lcov/branch/branch.sh .............. [pass] (time 1.2s, mem 128.5MB)
lcov/merge/merge.sh ................ [pass] (time 1.3s, mem 128.5MB)
lcov/format/format.sh .............. [pass] (time 1.0s, mem 128.5MB)
lcov/errs/errs.sh .................. [pass] (time 4.6s, mem 128.5MB)
lcov/multiple/multiple.sh .......... [pass] (time 0.9s, mem 128.5MB)
lcov/follow/follow.sh .............. [pass] (time 0.8s, mem 128.5MB)
lcov/initializer/initializer.sh .... [pass] (time 0.7s, mem 128.5MB)
lcov/lambda/lambda.sh .............. [pass] (time 0.2s, mem 128.5MB)
lcov/mcdc/mcdc.sh .................. [pass] (time 2.6s, mem 128.5MB)
lcov/coverage/coverage.sh .......... [fail] (time 1.3s, mem 128.5MB)
lcov/coverage/geninfo.sh ........... [pass] (time 2.7s, mem 128.5MB)
llvm2lcov/llvm2lcov.sh ............. [pass] (time 0.0s, mem 128.5MB)
py2lcov/py2lcov.sh ................. [pass] (time 2.3s, mem 128.5MB)
perl2lcov/perltest1.sh ............. [pass] (time 5.8s, mem 128.5MB)
xml2lcov/xml2lcov.sh ............... [pass] (time 0.6s, mem 128.5MB)

@dora-meowmeow

dora-meowmeow commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author
DATE .......: 2026-07-15 20:54:11 
TESTNAME ...: lcov/coverage/coverage.sh
COMMAND ....: "/builddir/lcov-2.5/tests/lcov/coverage/coverage.sh"
OUTPUT .....:
  === Test 1: --list ===
  === Test 2: --list --list-full-path ===
  === Test 3: --list --no-list-full-path ===
  === Test 4: --list --no-compat-libtool ===
  === Test 5: --remove ===
  === Test 6: --intersect ===
  === Test 7: --subtract ===
  === Test 8: --to-package / --from-package ===

  STDERR:
    Error: lcov --to-package failed (rc=1)
EXITCODE ...: 1
TIME .......: 3879ms
MEM ........: 128416kB
RESULT .....: fail

================================================
DATE .......: 2026-07-15 20:52:06 
TESTNAME ...: scripts/p4annotate_test.sh
COMMAND ....: "/builddir/lcov-2.5/tests/scripts/p4annotate_test.sh"
OUTPUT .....:
  PASS: Test 1: constructor dies when all P4 env vars are missing
  PASS: Test 2: constructor dies citing P4PORT when only P4USER is set
  PASS: Test 3: constructor dies citing P4USER when only P4PORT is set
  PASS: Test 4: constructor succeeds when all P4 env vars are set
  PASS: Test 5: --verify flag parsed and stored correctly
  PASS: Test 6: --log flag parsed and stored correctly
  PASS: Test 7: --cache flag skipped (requires lcovutil context)
  PASS: Test 8: --verify and --log together parsed correctly
  PASS: Test 9: unknown option rejected with usage message
  PASS: Test 10: constructor succeeds with no filename (filename passed separately to annotate)
  PASS: Test 11: --help prints usage message
  PASS: Test 12: unrecognised -h option triggers usage message
  PASS: Test 13: usage message contains --log, --cache, --verify
  PASS: Test 14: -l detects symlink; -e follows it to the real file
  PASS: Test 15: path normalisation resolves symlink to real path
  PASS: Test 16: path normalisation handles .. components in symlink target
  PASS: Test 17: regular file: -l=false, -e=true
  FAIL: Test 18 not-in-p4: expected 3 NONE lines, got 3/4:
  Attempt to call undefined import method with arguments ("new") via package "p4annotate" (Perhaps you forgot to load the package?) at /builddir/lcov-2.5/scripts/p4annotate line 38.
  NONE|cat|2026-07-15T20:52:07+00:00|alpha
  NONE|cat|2026-07-15T20:52:07+00:00|beta
  NONE|cat|2026-07-15T20:52:07+00:00|gamma
EXITCODE ...: 1
TIME .......: 870ms
MEM ........: 128416kB
RESULT .....: fail


================================================
DATE .......: 2026-07-15 20:49:13 
TESTNAME ...: genhtml/simple/script.sh
COMMAND ....: "/builddir/lcov-2.5/tests/genhtml/simple/script.sh"

# Too long

  STDERR:
    lcov: ERROR: lcov: ERROR: (parallel) aggregate: 'unable to deserialize segment 1 /tmp/Dq_VVBZbSW/dumper_26598:lcov: ERROR: lcov: ERROR: (version) merge /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: x2026-07-15T20:49:13+00:00 <- 2026-07-15T20:49:13+00:00
    	(use "lcov --ignore-errors version ..." to bypass this error)
    ': child 26598 returned non-zero exit status 1 (try removing the '--parallel' option)
    	(use "lcov --ignore-errors parallel ..." to bypass this error)
    lcov: WARNING: (version) merge /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: x2026-07-15T20:49:13+00:00 <- 2026-07-15T20:49:13+00:00
    	(use "lcov --ignore-errors version,version ..." to suppress this warning)
    lcov: ERROR: lcov: ERROR: (version) filter /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: x2026-07-15T20:49:13+00:00 <- 2026-07-15T20:49:13+00:00
    	(use "lcov --ignore-errors version ..." to bypass this error)
    lcov: WARNING: (version) filter /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: x2026-07-15T20:49:13+00:00 <- 2026-07-15T20:49:13+00:00
    	(use "lcov --ignore-errors version,version ..." to suppress this warning)
    lcov: ERROR: lcov: ERROR: (version) filter /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: x2026-07-15T20:49:13+00:00 <- 2026-07-15T20:49:13+00:00 md5:d86b86b9eee38a6b1a8b2b33c82f36f3
    	(use "lcov --ignore-errors version ..." to bypass this error)
    lcov: WARNING: (version) filter /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: x2026-07-15T20:49:13+00:00 <- 2026-07-15T20:49:13+00:00 md5:d86b86b9eee38a6b1a8b2b33c82f36f3
    	(use "lcov --ignore-errors version,version ..." to suppress this warning)
    top: "Failed 'line' coverage criteria: 0.62 < 0.70"
    top: "Failed 'line' coverage criteria: 0.62 < 0.70"
    genhtml: ERROR: genhtml: ERROR: (version) load /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: 2026-07-15T20:49:13+00:00 <- x2026-07-15T20:49:13+00:00
    	(use "genhtml --ignore-errors version ..." to bypass this error)
    libgcov profiling error:/builddir/lcov-2.5/tests/genhtml/simple/a-test.gcda:overwriting an existing profile data with a different checksum
    genhtml: ERROR: genhtml: ERROR: (empty) no test descriptions found in 'names.data'.
    	(use "genhtml --ignore-errors empty ..." to bypass this error)
    genhtml: ERROR: genhtml: ERROR: (format) "names.data":1: Found test description without prior test name.
    	(use "genhtml --ignore-errors format ..." to bypass this error)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (inconsistent) File "/builddir/lcov-2.5/tests/genhtml/simple/linked/build/linked.cpp" version changed from '2026-07-15T20:49:13+00:00' to '2026-07-06T22:00:23+00:00' but file not found in 'diff' data file 'linked_diff.txt'.
    	(use "genhtml --ignore-errors inconsistent,inconsistent ..." to suppress this warning)
    genhtml: WARNING: (mismatch) source file '/builddir/lcov-2.5/tests/genhtml/simple/linked/build/linked.cpp' (in both baseline and current .info files) has same basename as 'diff' entry '/builddir/lcov-2.5/tests/genhtml/simple/linked.cpp' - but a different path.  Possible pathname mismatch? (elided)
    	(use "genhtml --ignore-errors mismatch,mismatch ..." to suppress this warning)
    genhtml: WARNING: (version) load /builddir/lcov-2.5/tests/genhtml/simple/linked.cpp: revision control version mismatch: 2026-07-15T20:49:40+00:00 <- 2026-07-06T22:00:23+00:00
    	(use "genhtml --ignore-errors version,version ..." to suppress this warning)
    genhtml: WARNING: (version) load /builddir/lcov-2.5/tests/genhtml/simple/linked.cpp: revision control version mismatch: 2026-07-15T20:49:40+00:00 <- 2026-07-06T22:00:23+00:00
    	(use "genhtml --ignore-errors version,version ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (usage) option --frames disabled because --no-sourceview was specified.
    	(use "genhtml --ignore-errors usage,usage ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (usage) Specified --diff-file without --baseline-file: assuming baseline code coverage was empty (nothing covered).  Hope that is OK
    	(use "genhtml --ignore-errors usage,usage ..." to suppress this warning)
    genhtml: WARNING: (version) load /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: 2026-07-15T20:49:50+00:00 <- 2026-07-15T20:49:13+00:00
    	(use "genhtml --ignore-errors version,version ..." to suppress this warning)
    genhtml: WARNING: (version) load /builddir/lcov-2.5/tests/genhtml/simple/test.cpp: revision control version mismatch: 2026-07-15T20:49:50+00:00 <- 2026-07-15T20:49:13+00:00
    	(use "genhtml --ignore-errors version,version ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    lcov: WARNING: (unused) 'exclude' pattern '*/iostream' is unused.
    	(use "lcov --ignore-errors unused,unused ..." to suppress this warning)
    lcov: WARNING: (unused) 1 of 1 'exclude' pattern were never applied.
    lcov: WARNING: (unused) 'substitute' pattern 's#^[.]/#pwd/#' is unused.
    lcov: WARNING: (unused) 1 of 2 'substitute' patterns were never applied.
    lcov: ERROR: lcov: ERROR: (unused) 'exclude' pattern 'thisStringDoesNotMatch' is unused.
    	(use "lcov --ignore-errors unused ..." to bypass this error)
    lcov: WARNING: (unused) 'exclude' pattern 'thisStringDoesNotMatch' is unused.
    	(use "lcov --ignore-errors unused,unused ..." to suppress this warning)
    lcov: WARNING: (unused) 1 of 1 'exclude' pattern were never applied.
    lcov: WARNING: (unused) 'substitute' pattern 's#xyz#pwd#g' is unused.
    lcov: WARNING: (unused) 1 of 1 'substitute' pattern were never applied.
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: ERROR: genhtml: ERROR: (inconsistent) File "/builddir/lcov-2.5/tests/genhtml/simple/annotate.cpp": '2026-07-15T20:47:43' (computed from your 'SOURCE_DATE_EPOCH=1784148463' environment variable - see 'man genhtml') is older than annotate time '2026-07-15T20:50:13+00:00'
    	(use "genhtml --ignore-errors inconsistent ..." to bypass this error)
    genhtml: WARNING: (package) package DateTime::Format::W3CDTF is not available - falling back to local implementation
    	(use "genhtml --ignore-errors package,package ..." to suppress this warning)
    genhtml: ERROR: genhtml: ERROR: (inconsistent) File "/builddir/lcov-2.5/tests/genhtml/simple/annotate.cpp": '2026-07-15T20:47:43' (computed from your 'SOURCE_DATE_EPOCH=1784148463' environment variable - see 'man genhtml') is older than annotate time '2026-07-15T20:50:13+00:00'
    	(use "genhtml --ignore-errors inconsistent ..." to bypass this error)
EXITCODE ...: 1
TIME .......: 62629ms
MEM ........: 69812kB
RESULT .....: fail

@dora-meowmeow dora-meowmeow marked this pull request as ready for review July 15, 2026 21:09
@dora-meowmeow

Copy link
Copy Markdown
Contributor Author

For the p4 issue, I think it is regarding p4 itself being installed Attempt to call undefined import method with arguments ("new") via package "p4annotate" (Perhaps you forgot to load the package?) at /builddir/lcov-2.5/scripts/p4annotate line 38.. Void linux does not have p4 as a package or perl. From what I am seeing if p4 is missing lcov uses git on most of its tests. So I believe this can be safely ignored.

Coverage.sh seems to be an issue regarding lcov: Error: lcov --to-package failed (rc=1) the logs don't give me enough to work with. Reading the script itself, it once again seems like an issue with lcov (see)

script.sh issue seems to be several, however I can't really put my finger on what would be the solution. Void Linux repo does not have DateTime::Format::W3CDTF in a package and I did not want to add it just for a test. Other than that I cannot tell what is missing for this test to fail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant