Nice work!<br><br><div class="gmail_quote">On Mon, Dec 22, 2008 at 4:34 PM, Talin <span dir="ltr"><<a href="mailto:viridia@gmail.com">viridia@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
(Forwarding this to llvm-dev)<br><div class="gmail_quote"><br>This patch adds a unit test framework to LLVM, along with a sample unit test for DenseMap. I don't expect this patch to be accepted as-is, this is mainly a trial balloon and proof of concept.<div>

<br></div><div>Some notes about the patch:<br>
<div><br></div><div>1) For the testing framework, I went with Google Test, since it's the one I have the most experience with. I fully expect an extended bikeshed discussion to result from this.</div></div></div></blockquote>
<div><br>+1.<br><br>Google test is pretty nice (not that I'm unbiased, as I am a gtest contributor :) <br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="gmail_quote"><div><div></div><div>

2) Both the test framework and the tests are optional build targets, they will not be built with the normal "make all". To build and run the unit tests, use "make check-unit".</div></div></div></blockquote>
<div><br>"make unittest"? I would never guess check-unit.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote">
<div><div></div><div><br></div><div>

3) I did not actually include the testing framework in the patch; It will need to be checked in separately. There are two approaches to this. One approach is to use the svn:external feature to create a link to the googletest svn repository from the LLVM svn repository. The other approach is to take a snapshot of googletest and check it in to the LLVM repository.</div>


<div><br></div><div>The GoogleTest tar archive is here: <a href="http://code.google.com/p/googletest/downloads/list" target="_blank">http://code.google.com/p/googletest/downloads/list</a>. I've located it within the LLVM source tree in the location "third-party/googletest".</div>
</div></div></blockquote><div><br>I suggest checking a specific version of Google test into the source. There isn't much clear benfit to tracking upstream gtest. On the other hand, there is benefit to not having mysterious breakages due to upstream (as unlikely as that is due to gtest API guarentees). Also, for projects adding the gtest source directly to their tree, there is a special gtest-all.c which contains the entire gtest codebase in a single file (it's not that much code).<br>
<br>Keir<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div><div></div>

<div><br></div><div>4) I've included makefiles for building the test framework and unit tests. I had to do a bit of makefile hacking to get this to work, suggestions on how to improve this are welcome.</div><div><br>

</div>
<div><div>-- <br>-- Talin<br>
</div></div></div>
</div><br><br clear="all"><br>-- <br><font color="#888888">-- Talin<br>
</font><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br>