You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 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):
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
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Testing the changes
New package
UPDATE:
Local build testing