<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><div style="direction: inherit;">Luke Larson and I added a few things to support testing code coverage of the compiler.</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">You can build with</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">build-script -t --swift-analyze-code-coverage merged</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">which will rebuild the compiler with coverage instrumentation and run all the tests you've selected with coverage enabled.</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">Once all the tests are done, you'll get a set of .profraw files in the swift-test-results directory. Just merge them together with&nbsp;</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">llvm-profdata merge *.profraw -o swiftc.profdata</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">and you can use llvm-cov to inspect that data.</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">Note: you'll need to build swift with an upstream version of llvm and clang, because there's a very recent 'pooled' coverage system that we use.</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">You'll probably see that coverage is really low, somewhere around ~50%. It's that low because the coverage technically considers _all files_, including those from llvm and clang. Those files are, naturally, not tested by the Swift test suite, so they contribute a significant amount of 'un-covered' areas.</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">When we isolate the Swift compiler's files, I found that coverage was somewhere around 79.45%</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">If you need any help, let me know!&nbsp;</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">-- Harlan</div></div><div><div><div style="direction: inherit;"><br></div></div>On Aug 25, 2016, at 2:46 AM, Jacob Bandes-Storch via swift-dev &lt;<a href="mailto:swift-dev@swift.org">swift-dev@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">Has there been any thought put into generating code coverage reports for the compiler? Or, are there some known steps community members could take to help out (such as adding a flag to build-script which enables -fprofile-arcs -ftest-coverage)?<div><br></div><div>I think it'd be really interesting to see what's covered by the (validation) tests and what isn't.<div><div><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Jacob<br></div></div></div></div>
</div></div></div></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-dev mailing list</span><br><span><a href="mailto:swift-dev@swift.org">swift-dev@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-dev">https://lists.swift.org/mailman/listinfo/swift-dev</a></span><br></div></blockquote></body></html>