Cross-posted from Bug Fixes as no replies after several days.
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.