orca-robotics


INTRODUCTION
Overview
Download and Install
Quick Start
Documentation
Publications

REPOSITORY
Interfaces
Components
Libraries
Utilities
Software Map

DEVELOPER
Tutorials
Examples
Dev Guide
Dashboard
Wiki
login/pass: orca/orca

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

Automated Testing with Dart2

Note:
Reviewed for release 2.0.0.
Dart2 is a rewrite of Dart -- the automated test facility which is part of CMake. The general goal is to make software more reliable by simplifying automated code (re)compilation and testing. Running Dart2 clients at different sites helps catch bugs caused by cross-platform and cross-hardware issues.

General things to note:

  • It's best to do out-of-source build, i.e. all object/generated files are in one 'binary' directory. The reason is that it makes it simple for CTest to do a clean build every time by simply deleting all files in the build (or 'binary') directory.
  • All scripts listed on this page can be found in the [ORCA-SRC]/scripts/dart/ directory, so you can simply copy and edit them.
  • Make sure can update the checked-out module without you typing in the password (see SourceForge help page).

Dart2 Server

The Dart2 server for Orca is up and running. Users can sign themselves up by clicking on the ''login or create account'' link on top of the page. One useful feature is to send out emails to responsible developers when a build contained errors. After you login there are two two fields to fill in: Project and Repository id. Type in ''orca'' for the Project and your sourceforge username as Repository id. After pressing the button Add repository id the mapping will show up in the table on the left. From now on, if you check something in that doesn't compile you'll get blamed by email, so don't screw up!

Dart2 Client

The suggested directory structure on the client side is shown below. It is assumed in all the scripts which are included in the distribution. The contents of orca2-exp and orca2-nightly is similar to orca2-cont. The *.cmake and *.sh scripts are copies of files from orca2/scripts/dart (use copies so you can modify them to suit local conditions).

ctests/
  orca/
    orca2-cont/
      build-gcc40/
      orca2/
      orca2-cont-linux-gcc40.cmake
      orca2-cont.sh
    orca2-exp/
      build-gcc40/
      orca2/
      orca2-exp-linux-gcc40.cmake
    orca2-nightly/
      build-gcc40/
      build-gcc41/
      orca2/
      orca2-nightly-linux-gcc40.cmake
      orca2-nightly-linux-gcc41.cmake
      orca2-nightly.sh

Experimental Build
That's the simplest test you can run and you do things manually:
  1. Reproduce the file structure shown above. Orca source tree is checked out from CVS
  2. Create an out-of-source build directory
  3. Copy the CTest script from [ORCA-SRC]/scripts/dart/
  4. Execute the CTest script.

$ cd ~/ctests/orca/orca2-exp
$ ctest -S orca2-exp-linux-gcc40.cmake -VV
If this worked you should see the results on the webpage soon after (it may take a few minutes since the server polls for submissions).

Nightly Build
Reproduce the file structure shown above. As an example, we show two build directories using two versions of the gcc compiler. Then add it to your crontab with
$ crontab -e
so it looks something like this:
SHELL=/bin/bash
15  4    * * *  /home/users/dart/ctests/orca/orca2-nightly/orca2-nightly.sh

Continuous Build
Continuous testing is useful during active development. Whenever something changed in CVS the tests are run and submitted to the dashboard. Reproduce the file structure shown above. Execute the shell script once with nohup so that it continues running after you log off.
$ cd ~/ctests/orca/orca2-cont
$ nohup ./orca2-cont.sh &

To suppress output logging, use this command:

$ nohup ./orca2-cont.sh > /dev/null 2>&1 &
 

Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)


Generated for Orca Robotics by  doxygen 1.4.5