Fixing lcov usage?

  • Done
  • quality assurance status badge
Details
2 participants
  • Luca Cirrottola
  • Ludovic Courtès
Owner
unassigned
Submitted by
Luca Cirrottola
Severity
normal
L
L
Luca Cirrottola wrote on 15 May 2023 14:10
(address . guix-patches@gnu.org)
840693491.43189747.1684152641380.JavaMail.zimbra@inria.fr
Hello,
I want use lcov to generate a coverage report for a C program, but I find out I always need to add "findutils" package to my shell in order for "lcov" to work. Shouldn't "findutils" be added to the propagated-inputs of "lcov", to have it available at runtime?

Here is a short description of the problem which can be tested on the attached (empty) C program "main.c".

1. The shell I want to use:

guix shell -C gcc-toolchain lcov

2. The commands I run in the shell:

gcc -fprofile-arcs -ftest-coverage -g -O0 -c main.c
gcc -fprofile-arcs -ftest-coverage -g -O0 -lgcov main.o -o my_program
./my_program
lcov --directory . --capture --output-file coverage.info

3. The problem I get: lcov is unable to find the .gcda files for its coverage report (message ".geninfo-real: WARNING: no .gcda files found in . - skipping!").

Everything works fine with "guix shell -C gcc-toolchain lcov findutils", or if I add "findutils" to the propagated-inputs of "lcov" as in the proposed patch (for the commit 13e252af79ffb85bc68d8104fdf700269b903875 on master), which I have tested by defining and building the modified package in a local copy of the gnu/packages/code.scm module.

Of coarse I am open to recognize my errors if I have missed something in the package usage :-) or if I have misunderstood the usage of propagated-inputs (but it didn't work with findutils as "normal" input)... or if there are better solutions.

Thank you in advance,
Luca

--
Luca CIRROTTOLA
Research software engineer @ INRIA - research center of the university of Bordeaux and Pau
Personal webpage: [ https://lcirrottola.github.io/| https://lcirrottola.github.io/ ]
Tel: +33 5 2 4 57 41 21
200 Avenue de la Vieille Tour
33405 Talence cedex
France
Attachment: file
int main( int argc, char* argv[] ) {
return 0;
}
Toggle diff (12 lines)
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index d57954c47c..2b1d221122 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -580,6 +580,7 @@ stack traces.")
`("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
#t)))))
(inputs (list perl perl-io-compress perl-json))
+ (propagated-inputs (list findutils))
(home-page "https://ltp.sourceforge.net/coverage/lcov.php")
(synopsis "Code coverage tool that enhances GNU gcov")
(description "LCOV is an extension of @command{gcov}, a tool part of the
L
L
Ludovic Courtès wrote on 22 May 2023 17:29
(name . Luca Cirrottola)(address . luca.cirrottola@inria.fr)(address . 63517-done@debbugs.gnu.org)
874jo4wfjk.fsf@gnu.org
Hi Luca,

Luca Cirrottola <luca.cirrottola@inria.fr> skribis:

Toggle quote (2 lines)
> I want use lcov to generate a coverage report for a C program, but I find out I always need to add "findutils" package to my shell in order for "lcov" to work. Shouldn't "findutils" be added to the propagated-inputs of "lcov", to have it available at runtime?

I took a slightly less intrusive approach:


Thanks for the bug report & proposal!

Ludo’.
Closed
L
L
Luca Cirrottola wrote on 24 May 2023 14:36
(name . Ludovic Courtès)(address . ludovic.courtes@inria.fr)(address . 63517-done@debbugs.gnu.org)
598756657.4941155.1684931769842.JavaMail.zimbra@inria.fr
Hello Ludo',
I could have bet there was a more elegant solution :-)
It works like a charm, thanks!

Luca

----- Mail original -----
Toggle quote (23 lines)
> De: "Ludovic Courtès" <ludovic.courtes@inria.fr>
> À: "Luca Cirrottola" <luca.cirrottola@inria.fr>
> Cc: 63517-done@debbugs.gnu.org
> Envoyé: Lundi 22 Mai 2023 17:29:19
> Objet: Re: bug#63517: Fixing lcov usage?

> Hi Luca,
>
> Luca Cirrottola <luca.cirrottola@inria.fr> skribis:
>
>> I want use lcov to generate a coverage report for a C program, but I find out I
>> always need to add "findutils" package to my shell in order for "lcov" to work.
>> Shouldn't "findutils" be added to the propagated-inputs of "lcov", to have it
>> available at runtime?
>
> I took a slightly less intrusive approach:
>
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=88a2871d8f82a7280486c2a30cc9b510ee8b2b5c
>
> Thanks for the bug report & proposal!
>
> Ludo’.

--
Luca CIRROTTOLA
Research software engineer @ INRIA - research center of the university of Bordeaux and Pau
Personal webpage: [ https://lcirrottola.github.io/| https://lcirrottola.github.io/ ]
Tel: +33 5 2 4 57 41 21
200 Avenue de la Vieille Tour
33405 Talence cedex
France
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 63517@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 63517
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch