[vtk-developers] C++ unit tests

Bill Lorensen bill.lorensen at gmail.com
Tue Jul 28 14:26:11 EDT 2015


+1


On Tue, Jul 28, 2015 at 2:22 PM, David E DeMarle
<dave.demarle at kitware.com> wrote:
> We've got years of layers of great but poorly described regression test
> infrastructure in the code today that makes it harder than it could be to
> make new tests. If this is yet another layer, I'm not in favor.
>
> But if this makes adding tests tractable for newbies and we put together and
> post an easy but comprehensive recipe for adding tests along with this, then
> I'm very much in favor.
>
>
> David E DeMarle
> Kitware, Inc.
> R&D Engineer
> 21 Corporate Drive
> Clifton Park, NY 12065-8662
> Phone: 518-881-4909
>
> On Tue, Jul 28, 2015 at 2:10 PM, Bill Lorensen <bill.lorensen at gmail.com>
> wrote:
>>
>> I have been adding unit tests lately using old school vtk testing.
>> I'll be willing to kick the tires on David's framework.
>>
>> My goal in these unit tests to get as close as 100% coverage as
>> possible, verifying results when possible. This includes exercising
>> Error and Warning code and checking the messages themselves.
>>
>> I'll admit that I'm skeptical, but hopeful that adding a new test
>> framework will increase code coverage.
>>
>> On Tue, Jul 28, 2015 at 1:34 PM, David Thompson
>> <david.thompson at kitware.com> wrote:
>> > Hi David(s),
>> >
>> > I really like the single-header idea, especially the macros for testing
>> > whether values match to within a tolerance.
>> >
>> > My concerns are
>> >
>> > 1. The C++ Testing/Rendering/vtkTesting.h class which provides (or now
>> > that we have ExternalData, provided?) access to baseline images doesn't seem
>> > to fit into the FIXTURE macro. Is there a way to integrate it? Or a way to
>> > extend the vtkTesting class to be more usable by including methods similar
>> > to your macros?
>> >
>> > 2. One thing I dislike about most/all of the C++ test frameworks is that
>> > the error messages are assumed to be fixed and the methods often do not
>> > present a way to include the incorrect result as part of the failure
>> > message. It is nice that your macros include that. However, given that tests
>> > often fail on machines I don't have access to, it is really nice to
>> > encourage people to write useful messages. Macros like CHECK_CLOSE would be
>> > better if they accepted a message as a final argument, especially if the
>> > argument was passed to a std::ostream object the way
>> > vtkGenericWarningMacro() does so that people can (are forced to) provide
>> > more context about where the two numbers being compared come from.
>> >
>> >         David
>> >
>> >> On Jul 28, 2015, at 10:43 AM, David Gobbi <david.gobbi at gmail.com>
>> >> wrote:
>> >>
>> >> Hi David (and David),
>> >>
>> >> The only advantage of my unit test header is that it is a single header
>> >> (a short one, too) with zero dependencies.  So it's easy to add to VTK
>> >> and it's trivial to maintain.
>> >>
>> >> If either of you has a better solution, then go ahead and make a merge
>> >> request.  I'll review it for you ;)
>> >>
>> >>  - David
>> >>
>> >>
>> >> On Tue, Jul 28, 2015 at 8:27 AM, David Thompson
>> >> <david.thompson at kitware.com> wrote:
>> >> Another project I work on has been using Bandit[1] to good effect.
>> >>
>> >>         David
>> >>
>> >> [1]:http://banditcpp.org/reference.html
>> >>
>> >> On Jul 28, 2015, at 10:01 AM, David Cole via vtk-developers
>> >> <vtk-developers at vtk.org> wrote:
>> >>
>> >> > A single header file unit testing solution sounds like a good thing.
>> >> >
>> >> > ... but ... seems like we could also take advantage of a
>> >> > well-established generally used unit testing framework (like gtest or
>> >> > CppUnit) just as easily, and not clutter the VTK source with
>> >> > yet-another-custom-thing-to-learn-about-VTKs-infrastructure.
>> >> >
>> >> > Would it be just as easy to add unit testing using an external unit
>> >> > testing package? Or are there things about that scenario that are
>> >> > overly complicated that having our own makes simpler...?
>> >> >
>> >> >
>> >> > David C.
>> >> >
>> >> >
>> >> >
>> >> > On Mon, Jul 27, 2015 at 5:25 PM, David Gobbi <david.gobbi at gmail.com>
>> >> > wrote:
>> >> >> Hi All,
>> >> >>
>> >> >> I've always enjoyed using the python unit testing framework in
>> >> >> "vtk.test".
>> >> >> It's been brought up on the list before, but it would be nice if VTK
>> >> >> included a unit test framework for C++, as well.
>> >> >>
>> >> >> For my work projects, I've been using a unit test header that I
>> >> >> wrote a year
>> >> >> and a half ago:
>> >> >> https://github.com/dgobbi/UnitTest/blob/master/UnitTest.h
>> >> >>
>> >> >> It's a single header file that provides a collection of macros for
>> >> >> building
>> >> >> unit tests, it's meant to be innocuous and easy to use.  It could go
>> >> >> into
>> >> >> VTK as Testing/Core/vtkUnitTest.h and people could use it at their
>> >> >> leisure.
>> >> >>
>> >> >> Any thoughts?
>> >> >>
>> >> >> - David
>> >>
>> >>
>> >
>> > _______________________________________________
>> > Powered by www.kitware.com
>> >
>> > Visit other Kitware open-source projects at
>> > http://www.kitware.com/opensource/opensource.html
>> >
>> > Search the list archives at:
>> > http://markmail.org/search/?q=vtk-developers
>> >
>> > Follow this link to subscribe/unsubscribe:
>> > http://public.kitware.com/mailman/listinfo/vtk-developers
>> >
>>
>>
>>
>> --
>> Unpaid intern in BillsBasement at noware dot com
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/vtk-developers
>>
>



-- 
Unpaid intern in BillsBasement at noware dot com


More information about the vtk-developers mailing list