[vtk-developers] Using the new testing classes to run tests interactively

Bill Lorensen bill.lorensen at gmail.com
Mon Dec 28 11:37:33 EST 2009


Dave,

I just checked in:
http://public.kitware.com/cgi-bin/viewcvs.cgi/Widgets/Testing/Cxx/CMakeLists.txt?r1=1.41&r2=1.42&sortby=date
and
http://public.kitware.com/cgi-bin/viewcvs.cgi/Widgets/Testing/Cxx/TestOrientationMarkerWidget.cxx?r1=1.3&r2=1.4&sortby=date

The later can still be run interactively. Also, you can see how much
cleaner the test is by using smartpointers.

Bill

On Mon, Dec 28, 2009 at 9:02 AM, David Cole <david.cole at kitware.com> wrote:
> On Mon, Dec 28, 2009 at 12:35 AM, Bill Lorensen <bill.lorensen at gmail.com>
> wrote:
>>
>> Folks,
>>
>> I have just checked in changes that simplify testing of vtk c++
>> classes and vtk examples.
>>
>> 1) Two new classes: Rendering/vtkTestingObjectFactory and
>> Rendering/vtkTestingInteractor as well as cmake code
>> vtkTestingObjectFactory.cmake.
>> // .NAME vtkTestingObjectFactory - Object overrides used during testing
>> // .SECTION Description
>> // Some vtk examples and tests need to perform differently when they
>> // are run as tests versus when they are run as individual
>> // programs. Many tests/examples are interactive and eventually call
>> // vtkRenderWindowInteration::Start() to initialise the
>> // interaction. But, when run as tests, these programs should
>> // exit. This factory overrides vtkRenderWindowInteractor so that the
>> // Start() method just returns.
>> // To use this factory:
>> //   #include "vtkTestingObjectFactory.h"
>> //   vtkTestingObjectFactory* factory = vtkTestingObjectFactory::New();
>> //   vtkObjectFactory::RegisterFactory(factory);
>> //
>> and
>> // .NAME vtkTestingInteractor - A RenderWindowInteractor for testing
>> // .SECTION Description
>> // Provides a Start() method that passes arguments to a test for
>> // regression testing and returns. This permits programs that
>> // run as tests to exit gracefully during the test run without needing
>> // interaction.
>>
>> The vtkTestingObjectFactory.cmake uses these classes and the existing
>> CREATE_TEST_SOURCELIST
>> to build a test driver for examples and/or tests.
>>
>> They permit tests and examples to be run without having to modify the
>> test or example. The tests and examples can be run interactively or as
>> non-interactive tests. Automatic support for regression testing is
>> supported.
>>
>> I will be creating a wiki page to describe the new facility. These
>> changes are backward compatible with the existing tests.
>>
>> Examples are now built the same as tests. They can still be built
>> within the vtk tree or externally.
>>
>> Currently, only the examples have been changed to work with the new
>> facility. I have tested the new approach on many exiting Testing/Cxx
>> tests, but have not checked in the change to the tests.
>>
>> I'll monitor the dashboard closely this week to fix any problem.
>>
>
> Nice.
> Just one comment for you: the "-I" command line option is used with many of
> the existing VTK tests so that the Start method does *not* immediately
> return and actually does start an event/message loop so that the test can be
> run interactively for debugging purposes. Hopefully your new interactor can
> be rigged to pay attention to that option so that tests/examples may both be
> run with or without "-I" to enable interaction and automation.
>
>



More information about the vtk-developers mailing list