You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
3.1 KiB
131 lines
3.1 KiB
2 years ago
|
|
||
|
# setup some common things for testing
|
||
|
vtkObject rtTempObject;
|
||
|
rtTempObject GlobalWarningDisplayOff;
|
||
|
vtkMath rtExMath
|
||
|
rtExMath RandomSeed 6
|
||
|
|
||
|
# create the testing class to do the work
|
||
|
vtkTesting rtTester
|
||
|
for {set i 1} {$i < [expr $argc - 1]} {incr i} {
|
||
|
rtTester AddArgument "[lindex $argv $i]"
|
||
|
}
|
||
|
set VTK_DATA_ROOT [rtTester GetDataRoot]
|
||
|
|
||
|
for {set i 1} {$i < [expr $argc - 1]} {incr i} {
|
||
|
if {[lindex $argv $i] == "-A"} {
|
||
|
foreach dir [split [lindex $argv [expr $i +1]] ":"] {
|
||
|
lappend auto_path $dir
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
vtkMPIController mpc
|
||
|
set gc [mpc GetGlobalController]
|
||
|
mpc Delete
|
||
|
|
||
|
vtkCompositeRenderManager compManager
|
||
|
|
||
|
if { $gc != "" } {
|
||
|
set myProcId [$gc GetLocalProcessId]
|
||
|
set numProcs [$gc GetNumberOfProcesses]
|
||
|
|
||
|
compManager SetController $gc
|
||
|
} else {
|
||
|
set myProcId 0
|
||
|
set numProcs 1
|
||
|
}
|
||
|
|
||
|
|
||
|
proc ExitMaster { code } {
|
||
|
global numProcs
|
||
|
for { set i 1 } { $i < $numProcs } { incr i } {
|
||
|
# Send break to all the nodes
|
||
|
#puts "Send break to: $i"
|
||
|
catch [ [ compManager GetController ] TriggerRMI $i 239954 ]
|
||
|
}
|
||
|
|
||
|
vtkCommand DeleteAllObjects
|
||
|
catch {destroy .top}
|
||
|
catch {destroy .geo}
|
||
|
|
||
|
exit $code
|
||
|
}
|
||
|
|
||
|
# load in the script
|
||
|
set file [lindex $argv 0]
|
||
|
|
||
|
if { $myProcId != 0 } {
|
||
|
#puts "Start reading script on satellite node"
|
||
|
source $file
|
||
|
|
||
|
compManager InitializeRMIs
|
||
|
#puts "Process RMIs"
|
||
|
[ compManager GetController ] ProcessRMIs
|
||
|
|
||
|
#puts "**********************************"
|
||
|
#puts "Done on the slave node"
|
||
|
#puts "**********************************"
|
||
|
|
||
|
|
||
|
vtkCommand DeleteAllObjects
|
||
|
catch {destroy .top}
|
||
|
catch {destroy .geo}
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
# set the default threshold, the Tcl script may change this
|
||
|
set threshold -1
|
||
|
|
||
|
if {[info commands wm] != ""} {
|
||
|
wm withdraw .
|
||
|
} else {
|
||
|
# There is no Tk. Help the tests run without it.
|
||
|
proc wm args {
|
||
|
puts "wm not implemented"
|
||
|
}
|
||
|
# The vtkinteraction package requires Tk but since Tk is not
|
||
|
# available it will never be used anyway. Just pretend it is
|
||
|
# already loaded so that tests that load it will not try to load Tk.
|
||
|
package provide vtkinteraction 5.0
|
||
|
}
|
||
|
|
||
|
# Run the test.
|
||
|
source $file
|
||
|
if {[info commands iren] == "iren"} {renWin Render}
|
||
|
# run the event loop quickly to map any tkwidget windows
|
||
|
update
|
||
|
|
||
|
# current directory
|
||
|
if {[rtTester IsValidImageSpecified] != 0} {
|
||
|
# look for a renderWindow ImageWindow or ImageViewer
|
||
|
# first check for some common names
|
||
|
if {[info commands renWin] == "renWin"} {
|
||
|
rtTester SetRenderWindow renWin
|
||
|
if {$threshold == -1} {
|
||
|
set threshold 10
|
||
|
}
|
||
|
} else {
|
||
|
if {$threshold == -1} {
|
||
|
set threshold 5
|
||
|
}
|
||
|
if {[info commands viewer] == "viewer"} {
|
||
|
rtTester SetRenderWindow [viewer GetRenderWindow]
|
||
|
viewer Render
|
||
|
} else {
|
||
|
if {[info commands imgWin] == "imgWin"} {
|
||
|
rtTester SetRenderWindow imgWin
|
||
|
imgWin Render
|
||
|
} else {
|
||
|
if {[info exists viewer]} {
|
||
|
rtTester SetRenderWindow [$viewer GetRenderWindow]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
set rtResult [rtTester RegressionTest $threshold]
|
||
|
}
|
||
|
|
||
|
if {$rtResult == 0} {ExitMaster 1}
|
||
|
ExitMaster 0
|