Thanks Thomas, that new flag is great.<div><br></div><div>Mike Craig<br><br>
<br><br><div class="gmail_quote">On Tue, Feb 7, 2012 at 10:03 PM, Thomas Tuegel <span dir="ltr">&lt;<a href="mailto:ttuegel@gmail.com" target="_blank">ttuegel@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div>On Tue, Feb 7, 2012 at 3:23 PM, Austin Seipp &lt;<a href="mailto:mad.one@gmail.com" target="_blank">mad.one@gmail.com</a>&gt; wrote:<br>
</div><div>&gt; If you&#39;re writing a library, you need to compile the library with<br>
&gt; `-fhpc`, i.e. put it in the library stanza, not the testsuite stanza,<br>
&gt; and then you can compile the test program using your library - the<br>
&gt; resulting &#39;tix&#39; file will contain the library coverage reports. You<br>
&gt; can link a HPC-built library into an executable not compiled with HPC<br>
&gt; just fine.<br>
&gt;<br>
&gt; Normally I only compile the library under HPC mode, link it in a test,<br>
&gt; and distribute the results from that. That way your coverage reports<br>
&gt; don&#39;t include the test module (which may or may not be relevant.)<br>
&gt;<br>
&gt; I normally add a cabal flag called &#39;hpc&#39; which optionally enables<br>
&gt; coverage reports for my library, e.g.<br>
&gt;<br>
&gt; flag hpc<br>
&gt;  default: False<br>
&gt;<br>
&gt; library<br>
&gt;  ...<br>
&gt;  ...<br>
&gt;  if flag(hpc)<br>
&gt;    ghc-options: -fhpc<br>
&gt;<br>
&gt; Then when you want coverage reports, just say &#39;cabal install -fhpc<br>
&gt; --enable-tests&#39; and the resulting properties executable will spit out<br>
&gt; the results when run.<br>
<br>
</div>First, as author of the test suite code, let me apologize for the<br>
terrible documentation.<br>
<br>
This is absolutely NOT how coverage reports are supposed to work. If<br>
you configure with &#39;--enable-tests --enable-library-coverage&#39;, Cabal<br>
will take care of _everything_ else for you, including excluding the<br>
test module from the coverage report. You should not have to put any<br>
flag gymnastics in your .cabal file.<br>
<br>
If this doesn&#39;t work for you, please let me know, because it&#39;s a bug.<br>
<br>
Thanks!<br>
<span><font color="#888888"><br>
--<br>
Thomas Tuegel<br>
</font></span></blockquote></div><br>
</div>