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.
133 lines
3.2 KiB
133 lines
3.2 KiB
2 years ago
|
#!/usr/bin/env python
|
||
|
# This is the script that runs a testing python script.
|
||
|
# The script to be run must be the first argument.
|
||
|
import sys
|
||
|
if len(sys.argv) < 2:
|
||
|
print "Usage %s <test script> [<addition arguments>]" % sys.argv[0]
|
||
|
sys.exit(1)
|
||
|
for i in range(2, len(sys.argv)):
|
||
|
if sys.argv[i] == '-A' and i < len(sys.argv)-1:
|
||
|
sys.path = sys.path + [sys.argv[i+1]]
|
||
|
|
||
|
import vtk
|
||
|
import math
|
||
|
|
||
|
#these are the modules that define methods/variables
|
||
|
#used by many scripts. We just include them always
|
||
|
from backdrop import *
|
||
|
from mccases import *
|
||
|
import expr
|
||
|
import catch
|
||
|
import info
|
||
|
import file
|
||
|
from vtk.util.colors import *
|
||
|
|
||
|
#implementation for lindex.
|
||
|
def lindex(list, index):
|
||
|
if type(list) == type("string"):
|
||
|
return list.split()[index]
|
||
|
return list[index]
|
||
|
|
||
|
#gets with no varName (returns the read string)
|
||
|
def gets(file):
|
||
|
line = file.readline()
|
||
|
if line[-1] == "\n":
|
||
|
line = line[:-1]
|
||
|
return line
|
||
|
|
||
|
def gets(file, varName, global_vars):
|
||
|
line = gets(file)
|
||
|
ret = len(line)
|
||
|
global_vars[varName] = line
|
||
|
return ret
|
||
|
|
||
|
def tcl_platform(what):
|
||
|
if what != "platform":
|
||
|
raise "Only platform supported as yet!"
|
||
|
plat = sys.platform
|
||
|
if plat[:5] == "linux":
|
||
|
return "unix"
|
||
|
return plat
|
||
|
|
||
|
def get_variable_name(*args):
|
||
|
var_name = ""
|
||
|
for arg in args:
|
||
|
if arg == "":
|
||
|
continue
|
||
|
# it is essential to qualify the scope of type since
|
||
|
# some test define type variable which messes up the
|
||
|
# bultin call.
|
||
|
if __builtins__.type(arg) == __builtins__.type("string"):
|
||
|
var_name += arg
|
||
|
else:
|
||
|
var_name += `arg`
|
||
|
return var_name
|
||
|
|
||
|
#init Tk
|
||
|
try:
|
||
|
import Tkinter
|
||
|
pythonTk = Tkinter.Tk()
|
||
|
except:
|
||
|
pythonTk = None
|
||
|
pass #no hassles is Tk is not present.
|
||
|
|
||
|
# setup some common things for testing
|
||
|
rtTempObject = vtk.vtkObject()
|
||
|
|
||
|
rtExMath = vtk.vtkMath()
|
||
|
rtExMath.RandomSeed(6)
|
||
|
|
||
|
# create the testing class to do the work
|
||
|
rtTester = vtk.vtkTesting()
|
||
|
for arg in sys.argv[2:]:
|
||
|
rtTester.AddArgument(arg)
|
||
|
|
||
|
VTK_DATA_ROOT = rtTester.GetDataRoot()
|
||
|
|
||
|
# load in the script
|
||
|
test_script = sys.argv[1]
|
||
|
|
||
|
# set the default threshold, the Tcl script may change this
|
||
|
threshold = -1
|
||
|
|
||
|
|
||
|
# we pass the locals over so that the test script has access to
|
||
|
# all the locals we have defined here.
|
||
|
execfile(test_script, globals(), locals())
|
||
|
|
||
|
local_variables_dict = locals()
|
||
|
|
||
|
|
||
|
if "iren" in local_variables_dict.keys():
|
||
|
renWin.Render()
|
||
|
|
||
|
# run the event loop quickly to map any tkwidget windows
|
||
|
if pythonTk:
|
||
|
pythonTk.withdraw()
|
||
|
# update
|
||
|
|
||
|
rtResult = 0
|
||
|
|
||
|
if rtTester.IsValidImageSpecified() != 0:
|
||
|
# look for a renderWindow ImageWindow or ImageViewer
|
||
|
# first check for some common names
|
||
|
if "renWin" in local_variables_dict.keys():
|
||
|
rtTester.SetRenderWindow(renWin)
|
||
|
if threshold == -1:
|
||
|
threshold = 10
|
||
|
else:
|
||
|
if threshold == -1:
|
||
|
threshold = 5
|
||
|
|
||
|
if "viewer" in local_variables_dict.keys():
|
||
|
rtTester.SetRenderWindow(viewer.GetRenderWindow())
|
||
|
viewer.Render()
|
||
|
elif "imgWin" in local_variables_dict.keys():
|
||
|
rtTester.SetRenderWindow(imgWin)
|
||
|
imgWin.Render()
|
||
|
rtResult = rtTester.RegressionTest(threshold)
|
||
|
|
||
|
if rtResult == 0:
|
||
|
sys.exit(1)
|
||
|
sys.exit(0)
|