Code coverage in Phobos
Seb via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jul 9 19:38:07 PDT 2016
On Wednesday, 25 May 2016 at 02:34:44 UTC, Seb wrote:
> On Tuesday, 29 March 2016 at 20:50:57 UTC, Seb wrote:
>> Okay I see that for the long run we need a better way to
>> handle the testing infrastructure :/
>
> Actually the idea of achieving "100% coverage" is that we test
> every line at least once and don't let this testing by done by
> users.
> So to refresh the discussion - there were two general ideas
>
> 1) Find "bad", "dangerous" modules, e.g.
>
> /xml.d 64%
> /zlib.d 60%
> /experimental/allocator/typed.d 54%
> /experimental/allocator/building_blocks/segregator.d 50%
> /experimental/allocator/building_blocks/bucketizer.d 48%
> /encoding.d 66%
> /container/binaryheap.d 59%
> /digest/digest.d 72%
>
> 2) Increase coverage for generic, platform-independent modules
> like std.algorithm to 100%
>
> I know it's a lot of work, but shouldn't that make our jobs us
> maintainers easier (=catch the bugs before you have to fix
> them?). Therefore I am bumping this ;-)
Just a quick follow-up on this. I finally managed to work a bit
on the export to Codecov.io - it's pretty neat as it will warn
reviewers if the coverage decreases due to changes in a PR.
Moreover according to Codecov.io, Phobos currently has an overall
coverage of 88.15% (the actual coverage is a bit higher, because
I had to disable a few tests for Travis and missing, "uncovered"
lines are also reported for e.g. deprecated lines).
So if someone wants to improve not well-tested modules, at [1] is
a list of all modules in Phobos with their coverage. Some
highlights include:
regex: 51%
encoding.d: 62%
mathspecial: 57%
mmfile: 61%
process: 69%
socket: 66%
zlib: 60%
Hopefully in a few days this will be part of Phobos (see [2] for
details) and thus automatically updated ;-)
[1]
https://codecov.io/gh/wilzbach/phobos/tree/5fc9eb90076101c0266fb3491ac68527d3520fba/std
[2] https://github.com/dlang/phobos/pull/4587
More information about the Digitalmars-d
mailing list