OpenRAVE Documentation

OpenRAVE Testing Framework

Using python nose for the testing framework.

OpenRAVE testing server uses Jenkins and runs these tests, records statistics, and generates this documentation. The tests are run on trunk, and if deemed stable, the stable subversion tag is updated.

Configuring

Because it is not necessary to cater to the lowest common denominator, use easy_install to get latest test packages

sudo easy_install nose coverage

Optional For entire testing harness:

sudo apt-get install graphviz python-svn gnu-pgagent

Jenkins

If using Jenkins to run tests, the following Jenkins plugins should be installed:

  • CMake plugin
  • Measurement Plots
  • Performance Publisher plugin
  • Post build task
  • Publish Over SSH
  • Python Plugin
  • SSH Slaves plugin
  • Subversion Plug-in
  • Subversion Release Manager plugin
  • Subversion Tagging Plugin
  • Edgewall Trac plugin
  • Jenkins xUnit plugin
  • Downstream buildview plugin
  • Global Build Stats Plugin
  • Dependency Graph View Plugin
  • Join Plugin
  • Release Plugin
  • Parameterized Trigger Plugin

The tests are designed to output to Jenkins-friendly format using the python nose and Jenkins xUnit plugins.

Measurements and their history are recorded with the Jenkins Measurement Plots Plugins. This is done by outputting the following xml on stdout:

<measurement><name>myvaluename</name><value>14.669</value></measurement>

chroot

Can build entire ubuntu environments using debootstrap.

Tests

To run, first install OpenRAVE into your path, then:

python test/run_tests.py

For future: Running ‘make test’ in the root directory should setup the OpenRAVE environment from local build folder and run all tests.

Basic Tests

All these tests must pass for a release candidate:

  • single precision, double precision
  • compile wihtout python bindings, without octave bindings, without plugins, without collada
  • boost versions: 1.35, 1.39, 1.44
  • cmake versions: 2.6, 2.8
  • 32bit vs 64bit
  • Visual Studio 2005 (sp1), 2008, and 2010.
  • All exapmles/databases run without throwing exceptions

IKFast

Once building is successful, IKFast tests are run for every robot in its database using the test/test_ikfast.py script. The statistics are used to generate reStructuredText for the Robots Database page. IKFast Performance Testing goes into details about what is tested.

Questions/Feedback

Having problems with OpenRAVE?