Slicer3:Testing

From Slicer Wiki
Revision as of 17:53, 15 May 2008 by Marianna (talk | contribs) (9 revisions)
Jump to: navigation, search
Home < Slicer3:Testing

How to do testing in Slicer3.

Writing Tests

C++

Tcl

Calling tests from CMake/CTest

Setting up automatic builds

Note: this can also be used for continuous builds using the --test-type Continuous flag.

Windows

For windows you need to use the Add Scheduled Task option in the Control Panel to create the build. This task runs in a 'dumb' dos shell, so you need to help it get jump started. The following works:

  • create a .bat file that that is called from the Scheduled Task
  • create a shell script that runs the build and call that from the .bat file

Here's an example for run.bat:

echo off

C:
chdir C:\cygwin\bin

set CYGWIN=binmode tty ntsec

rxvt -sl 1000 -e c:/pieper/run.csh -l

this example uses rxvt, which is available from cygwin, but not installed by default (it's an xterm ported to cygwin).

And here's an example run.csh:

#!/bin/csh

setenv PATH "/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem"

c:/pieper/bwh/slicer3/latest/Slicer3/Scripts/getbuildtest.tcl --update --test-type Nightly |& c:/cygwin/bin/tee c:/pieper/bwh/slicer3/latest/Slicer3.build-log

c:/cygwin/bin/sleep 5

Unix

Here's an example script that can be dropped into /etc/cron.daily

#!/bin/tcsh

cd /home/pieper/slicer3/nightly
rm -rf Slicer3 Slicer3-lib Slicer3-build

su - pieper -c "cd /home/pieper/slicer3/nightly; svn co http://www.na-mic.org/svn/Slicer3/trunk Slicer3 |& tee nightly.log"
su - pieper -c "setenv DISPLAY :0; cd /home/pieper/slicer3/nightly; ./Slicer3/Scripts/getbuildtest.tcl -t Nightly |& tee -a nightly.log"

Note: this assumes your shell is csh-like. If you use bash, replace the "|&" with "2>&1 |".

Note: the DISPLAY variable should be set to be the X display you want to run with. Most systems will have :0 as the default display.

Here's a similar example for a continuous build

#!/usr/bin/zsh

cd /playpen/davisb/Slicer3/continuous/Slicer3
date > continuous.log
export DISPLAY=:0
./Scripts/getbuildtest2.tcl --update --test-type Continuous |& tee -a continuous.log
date >> continuous.log

You can set up the script to be called every hour by adding this line to your cron file (crontab -e)

0 * *  * * /PathToTheScriptShownJustAbove/TestSlicer3Continuous.sh