<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
<p><b># Q3 Codecoverage! update </b><br>
</p>
<p><i>If you </i><i>want to hear more about an</i><i>y of the</i><i>s</i><i>e
items, please contact me and I will get you more detailed
information</i><b><br>
</b></p>
<p><b>## Overview </b><br>
</p>
<p>We can show the code coverage on new lines added by changeset! <br>
</p>
<ul>
<li><b>Link</b> - <span
class="author-a-q9z90z4z84zmde7z87zz69zam7z122zh url"><a
href="http://firefox-code-coverage.herokuapp.com/">http://firefox-code-coverage.herokuapp.com/</a></span></li>
<li><b>Warning</b> - This is alpha-quality; it is a
work-in-progress, there are still bugs, and it is not as
responsive as we would like</li>
<li><b>Visual walk through</b> - <a rel="nofollow"
href="https://github.com/armenzg/firefox-code-coverage-frontend/raw/7b67f2e948de94b7f837ba9a7c57a31e810d9fe7/docs/Prototype%20Instructions.pdf">https://github.com/armenzg/firefox-code-coverage-frontend/raw/7b67f2e948de94b7f837ba9a7c57a31e810d9fe7/docs/Prototype%20Instructions.pdf</a></li>
</ul>
Of course, we still have the regular coverage that we upload to
codecov.io [4] <a class="moz-txt-link-freetext"
href="https://codecov.io/gh/marco-c/gecko-dev">https://codecov.io/gh/marco-c/gecko-dev</a>
<p><b>## Parts you don't see</b></p>
<ul>
<li><b>Keep the tests passing</b> - Code coverage builds run a
little different, so we must constantly monitor and triage the
unique test failures. <br>
</li>
<li><b>Building the backend for the UI</b> - The UI is supported
by a backend service that maps coverage to the changesets<br>
</li>
<li><b>optimize jsvm lcov rewriter</b> - because everything is
slow at our scale of coverage<br>
</li>
<li><b>merge coverage from test chunks</b> - because codecov.io
can not handle our raw data volume<br>
</li>
<li><b>adding function info to grcov </b>- a different resolution
of coverage that is consistent with other coverage tools</li>
<li><b>Rust LLVM build</b> - We require a special build of Rust
in order to collect Rust coverage; <a
class="moz-txt-link-freetext"
href="https://treeherder.mozilla.org/#/jobs?repo=try&revision=014e361716000d0dee4427bf7195316a2aba7b21">https://treeherder.mozilla.org/#/jobs?repo=try&revision=014e361716000d0dee4427bf7195316a2aba7b21</a></li>
</ul>
<p><b>## Future Plans</b><br>
</p>
<ul>
<li><b>Verify this UI prototype</b> - We want to ensure RelMan can
use this to inform their bug risk assessment</li>
<li><b><b>Improve the UI</b> - </b>There are inevitable changes
to be made when we get our feedback from RelMan, plus the known
bugs and issues we need to work on.<br>
</li>
<li><br>
</li>
<li><b>Coverage for Windows with Clang</b> - <a
class="moz-txt-link-freetext"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1381163#c5">https://bugzilla.mozilla.org/show_bug.cgi?id=1381163</a></li>
<li><b>Solve bugs</b> - Of course, there is a long tail of bugs </li>
<li><b>Show what tests cover a file</b> - Experimental - a couple
UCOSP students will attempt to show coverage at the per-test
level; this should prove useful to those that made a code
change, and would like to know what test suite (or test chunk)
covers it. If useful, then we can use this same information to
inform our automation.<br>
</li>
<li><b>Merge coverage from different revisions</b> - Experimental
- a UCOSP student will attempt a pan-temporal representation of
our source code: If done, it will allow us transport code
coverage forward, and backward, through time and revisions.
This can be used to compare coverage runs, merge runs from
different revisions, and allow us to collect coverage at a
higher resolution with lower data storage costs.<br>
</li>
</ul>
<p><b>## Meetings</b> </p>
<p> </p>
We have weekly CodeCoverage meetings, and you are welcome to attend:<br>
<ul>
<li> <span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z"><b>When</b>
- Held every Friday @ 11:30 EDT (08:30 PDT)</span></li>
<li><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z"><b>Where</b>
- Kyle's video room </span><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z
url"><a
href="https://v.mozilla.com/flex.html?roomdirect.html&key=huhL8WaTwCwC">https://v.mozilla.com/flex.html?roomdirect.html&key=huhL8WaTwCwC</a></span>
</li>
<li><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z"><b>Etherpad</b>
- </span><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z
url"><a
href="https://public.etherpad-mozilla.org/p/code_coverage_Q1_17">https://public.etherpad-mozilla.org/p/code_coverage_Q1_17</a></span>
</li>
</ul>
<p><b>## Links</b></p>
[1] The frontend UI <span
class="author-a-q9z90z4z84zmde7z87zz69zam7z122zh url"><a
href="http://firefox-code-coverage.herokuapp.com/">http://firefox-code-coverage.herokuapp.com/</a></span><br>
<br>
[2] Frontend code <span
class="author-a-q9z90z4z84zmde7z87zz69zam7z122zh"></span><span
class="author-a-q9z90z4z84zmde7z87zz69zam7z122zh url"><a
href="https://github.com/armenzg/code_cov_experiments">https://github.com/armenzg/code_cov_experiments</a></span><br>
<br>
[3] Backend server <a class="moz-txt-link-freetext"
href="https://github.com/mozilla-releng/services/tree/master/src/shipit_uplift/shipit_uplift">https://github.com/mozilla-releng/services/tree/master/src/shipit_uplift/shipit_uplift</a><br>
<br>
[4] Total Coverage <a class="moz-txt-link-freetext"
href="https://codecov.io/gh/marco-c/gecko-dev">https://codecov.io/gh/marco-c/gecko-dev</a><br>
<br>
[5] UCOSP - <a class="moz-txt-link-freetext"
href="http://ucosp.ca/">http://ucosp.ca/</a><br>
</body>
</html>