digitalmars.D.bugs - [Issue 18377] New: -cov LOC is inadequate for 1 liner branching;
- d-bugmail puremagic.com (41/41) Feb 05 2018 https://issues.dlang.org/show_bug.cgi?id=18377
https://issues.dlang.org/show_bug.cgi?id=18377 Issue ID: 18377 Summary: -cov LOC is inadequate for 1 liner branching; need a metric based on branching Product: D Version: D2 Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: timothee.cour2 gmail.com `dmd -cov -run main.d` shows 100% coverage; this is misleading since a branch is not taken: ``` void main(){ int a; if(false) a+=10; } ``` how about adding a `-covmode=[loc|branch]` that would allow either reporting LOC coverage or branch coverage? branch coverage would report number of branches taken at least once / total number of branches. It would not only address the above issue, but it is IMO a much better metric for coverage, less sensitive to 'overcounting' of large blocks in main code branches (size of code block in a branch is irrelevant as far as testing is concerned); eg: ``` int fun(int x){ if(x<0) return fun2(); // accounts for 1 LOC and 1 branch // long block of non-branching code here... // accounts for 10 LOC and 1 branch } ``` NOTE: branches would include anything that allows more than 1 code path (eg: switch, if) --
Feb 05 2018