Re: TPF Devel::Cover grant report Week 18
Paul Johnson <[email protected]>
| Newsgroups | gmane.comp.lang.perl.quality-assurance |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Oct 01, 2012 at 02:00:30AM -0700, Ovid wrote: > Hi Paul, > > I'm very happy to see the great work you've been doing for Devel::Cover. Thanks! > I've been meaning to ask: have you considered adding basis path coverage information? Devel::Cover appears to be tracking all of the relevant data. It seems that now it would merely be a matter of writing the algorithm to generate the basis coverage. Many other languages have automated tools for generating the requisite cyclomatic complexity and basic path information. It would be awesome if Perl had this too :) > > For others: yes, I know that PPI offers cyclomatic complexity information. I would like to see all code coverage information provided in "one-stop shopping" for Perl rather than relying on a separate tool (and I don't know that PPI exposes the control-flow graph used to calculate the cyclomatic complexity. Does it?). Caclulating path coverage has been in the plan since day one. The low level routines are there and, you are right, I think that I'm collecting all the required information. It would be nice if I were able to complete that within the scope of this grant. As far as cyclomatic complexity is concerned, I don't think that that is something which I would like to build into Devel::Cover. Static analysis is a different problem. However, I would be very happy to have an annotation which added cyclomatic complexity information to a coverage report. I could be persuaded to reconsider if static analysis solutions are insufficient here. Annotations are a feature of Devel::Cover which allow you to add non-coverage information to coverage reports. At the moment, they're really only used to add git blame information to coverage reports. I would be happy to add such an annotation to Devel::Cover, or for an author to upload the annotation as a separate distribution. I don't think that all Devel::Cover reports and annotations need to be a part of Devel::Cover itself. There are APIs for both reports and annotations. Path coverage was already in the TODO, but I have added cyclomatic complexity annotations. Thanks for mentioning it. -- Paul Johnson - [email protected] http://www.pjcj.net