Codecov misreporting coverage and I need some help

Cross-posted from Bug Fixes as no replies after several days.

Description

We have two implementations of a type called fd_t - one is a simple RAII wrapper and the other is based around interface inheritance and implementation to allow it to be used more generically at a cost (the vtable). Both are in a header named ‘fd’ - but at different paths in the repo.

These two different versions are also in different namespaces, and are named the same as they’re designed to be drop-in replaceable with each other.

The advanced (vtabled) version shows 100% coverage as we’d expect, however the RAII wrapper version shows very minimal coverage despite having a very similar exhaustive test suite. I suspect codecov is mis-merging the coverage for one as part of the coverage for the other.

I have run lcov locally, and it shows 100% coverage of both versions as we’d expect.

Repository

https://github.com/bad-alloc-heavy-industries/substrate | https://codecov.io/gh/bad-alloc-heavy-industries/substrate

1 Like

I figured it out in the end as being release vs debug builds… the release build gave the strange results talked about here.