<div dir="ltr"><div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">My requests:</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">1. Please do not use Boost.Test.  I can't use that in my bazel based env (at least without suffering some serious pain)</div>2. Please do not use a pure C based framework (e.g. Mateusz's comment about cunit)<br class="gmail-Apple-interchange-newline"><br></div>I personally prefer GoogleTest + <a href="https://github.com/google/benchmark">https://github.com/google/benchmark</a>, but that's probably not surprising given that I work at Google :)<div><br></div><div>I see a few projects using Catch2, so I can adopt those tests easier than I did with TUT.  I got TUT working under bazel, but it wasn't fun.</div><div><br></div><div>Any way you cut it, it's not too big of a deal to have a third_party/ tree for the testing framework.  They are all pretty small.</div><div><br></div><div>If Proj goes with GoogleTest (gunit), I have these:<br></div><div><br></div><div><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><a href="https://github.com/schwehr/gdal-autotest2/tree/master/cpp/third_party/proj">https://github.com/schwehr/gdal-autotest2/tree/master/cpp/third_party/proj</a></span><br></div><div><br></div><div>I'd be happy to submit any of them to Proj under the Proj license.  I'm just using gdal-autotest2 as a place to let folks see them.  <span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">I also use python's unittest to driving testing binary command lines.  </span>They aren't the most exciting tests ever and not much coverage yet, but they help to keep my stress level to a minimum. Some of these will take a little bit of cleanup to remove some Google specific things like how to find gie files.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 29, 2018 at 10:43 AM, Mateusz Loskot <span dir="ltr"><<a href="mailto:mateusz@loskot.net" target="_blank">mateusz@loskot.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Hi,<div dir="auto"><br></div><div dir="auto">(sorry for top-posting, writing from rubbish mobile gmail) </div><div dir="auto"><br></div><div dir="auto">As initial creator of GEOS tests who introduced TUT, I recommend to not to use TUT. So, Even, good you don't. </div><div dir="auto">It has been added ages ago when there where no decent lightweight testing frameworks alternatives. </div><div dir="auto"><br></div><div dir="auto">I use Boost.Test, Catch and Google Test, all have pros and cons, there's no clear winner regarding features, IMHO. </div><div dir="auto"><br></div><div dir="auto">Regarding Catch, I suggest to use Catch2, not 1.x line. <br><div dir="auto"><br><div data-smartmail="gmail_signature" dir="auto">Mateusz Loskot, <a href="mailto:mateusz@loskot.net" target="_blank">mateusz@loskot.net</a><br>(Sent from mobile) </div></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 29 May 2018 7:16 pm, "Even Rouault" <<a href="mailto:even.rouault@spatialys.com" target="_blank">even.rouault@spatialys.com</a>> wrote:<br type="attribution"><blockquote class="m_8250899197215183412quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I was researching a framework to test my new code (and that could also be used <br>
to test the existing C API if needed). Currently src/gie.c has ad-hoc testing, <br>
but it is really limited feature-wise: no nice error message (returns error <br>
code), no way to make a testcase go on even if a test check fails, etc...<br>
<br>
So a dedicated framework seems a better idea, and I've found catch2 :<br>
        <a href="https://github.com/catchorg/Catch2/blob/master/docs/Readme.md" rel="noreferrer noreferrer" target="_blank">https://github.com/catchorg/<wbr>Catch2/blob/master/docs/<wbr>Readme.md</a><br>
<br>
One of its main feature it is a header only testing framework, which means we <br>
can embed it easily in proj source tree, which is practical compared to other <br>
frameworks I've considered ( googletest, cppunit,  etc... ).<br>
The tut framework used by GDAL and GEOS<br>
( <a href="http://mrzechonek.github.io/tut-framework" rel="noreferrer noreferrer" target="_blank">http://mrzechonek.github.io/<wbr>tut-framework</a> ) would also enter this category <br>
of header(s) only, but it has not as much as activity than catch2.<br>
There's also Boost.Test, but I was a bit afraid with the boost name in it <br>
(although apparently it has a standalone mode).<br>
<br>
Example of tests I've just written with catch2 (just a minimalistic use of the <br>
testing framework)<br>
<a href="https://github.com/rouault/proj.4/blob/iso19111_ptr/test/cpp/test_crs.cpp" rel="noreferrer noreferrer" target="_blank">https://github.com/rouault/<wbr>proj.4/blob/iso19111_ptr/test/<wbr>cpp/test_crs.cpp</a><br>
<br>
I'm not particularly calling for a flame debate on the suject, just wanting to <br>
mention this finding.<div class="m_8250899197215183412signature-text"><br>
<br>
Even<br>
<br>
-- <br>
Spatialys - Geospatial professional services<br>
<a href="http://www.spatialys.com" rel="noreferrer noreferrer" target="_blank">http://www.spatialys.com</a><br>
______________________________<wbr>_________________<br>
Proj mailing list<br>
<a href="mailto:Proj@lists.maptools.org" rel="noreferrer" target="_blank">Proj@lists.maptools.org</a><br>
<a href="http://lists.maptools.org/mailman/listinfo/proj" rel="noreferrer noreferrer" target="_blank">http://lists.maptools.org/<wbr>mailman/listinfo/proj</a><br>
</div></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Proj mailing list<br>
<a href="mailto:Proj@lists.maptools.org">Proj@lists.maptools.org</a><br>
<a href="http://lists.maptools.org/mailman/listinfo/proj" rel="noreferrer" target="_blank">http://lists.maptools.org/<wbr>mailman/listinfo/proj</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--<div><a href="http://schwehr.org" target="_blank">http://schwehr.org</a></div></div>
</div>