[vtkusers] vtk Testing/Cxx and vtk Examples

Bill Lorensen bill.lorensen at gmail.com
Sun Dec 27 15:27:10 EST 2009


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.

Bill



More information about the vtkusers mailing list