Parrot: Ticket #1893: Define a 'quickcover' make targethttp://trac.parrot.org/parrot/ticket/1893
<p>
Our Google Code-In students have had several tasks to improve the coverage of our source code by our tests. However, it has become apparent to them and to me that our current <tt>make cover</tt> target takes too long to run and has a scope to broad to be useful in improving the coverage of .c and .pmc files.
</p>
<p>
So I propose a <tt>quickcover</tt> target which will implement a subset of <tt>cover</tt>. <tt>quickcover</tt>, to put it approximately, will jettison the runs of the alternate runcores as well as the tests of the Perl 5 components.
</p>
<p>
I hope to get this working tonight. Comments?
</p>
<p>
kid51
</p>
en-usParrothttp://trac.parrot.org/parrot/chrome/site/parrot_logo.pnghttp://trac.parrot.org/parrot/ticket/1893
Trac 0.11.7whiteknightWed, 15 Dec 2010 13:35:55 GMTcomment addedhttp://trac.parrot.org/parrot/ticket/1893#comment:1
http://trac.parrot.org/parrot/ticket/1893#comment:1
<p>
Strong +1 to me. I would very much love to see something like this implemented. I worry that only running a subset of tests may skew the numbers, but we should be able to mark files which are artificially under-covered during this test so people can ignore them.
</p>
TicketjkeenanFri, 17 Dec 2010 04:01:29 GMTcomment added; status, cc changedhttp://trac.parrot.org/parrot/ticket/1893#comment:2
http://trac.parrot.org/parrot/ticket/1893#comment:2
<ul>
<li><strong>status</strong>
changed from <em>new</em> to <em>assigned</em>
</li>
<li><strong>cc</strong>
<em>whiteknight</em> added
</li>
</ul>
<p>
whiteknight &amp;&amp; GCI students working on code coverage tasks: Please review:
parrot/tt1893_quickcover: review: <a class="ext-link" href="https://github.com/parrot/parrot/commit/69d6ea18ef"><span class="icon"> </span>https://github.com/parrot/parrot/commit/69d6ea18ef</a>
</p>
<p>
Thanks.
</p>
<p>
kid51
</p>
TicketjkeenanSat, 18 Dec 2010 18:05:04 GMTcomment addedhttp://trac.parrot.org/parrot/ticket/1893#comment:3
http://trac.parrot.org/parrot/ticket/1893#comment:3
<p>
With this commit, <a class="ext-link" href="https://github.com/parrot/parrot/commit/d3bdc7924d"><span class="icon"> </span>https://github.com/parrot/parrot/commit/d3bdc7924d</a>, the tt1893_quickcover branch is at what I consider to be a mergeable point.
</p>
<p>
Our existing target <tt>make cover</tt> does coverage analysis on (more or less) the same suite of tests as <tt>make fulltest</tt>. Needless to say, it takes a long time to run.
</p>
<p>
<tt>make quickcover</tt>, in contrast, only runs those files covered by <tt>t/harness --runcore-tests</tt>. Its running time is therefore more on the order of that of <tt>make test</tt>.
</p>
<p>
Both of these targets produce HTML output. For <tt>make quickcover</tt>, I have created the <i>Configure.pl</i> option <tt>--coveragedir</tt>. Provide an absolute path to this option to indicate the top-level of the HTML output, <i>i.e.,</i> the directory at which <i>coverage.html</i> will reside. If you place this in your web server's path, you can make your coverage analysis viewable over the network.
</p>
<p>
As to merging this into master: On the one hand, we're close enough to our December release to hold off until after the release. On the other hand, the sooner it gets into master, the sooner the GCI students working on code coverage tasks can use it.
</p>
<p>
Thank you very much.
</p>
<p>
kid51
</p>
TicketjkeenanSat, 18 Dec 2010 18:07:38 GMTcomment added; attachment sethttp://trac.parrot.org/parrot/ticket/1893
http://trac.parrot.org/parrot/ticket/1893
<ul>
<li><strong>attachment</strong>
set to <em>tt1893_quickcover.aaf80082aa.diff</em>
</li>
</ul>
<p>
diff of tt1893_quickcover branch from its branch point to date
</p>
TicketnwellnhofSat, 18 Dec 2010 19:32:53 GMTcomment addedhttp://trac.parrot.org/parrot/ticket/1893#comment:4
http://trac.parrot.org/parrot/ticket/1893#comment:4
<p>
+1
</p>
<p>
I'd even rename the current 'make cover' to 'make fullcover' and use quickcover when running 'make cover'.
</p>
TicketjkeenanSun, 19 Dec 2010 04:15:14 GMTcomment added; patch set; type changedhttp://trac.parrot.org/parrot/ticket/1893#comment:5
http://trac.parrot.org/parrot/ticket/1893#comment:5
<ul>
<li><strong>type</strong>
changed from <em>RFC</em> to <em>todo</em>
</li>
<li><strong>patch</strong>
set to <em>applied</em>
</li>
</ul>
<p>
Per discussion with whiteknight on IRC, I merged the branch into master. This was the major commit: <a class="ext-link" href="https://github.com/parrot/parrot/commit/425088ab04"><span class="icon"> </span>https://github.com/parrot/parrot/commit/425088ab04</a>
</p>
<p>
Replying to <a href="http://trac.parrot.org/parrot/ticket/1893#comment:4" title="Comment 4 for Ticket #1893">nwellnhof</a>:
</p>
<blockquote class="citation">
<p>
+1
I'd even rename the current 'make cover' to 'make fullcover' and use quickcover when running 'make cover'.
</p>
</blockquote>
<p>
That's a reasonable suggestion, but I'd like to defer that until a Phase II of work on the coverage targets after this week's release. Reason: I suspect that actual use will reveal bugs. We can discuss renaming one target (which is slightly more disruptive than adding a new target) as we handle those bugs.
</p>
<p>
I'll keep this ticket open until Tuesday for comments or complaints.
</p>
<p>
Thank you very much.
</p>
<p>
kid51
</p>
TicketjkeenanWed, 22 Dec 2010 20:57:31 GMTcomment added; resolution set; status changedhttp://trac.parrot.org/parrot/ticket/1893#comment:6
http://trac.parrot.org/parrot/ticket/1893#comment:6
<ul>
<li><strong>status</strong>
changed from <em>assigned</em> to <em>closed</em>
</li>
<li><strong>resolution</strong>
set to <em>fixed</em>
</li>
</ul>
<p>
Kristaba++ for adding some documentation about this in <i>docs/dev/coverage.pod</i>. Closing ticket.
</p>
Ticket