On 03/04/2020 17:51, Tom Lane wrote:
Petr Jelinek <p...@2ndquadrant.com> writes:
On 03/04/2020 16:59, Tom Lane wrote:
Petr Jelinek <p...@2ndquadrant.com> writes:
AFAIK gcov can't handle multiple instances of same process being started
as it just overwrites the coverage files. So for TAP test it will report
bogus info (as in some code that's executed will look as not executed).

Hm, really?  I routinely run "make check" (ie, parallel regression
tests) under coverage, and I get results that seem sane.  If I were
losing large chunks of the data, I think I'd have noticed.

Parallel regression still just starts single postgres instance no?

But the forked-off children have to write the gcov files independently,
don't they?


Hmm that's very good point. I did see these missing coverage issue when running tests that explicitly start more instances of postgres before though. And with some quick googling, parallel testing seems to be issue with gcov for more people.

I wonder if the program checksum that gcov calculates when merging the .gcda data while updating it is somehow different for separately started instances but not for the ones forked from same parent or something. I don't know internals of gcov well enough to say how exactly that works.

--
Petr Jelinek
2ndQuadrant - PostgreSQL Solutions for the Enterprise
https://www.2ndQuadrant.com/


Reply via email to