Hello Ludovic, Simon,

* Ludovic Courtès wrote on Tue, Oct 28, 2008 at 05:48:12PM CET:
> 
> Let me explain this.  Suppose you have tests T1 and T2:
> 
>   * T1 uses code from foo.c and t1.c;
>   * T2 uses code from foo.c and t2.c.
> 
> Running "make check" runs T1, then T2:
> 
>   * T1 is run, producing foo.gcda and t1.gcda;
>   * T2 is run, *overriding* foo.gcda and producing t2.gcda.
> 
> In the end, `lcov' is fed with foo.gcda from the T2 run, whereas what we
> really want to have is the code covered in foo.c by T1 *and* T2.

That's not what my GCC documentation says (info gcc 'Invoking Gcov',
near the end):

   The execution counts are cumulative.  If the example program were
  executed again without removing the `.gcda' file, the count for the
  number of times each line in the source was executed would be added to
  the results of the previous run(s). [...]

FWIW, IIRC then the directory handling of the files was only fixed to be
sane rather recently in the GCC tree (I guess 4.4 only).

Cheers,
Ralf


Reply via email to