Difference between revisions of "Slicer3:Testing"
(→Unix) |
|||
Line 2: | Line 2: | ||
= Writing Tests = | = Writing Tests = | ||
+ | |||
+ | See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing Execution Model Testing] for how to write tests for plug in modules. | ||
== C++ == | == C++ == |
Revision as of 17:10, 13 May 2009
Home < Slicer3:TestingHow to do testing in Slicer3.
Contents
Writing Tests
See Execution Model Testing for how to write tests for plug in modules.
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://svn.slicer.org/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