linux-test-project / lcov

LCOV
GNU General Public License v2.0
867 stars 235 forks source link

Differential coverage buckets are missing numbers #252

Closed Vladyyy closed 6 months ago

Vladyyy commented 7 months ago

In the html report, in the directory view, the differential coverage buckets are missing numbers. See crimson color squares in the picture below

Screenshot 2023-12-07 at 9 22 59 PM

I would expect to see the numbers they way they show up in the top level report

Screenshot 2023-12-07 at 9 24 34 PM
henry2cox commented 7 months ago

I suspect that you are using the 2.0 release. version This looks a lot like an alignment bug that I fixed a couple of months ago. Is it possible to try again with TOT?

If this is TOT - I'm afraid that I will need a testcase as I don't see the same issue in our reports.

Vladyyy commented 7 months ago

I suspect that you are using the 2.0 release version

yes

Is it possible to try again with TOT?

Yes, I'll give it a shot

Vladyyy commented 7 months ago

I've tried to generate a new RPM from HEAD of master however I think the make dist target is broken:


> make dist                                                                                                                                                            
  DIST    lcov-2.0.tar.gz
make[4]: *** No rule to make target `clean'.  Stop.
Error: cannot stat bin/analyzeInfoFiles: No such file or directory
make: *** [lcov-2.0.tar.gz] Error 2

This seems to be a regression introduced by this commit: https://github.com/linux-test-project/lcov/commit/c9b83cf69681b5bca46bde213d2c8e2196395349

Reverting the changes to the makefile fixed the dist target

Vladyyy commented 7 months ago

I've hit some other issues running on TOT and couldn't get a successful run. I opened these two new issues:

https://github.com/linux-test-project/lcov/issues/254

https://github.com/linux-test-project/lcov/issues/255

henry2cox commented 7 months ago

The other issues are fixed (I believe) - could you try again with TOT, and report back if there are any other issues or strange behaviour that pop up. Go ahead and close if the issue seems fixed. Thanks Henry

Vladyyy commented 7 months ago

I had to fix a few more issues to get the dist target working.

The rpmbuild picks up local perl modules as dependencies. I applied the fix below

diff --git a/rpm/lcov.spec b/rpm/lcov.spec
index f7af637..cb704ea 100644
--- a/rpm/lcov.spec
+++ b/rpm/lcov.spec
@@ -17,7 +17,7 @@ Prefix: /etc
 %define _binary_payload w9.gzdio

 # lcov Perl modules are not intended for use by other packages
-%define __requires_exclude ^perl\\(lcovutil\\)$
+%define __requires_exclude ^perl\\(lcovutil\\)$|^perl\\((criteria)\\)$|^perl\\((annotateutil)\\)$|^perl\\((gitblame)\\)$|^perl\\((gitversion)\\)$|^perl\\((p4annotate)\\)
 %define __provides_exclude ^perl.*$

Rpm build fails with this failure:

Compiling /tmp/tmp.sz4Cb3LQkG/BUILDROOT/lcov-2.0-111.g79e574b.x86_64/usr/share/lcov/support-scripts/spreadsheet.py ...
  File "/usr/share/lcov/support-scripts/spreadsheet.py", line 317
    summaryKeys = (*geninfoSpecialKeys, *geninfoChunkKeys, *geninfoKeys)
                   ^
SyntaxError: invalid syntax

error: Bad exit status from /var/tmp/rpm-tmp.CEHhB0 (%install)

I've removed the support-scripts/spreadsheet.py locally to unblock this

The new tests added to the share folders are not included in the RPM

error: Installed (but unpackaged) file(s) found:
   /usr/share/lcov/example/Makefile
   /usr/share/lcov/example/README
   /usr/share/lcov/example/descriptions.txt
   /usr/share/lcov/example/example.c
   /usr/share/lcov/example/example_mod.c
...

Made the change locally

@@ -48,7 +48,7 @@ rm -rf $RPM_BUILD_ROOT
 /usr/bin/*
 /usr/lib/*
 /usr/share/man/man*/*
-/usr/share/lcov/support-scripts/*
+/usr/share/lcov/*
 %config /etc/*
henry2cox commented 6 months ago

It turns out that we use make PREFIX=... install rather than RPM - and it appears that I can't actually test rpmbuild (for various strange reasons).

As as result: happy to take a PR which fixes whatever RPM issues there are - but I don't think I can fix it.

Wondering if you can test the original issues (this one and #249) with the updated code - so we can make progress on the functionality while \<somebody> figures out the packaging.

Perhaps we can move the RPM issues into a new report. Hopefully, some knowledgeable and motivated person will see it.

Vladyyy commented 6 months ago

My github account is not setup correctly ATM, this is the working diff for the patch

https://pastebin.com/raw/z8BXku1Z

Vladyyy commented 6 months ago

Wondering if you can test the original issues (this one and https://github.com/linux-test-project/lcov/issues/249) with the updated code - so we can make progress on the functionality while figures out the packaging

This issue has been fixed in TOT

henry2cox commented 6 months ago

My github account is not setup correctly ATM, this is the working diff for the patch

https://pastebin.com/raw/z8BXku1Z

Thanks for the fix. I think I got it in dcceb6df81a8e9 - but I too have some issues - say, with corporate firewall... Could you test TOT one more time, and make sure that I correctly applied your patch? Then, if this is working - go ahead and close this issue.

Sorry for all the back and forth.

Vladyyy commented 6 months ago

Test locally, works as expeced:

> make dist

  DIST    lcov-2.0.tar.gz
make[4]: *** No rule to make target `clean'.  Stop.
  DIST    lcov-2.0-112.gdcceb6d.noarch.rpm
make[4]: *** No rule to make target `clean'.  Stop.
find: 'debug': No such file or directory
+ test -z ''
+ '[' -z /tmp/tmp.dovd632Lbg/BUILDROOT/lcov-2.0-112.gdcceb6d.x86_64 -o /tmp/tmp.dovd632Lbg/BUILDROOT/lcov-2.0-112.gdcceb6d.x86_64 = / ']'
++ mktemp /tmp/cbr.XXXXXX
+ tmp=/tmp/cbr.wpl1n9
+ trap 'rm -f /tmp/cbr.wpl1n9' EXIT
+ find /tmp/tmp.dovd632Lbg/BUILDROOT/lcov-2.0-112.gdcceb6d.x86_64 '!' '(' -name '*.pyo' -o -name '*.pyc' -o -name '*.elc' -o -name .packlist ')' -type f -print0
+ LANG=C
+ xargs -0r grep -F /tmp/tmp.dovd632Lbg/BUILDROOT/lcov-2.0-112.gdcceb6d.x86_64
+ test -s /tmp/cbr.wpl1n9
+ :
+ rm -f /tmp/cbr.wpl1n9
  DIST    lcov-2.0-112.gdcceb6d.src.rpm
henry2cox commented 6 months ago

Excellent - thanks.