diff --git a/ThirdParty/AllMake.stage4 b/ThirdParty/AllMake.stage4
index e8dacb1cf..2571ab8c2 100755
--- a/ThirdParty/AllMake.stage4
+++ b/ThirdParty/AllMake.stage4
@@ -76,9 +76,13 @@ then
( rpm_make -p ParaView-3.8.1 -s ParaView-3.8.1.spec -u http://www.paraview.org/files/v3.8/ParaView-3.8.1.tar.gz \
-f --define='_qmakePath $QT_BIN_DIR/qmake'
)
+# ( rpm_make -p ParaView-3.14.1 -s ParaView-3.14.1.spec -u http://www.paraview.org/files/v3.14/ParaView-3.14.1-Source.tar.gz \
+# -f --define='_qmakePath $QT_BIN_DIR/qmake'
+# )
else
echo "WARNING: "
echo "WARNING: Skipping the installation of ParaView-3.8.1."
+# echo "WARNING: Skipping the installation of ParaView-3.14.1."
echo "WARNING: Please make sure the QT_BIN_DIR environment variable properly"
echo "WARNING: initialized in the file prefs.sh or prefs.csh"
echo "WARNING: The command \$QT_BIN_DIR/qmake needs to be valid"
diff --git a/ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_0_ParaView.git_0f43430 b/ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_0_ParaView.git_0f43430
new file mode 100644
index 000000000..682a2039a
--- /dev/null
+++ b/ThirdParty/rpmBuild/SOURCES/ParaView-3.14.1.patch_0_ParaView.git_0f43430
@@ -0,0 +1,243901 @@
+diff -x .git -ruN orig/Applications/ParaView/ParaViewFilters.xml git_0f43430/Applications/ParaView/ParaViewFilters.xml
+--- orig/Applications/ParaView/ParaViewFilters.xml 2012-04-02 12:55:26.000000000 -0400
++++ git_0f43430/Applications/ParaView/ParaViewFilters.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -63,9 +63,30 @@
+
+
+
+-
+-
+-
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+
+
+
+@@ -83,9 +104,6 @@
+
+
+
+-
+-
+-
+
+
+
+@@ -100,10 +118,8 @@
+
+
+
+-
+
+
+-
+
+
+
+@@ -115,7 +131,7 @@
+
+
+
+-
++
+
+
+
+@@ -140,6 +156,7 @@
+
+
+
++
+
+
+
+diff -x .git -ruN orig/Applications/ParaView/ParaViewReaders.xml git_0f43430/Applications/ParaView/ParaViewReaders.xml
+--- orig/Applications/ParaView/ParaViewReaders.xml 2012-04-02 12:55:26.000000000 -0400
++++ git_0f43430/Applications/ParaView/ParaViewReaders.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -70,4 +70,6 @@
+
+
+
++
++
+
+diff -x .git -ruN orig/Applications/ParaView/ParaViewSources.xml git_0f43430/Applications/ParaView/ParaViewSources.xml
+--- orig/Applications/ParaView/ParaViewSources.xml 2012-04-02 12:55:26.000000000 -0400
++++ git_0f43430/Applications/ParaView/ParaViewSources.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -24,4 +24,5 @@
+
+
+
++
+
+diff -x .git -ruN orig/Applications/ParaView/Testing/Python/CMakeLists.txt git_0f43430/Applications/ParaView/Testing/Python/CMakeLists.txt
+--- orig/Applications/ParaView/Testing/Python/CMakeLists.txt 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/Applications/ParaView/Testing/Python/CMakeLists.txt 2012-04-20 23:43:06.000000000 -0400
+@@ -79,4 +79,32 @@
+
+ # TODO: remote rendering tests and reverse connect tests.
+
++# only enable TestPythonAnnotationFilter test if numpy is available
++include("TestNumPy")
++
++IF ("1" STREQUAL ${HAS_NUMPY})
++ # Add pvpython tests
++ add_test("pvpython.TestPythonAnnotationFilter"
++ ${PARAVIEW_PYTHON_EXECUTABLE}
++ --data=${PARAVIEW_DATA_ROOT}/Data/can.ex2
++ ${CMAKE_CURRENT_SOURCE_DIR}/TestPythonAnnotationFilter.py)
++ENDIF ("1" STREQUAL ${HAS_NUMPY})
++
+ ENDIF (PARAVIEW_DATA_ROOT)
++
++# Python Multi-servers test
++add_test("py-multi-servers.TestMultiServersConfig"
++ ${PARAVIEW_SMTESTDRIVER_EXECUTABLE}
++ --test-multi-servers 2
++ --server ${PARAVIEW_SERVER_EXECUTABLE}
++ --client ${PARAVIEW_PYTHON_EXECUTABLE}
++ ${CMAKE_CURRENT_SOURCE_DIR}/TestMultiServersConfig.py
++)
++
++add_test("py-multi-servers.TestMultiServersRemoteProxy"
++ ${PARAVIEW_SMTESTDRIVER_EXECUTABLE}
++ --test-multi-servers 3
++ --server ${PARAVIEW_SERVER_EXECUTABLE}
++ --client ${PARAVIEW_PYTHON_EXECUTABLE}
++ ${CMAKE_CURRENT_SOURCE_DIR}/TestMultiServersRemoteProxy.py
++)
+diff -x .git -ruN orig/Applications/ParaView/Testing/Python/TestMultiServersConfig.py git_0f43430/Applications/ParaView/Testing/Python/TestMultiServersConfig.py
+--- orig/Applications/ParaView/Testing/Python/TestMultiServersConfig.py 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/Python/TestMultiServersConfig.py 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,153 @@
++from paraview.simple import *
++from paraview import servermanager
++
++import time
++
++# Make sure the test driver know that process has properly started
++print "Process started"
++errors = 0
++
++#-------------------- Helpers methods ----------------
++def getHost(url):
++ return url.split(':')[1][2:]
++
++def getScheme(url):
++ return url.split(':')[0]
++
++def getPort(url):
++ return int(url.split(':')[2])
++#--------------------
++import os
++
++def findInSubdirectory(filename, subdirectory=''):
++ if subdirectory:
++ path = subdirectory
++ else:
++ path = os.getcwd()
++ for root, dirs, names in os.walk(path):
++ for name in names:
++ if (name.find(filename) > -1) and ( (name.find('.dll') > -1) or (name.find('.so') > -1) or (name.find('.dylib') > -1)):
++ return os.path.join(root, name)
++ raise 'File not found'
++#--------------------
++
++print "Start multi-server testing"
++enableMultiServer()
++
++options = servermanager.vtkProcessModule.GetProcessModule().GetOptions()
++available_server_urls = options.GetServerURL().split('|')
++built_in_connection = servermanager.ActiveConnection
++
++# Test if the built-in connection is here
++if (len(servermanager.MultiServerConnections) != 1):
++ errors += 1
++ print "Error pvpython should be connected to a built-in session. Currently connected to ", servermanager.MultiServerConnections
++
++url = available_server_urls[0]
++print "Connect to first server ", url
++server1_connection = Connect(getHost(url), getPort(url))
++
++# Test that we have one more connection
++if (len(servermanager.MultiServerConnections) != 2):
++ errors += 1
++ print "Error pvpython should be connected to a built-in session + one remote one. Currently connected to ", servermanager.MultiServerConnections
++
++url = available_server_urls[1]
++print "Connect to second server ", url
++server2_connection = Connect(getHost(url), getPort(url))
++
++# Test that we have one more connection
++if (len(servermanager.MultiServerConnections) != 3):
++ errors += 1
++ print "Error pvpython should be connected to a built-in session + two remote one. Currently connected to ", servermanager.MultiServerConnections
++
++print "Available connections: ", servermanager.MultiServerConnections
++
++# Test that last created connection is the active one
++if ( servermanager.ActiveConnection != server2_connection):
++ errors += 1
++ print "Error Invalid active connection. Expected ", server2_connection, " and got ", servermanager.ActiveConnection
++
++# Test that switchActiveConnection is working as expected
++switchActiveConnection(server1_connection, globals())
++if ( servermanager.ActiveConnection != server1_connection):
++ errors += 1
++ print "Error Invalid active connection. Expected ", server1_connection, " and got ", servermanager.ActiveConnection
++
++# Test that switchActiveConnection is working as expected
++switchActiveConnection(built_in_connection, globals())
++if ( servermanager.ActiveConnection != built_in_connection):
++ errors += 1
++ print "Error Invalid active connection. Expected ", built_in_connection, " and got ", servermanager.ActiveConnection
++
++# Test that switchActiveConnection is working as expected
++switchActiveConnection(server2_connection, globals())
++if ( servermanager.ActiveConnection != server2_connection):
++ errors += 1
++ print "Error Invalid active connection. Expected ", server2_connection, " and got ", servermanager.ActiveConnection
++
++
++# Load plugin on server2
++switchActiveConnection(server2_connection, globals())
++LoadDistributedPlugin("PacMan", True, globals())
++
++# Create PacMan on server2
++pacMan_s2 = PacMan()
++
++# Swtich to server1 and Create PacMan ==> This should fail
++switchActiveConnection(server1_connection, globals())
++try:
++ pacMan_s1 = PacMan()
++ errors += 1
++ print "Error: PacMan should not be available on Server1"
++except NameError:
++ print "OK: PacMan is not available on server1"
++
++# Swtich to server2 with globals and switch back to server1 with not updating the globals
++switchActiveConnection(server2_connection, globals())
++switchActiveConnection(server1_connection)
++
++# Create PacMan ==> This should fail
++try:
++ pacMan_s1 = PacMan()
++ errors += 1
++ print "Error: PacMan should not be available on Server1"
++except RuntimeError:
++ print "OK: PacMan is not available on server1"
++
++# Make sure built-in as not the pacMan
++switchActiveConnection(server2_connection, globals())
++switchActiveConnection(built_in_connection, globals())
++try:
++ pacMan_builtin = PacMan()
++ errors += 1
++ print "Error: PacMan should not be available on built-in"
++except NameError:
++ print "OK: PacMan is not available on built-in"
++
++# Load plugin localy for built-in
++# Create PacMan ==> This should be OK on built-in
++switchActiveConnection(built_in_connection, globals())
++LoadDistributedPlugin("PacMan", False, globals())
++pacMan_builtin = PacMan()
++print "After loading the plugin locally in built-in, the PacMan definition is available"
++
++# Swtich to server1 and Create PacMan ==> This should fail
++switchActiveConnection(server1_connection, globals())
++try:
++ pacMan_s1 = PacMan()
++ errors += 1
++ print "Error: PacMan should not be available on Server1"
++except NameError:
++ print "OK: PacMan is still not available on server1"
++
++# Disconnect and quit application...
++Disconnect()
++print "Available connections after disconnect: ", servermanager.MultiServerConnections
++Disconnect()
++print "Available connections after disconnect: ", servermanager.MultiServerConnections
++Disconnect()
++print "Available connections after disconnect: ", servermanager.MultiServerConnections
++
++if errors > 0:
++ raise RuntimeError, "An error occured during the execution"
+diff -x .git -ruN orig/Applications/ParaView/Testing/Python/TestMultiServersRemoteProxy.py git_0f43430/Applications/ParaView/Testing/Python/TestMultiServersRemoteProxy.py
+--- orig/Applications/ParaView/Testing/Python/TestMultiServersRemoteProxy.py 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/Python/TestMultiServersRemoteProxy.py 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,151 @@
++from paraview.simple import *
++from paraview import servermanager
++
++import time
++
++# Make sure the test driver know that process has properly started
++print "Process started"
++errors = 0
++
++#-------------------- Helpers methods ----------------
++def getHost(url):
++ return url.split(':')[1][2:]
++
++def getScheme(url):
++ return url.split(':')[0]
++
++def getPort(url):
++ return int(url.split(':')[2])
++#--------------------
++
++print "Start multi-server testing"
++enableMultiServer()
++
++options = servermanager.vtkProcessModule.GetProcessModule().GetOptions()
++available_server_urls = options.GetServerURL().split('|')
++built_in_connection = servermanager.ActiveConnection
++
++# Test if the built-in connection is here
++if (len(servermanager.MultiServerConnections) != 1):
++ errors += 1
++ print "Error pvpython should be connected to a built-in session. Currently connected to ", servermanager.MultiServerConnections
++
++url = available_server_urls[0]
++print "Connect to first server ", url
++server1_connection = Connect(getHost(url), getPort(url))
++
++# Test that we have one more connection
++if (len(servermanager.MultiServerConnections) != 2):
++ errors += 1
++ print "Error pvpython should be connected to a built-in session + one remote one. Currently connected to ", servermanager.MultiServerConnections
++
++url = available_server_urls[1]
++print "Connect to second server ", url
++server2_connection = Connect(getHost(url), getPort(url))
++
++# Test that we have one more connection
++if (len(servermanager.MultiServerConnections) != 3):
++ errors += 1
++ print "Error pvpython should be connected to a built-in session + two remote one. Currently connected to ", servermanager.MultiServerConnections
++
++url = available_server_urls[2]
++print "Connect to third server ", url
++server3_connection = Connect(getHost(url), getPort(url))
++
++# Test that we have one more connection
++if (len(servermanager.MultiServerConnections) != 4):
++ errors += 1
++ print "Error pvpython should be connected to a built-in session + three remote one. Currently connected to ", servermanager.MultiServerConnections
++
++print "Available connections: ", servermanager.MultiServerConnections
++
++# Test that last created connection is the active one
++if ( servermanager.ActiveConnection != server3_connection):
++ errors += 1
++ print "Error Invalid active connection. Expected ", server3_connection, " and got ", servermanager.ActiveConnection
++
++# ------- Do the proper RemoteSourceProxy testing --------------
++
++# Create a set of sphere across the remote sessions
++switchActiveConnection(server1_connection, globals())
++rSphere1 = Sphere(ThetaResolution=10, PhiResolution=10)
++rSphere1.UpdatePipeline()
++size1 = rSphere1.GetDataInformation().GetNumberOfPoints()
++
++switchActiveConnection(server2_connection, globals())
++rSphere2 = Sphere(ThetaResolution=11, PhiResolution=11)
++rSphere2.UpdatePipeline()
++size2 = rSphere2.GetDataInformation().GetNumberOfPoints()
++
++switchActiveConnection(server3_connection, globals())
++rSphere3 = Sphere(ThetaResolution=12, PhiResolution=12)
++rSphere3.UpdatePipeline()
++size3 = rSphere3.GetDataInformation().GetNumberOfPoints()
++
++# Create remote source on the built-in session
++switchActiveConnection(built_in_connection, globals())
++remoteProxy = RemoteSourceProxy()
++remoteProxy.SetExternalProxy(rSphere1, 0)
++remoteProxy.UpdatePipeline()
++
++# Test that the data in built-in is the same size as the remote one
++remoteProxy.UpdatePipeline()
++size = remoteProxy.GetDataInformation().GetNumberOfPoints()
++if ( size1 != size ):
++ errors += 1
++ print "Error Invalid data size. Expected ", size1, " and got ", size
++else:
++ print "Found size ", size, " for server 1"
++
++# Switch to proxy on server 2 and test size
++remoteProxy.SetExternalProxy(rSphere2, 0)
++remoteProxy.UpdatePipeline()
++size = remoteProxy.GetDataInformation().GetNumberOfPoints()
++if ( size2 != size ):
++ errors += 1
++ print "Error Invalid data size. Expected ", size2, " and got ", size
++else:
++ print "Found size ", size, " for server 2"
++
++# Switch to proxy on server 3 and test size
++remoteProxy.SetExternalProxy(rSphere3, 0)
++remoteProxy.UpdatePipeline()
++size = remoteProxy.GetDataInformation().GetNumberOfPoints()
++if ( size3 != size ):
++ errors += 1
++ print "Error Invalid data size. Expected ", size3, " and got ", size
++else:
++ print "Found size ", size, " for server 3"
++
++# Change data size on server 3 and make sure the change get propagated to the built-in
++rSphere3.ThetaResolution = 13
++rSphere3.PhiResolution = 13
++rSphere3.UpdatePipeline()
++size3 = rSphere3.GetDataInformation().GetNumberOfPoints()
++
++remoteProxy.UpdatePipeline()
++size = remoteProxy.GetDataInformation().GetNumberOfPoints()
++if ( size3 != size ):
++ errors += 1
++ print "Error Invalid data size. Expected ", size3, " and got ", size
++else:
++ print "Found size ", size, " for server 3 after update"
++
++# Make sure the size is not 0
++if ( size == 0 or size1 == 0 or size1 == 0 or size1 == 0):
++ errors += 1
++ print "Error Invalid data size. None of them should be 0"
++
++# --------------------------------------------------------------
++# Disconnect and quit application...
++Disconnect()
++print "Available connections after disconnect: ", servermanager.MultiServerConnections
++Disconnect()
++print "Available connections after disconnect: ", servermanager.MultiServerConnections
++Disconnect()
++print "Available connections after disconnect: ", servermanager.MultiServerConnections
++Disconnect()
++print "Available connections after disconnect: ", servermanager.MultiServerConnections
++
++if errors > 0:
++ raise RuntimeError, "An error occured during the execution"
+diff -x .git -ruN orig/Applications/ParaView/Testing/Python/TestPythonAnnotationFilter.py git_0f43430/Applications/ParaView/Testing/Python/TestPythonAnnotationFilter.py
+--- orig/Applications/ParaView/Testing/Python/TestPythonAnnotationFilter.py 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/Python/TestPythonAnnotationFilter.py 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,119 @@
++from paraview.simple import *
++from paraview import servermanager
++
++import time
++
++# Make sure the test driver know that process has properly started
++print "Process started"
++errors = 0
++
++#-------------------- Comparison helper ----------------------
++
++def equal(a, b):
++ if a == b:
++ return True
++ aList = a.replace(","," ").replace("["," ").replace("]", " ").split(" ")
++ bList = b.replace(","," ").replace("["," ").replace("]", " ").split(" ")
++ size = len(aList)
++ if size != len(bList):
++ return False
++ for i in xrange(size):
++ if len(aList[i]) > 0:
++ af = float(aList[i])
++ bf = float(bList[i])
++ if ((af-bf)*(af-bf)) > 0.000001:
++ return False
++ return True
++
++#-------------------- Start testing --------------------------
++
++print "Start PythonAnnotationFilter testing"
++
++options = servermanager.vtkProcessModule.GetProcessModule().GetOptions()
++dataToLoad = options.GetParaViewDataName()
++
++
++# Load data file
++reader = OpenDataFile(dataToLoad)
++reader.GlobalVariables = ['KE', 'XMOM', 'YMOM', 'ZMOM', 'NSTEPS', 'TMSTEP']
++reader.UpdatePipeline()
++
++# Time management
++timesteps = servermanager.ProxyManager().GetProxy('timekeeper','TimeKeeper').TimestepValues
++time = timesteps[5]
++
++# Merge blocks
++merge = MergeBlocks()
++
++# Annotation filter
++annotation = PythonAnnotation()
++annotation.Expression = '"%f %f %f" % (XMOM[t_index], YMOM[t_index], ZMOM[t_index])'
++
++# Update time and trigger pipeline execution
++time = timesteps[5]
++annotation.UpdatePipeline(time)
++
++annotation.SMProxy.UpdatePropertyInformation()
++value = annotation.SMProxy.GetProperty('AnnotationValue').GetElement(0)
++expected = "0.012132 0.001378 -1158.252808"
++
++if not equal(value, expected):
++ errors += 1
++ print "Error: Expected ", expected, " and got ", value
++
++# Update time and trigger pipeline execution
++time = timesteps[7]
++annotation.UpdatePipeline(time)
++
++annotation.SMProxy.UpdatePropertyInformation()
++value = annotation.SMProxy.GetProperty('AnnotationValue').GetElement(0)
++expected = "0.013970 0.001319 -1141.020020"
++
++if not equal(value, expected):
++ errors += 1
++ print "Error: Expected ", expected, " and got ", value
++
++# Check time infos
++annotation.Expression = '"%i %f %s" % (t_index, t_value, str(t_range))'
++
++# Update time and trigger pipeline execution
++time = timesteps[7]
++annotation.UpdatePipeline(time)
++
++annotation.SMProxy.UpdatePropertyInformation()
++value = annotation.SMProxy.GetProperty('AnnotationValue').GetElement(0)
++expected = "7 0.000700 [0, 0.00429999]"
++
++if not equal(value, expected):
++ errors += 1
++ print "Error: Expected ", expected, " and got ", value
++
++# Update time and trigger pipeline execution
++time = timesteps[27]
++annotation.UpdatePipeline(time)
++
++annotation.SMProxy.UpdatePropertyInformation()
++value = annotation.SMProxy.GetProperty('AnnotationValue').GetElement(0)
++expected = "27 0.002700 [0, 0.00429999]"
++
++if not equal(value, expected):
++ errors += 1
++ print "Error: Expected ", expected, " and got ", value
++
++# Update time and trigger pipeline execution
++time = timesteps[len(timesteps)-1]
++annotation.UpdatePipeline(time)
++
++annotation.SMProxy.UpdatePropertyInformation()
++value = annotation.SMProxy.GetProperty('AnnotationValue').GetElement(0)
++expected = "43 0.004300 [0, 0.00429999]"
++
++if not equal(value, expected):
++ errors += 1
++ print "Error: Expected ", expected, " and got ", value
++
++# Disconnect and quit application...
++Disconnect()
++
++if errors > 0:
++ raise RuntimeError, "An error occured during the execution"
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/CMakeLists.txt git_0f43430/Applications/ParaView/Testing/XML/CMakeLists.txt
+--- orig/Applications/ParaView/Testing/XML/CMakeLists.txt 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/Applications/ParaView/Testing/XML/CMakeLists.txt 2012-04-20 23:43:06.000000000 -0400
+@@ -142,6 +142,10 @@
+ SET(TESTS_WITH_BASELINES ${TESTS_WITH_BASELINES} ${CMAKE_CURRENT_SOURCE_DIR}/FindDataDialog.xml)
+ ENDIF ("1" STREQUAL ${HAS_NUMPY})
+
++# These tests cannot be run using ctest -j since they are affected by focus
++# changed events.
++set (AnimatePipelineTime_FORCE_SERIAL TRUE)
++
+ # Set properties for CTH tests
+ set(CTHAMRBaseline_BREAK TRUE)
+
+@@ -202,6 +206,7 @@
+
+ SET(ExtractLevel_BREAK TRUE)
+
++SET(Fractal2D_BREAK TRUE)
+
+ # Add image threshold overrides for tests.
+ # Generally all tests with wireframes need higher thresholds.
+@@ -350,74 +355,79 @@
+
+ # List of test Enable for collaboration
+ set (AnimatePipelineTime_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (CalcParens_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (Calculator_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (CameraLink_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ColorEditor2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ColorEditor4_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (CompositeSurfaceSelection_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (CalcParens_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (Calculator_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (CameraLink_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ColorEditor2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ColorEditor4_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (CompositeSurfaceSelection_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (Contour_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ContourRange_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ContourRange_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (CreateDelete_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (CustomSourceProbe_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (D3SmallCells_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (DualSphereAnimation_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (EnSight_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ExodusIIPanel_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ExodusModeShapes_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ExodusXML_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ExTimeseries_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ExTimeseries2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ExtractBlock_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ExtractLevel_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (FindDataDialog_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (FFTOverTime_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (Flow_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (Flow2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (Fractal2D_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (GridConnectivity_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (NormalGlyphs_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ObjectInspectorSphere_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (OpenSaveData_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (Plot3DReader_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (PlotEdges_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (PlotEdges2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (PropertyConversion_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (CustomSourceProbe_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (D3SmallCells_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (DualSphereAnimation_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (EnSight_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ExodusIIPanel_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ExodusModeShapes_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ExodusXML_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ExTimeseries_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ExTimeseries2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ExtractBlock_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ExtractLevel_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (FindDataDialog_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (FFTOverTime_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (Flow_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (Flow2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (Fractal2D_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (GridConnectivity_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (NormalGlyphs_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ObjectInspectorSphere_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (OpenSaveData_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (Plot3DReader_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (PlotEdges_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (PlotEdges2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (PropertyConversion_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (PropertyConversion1_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (PropertyConversion2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-# disabling since the state file doesn't have view layout and such old state
+-# files are not currently supported in collaborative mode.
+-#set (PropertyLink_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (ReadXMLPolyDataFileSeries_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (RepresentationSelector_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (SaveColorMap_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (SaveCSV_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (SelectReader_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (SimpleInteraction_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (Slice_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++## disabling since the state file doesn't have view layout and such old state
++## files are not currently supported in collaborative mode.
++##set (PropertyLink_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (ReadXMLPolyDataFileSeries_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (RepresentationSelector_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (SaveColorMap_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (SaveCSV_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (SelectReader_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (SimpleInteraction_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (Slice_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (SpreadSheet1_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (SpreadSheet2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (SPTimeseries_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (SpyPlotHistoryReader_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (StreamTracerUpdates_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (SpreadSheet2_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (SPTimeseries_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (SpyPlotHistoryReader_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (StreamTracerUpdates_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (TemporalInterpolator_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (TemporalShiftScale_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (Tessellate_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (Threshold_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (UnstructuredOutline_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (Tessellate_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (Threshold_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (UnstructuredOutline_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (VariableSelector_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (VariableSelector1_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (XdmfRead_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (XdmfReadImageData_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (XdmfReadImageDataCollection_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (XdmfReadRectilinearGrid_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (XdmfReadRectilinearGridCollection_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (XdmfReadStructuredGrid_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (XdmfReadStructuredGridCollection_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (XdmfGridAttributes_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+-set (XYChart_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (XdmfReadImageData_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (XdmfReadImageDataCollection_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (XdmfReadRectilinearGrid_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (XdmfReadRectilinearGridCollection_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (XdmfReadStructuredGrid_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (XdmfReadStructuredGridCollection_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (XdmfGridAttributes_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
++#set (XYChart_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+ set (ZLibXDMF_ENABLE_COLLAB ${PARAVIEW_COLLABORATION_TESTING})
+
++
++set(TESTS_WITH_MULTI_SERVERS_3
++ ${CMAKE_CURRENT_SOURCE_DIR}/TestMultiServer3.xml
++)
++
+ IF (PARAVIEW_DATA_ROOT)
+ set (TESTS_WITHOUT_BASELINES
+ ${TESTS_WITHOUT_BASELINES}
+@@ -460,4 +470,28 @@
+ BASELINE_DIR ${PARAVIEW_DATA_ROOT}/Baseline
+ TEST_SCRIPTS ${TESTS_WITH_BASELINES})
+
++ add_multi_server_tests("pvcs-multi-servers" 3
++ BASELINE_DIR ${PARAVIEW_DATA_ROOT}/Baseline
++ TEST_SCRIPTS ${TESTS_WITH_MULTI_SERVERS_3})
++
++ add_tile_display_tests("pvcs-tile-display" 2 1
++ BASELINE_DIR ${PARAVIEW_DATA_ROOT}/Baseline
++ TEST_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/TileDisplayScatterPlot-2x1.xml)
++
++ add_tile_display_tests("pvcs-tile-display" 2 2
++ BASELINE_DIR ${PARAVIEW_DATA_ROOT}/Baseline
++ TEST_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/TileDisplayScatterPlot-2x2.xml)
++
++ add_tile_display_tests("pvcs-tile-display" 1 2
++ BASELINE_DIR ${PARAVIEW_DATA_ROOT}/Baseline
++ TEST_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/TileDisplay3DTesting-1x2.xml)
++
++ add_tile_display_tests("pvcs-tile-display" 2 1
++ BASELINE_DIR ${PARAVIEW_DATA_ROOT}/Baseline
++ TEST_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/TileDisplay3DTesting-2x1.xml)
++
++ add_tile_display_tests("pvcs-tile-display" 2 2
++ BASELINE_DIR ${PARAVIEW_DATA_ROOT}/Baseline
++ TEST_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/TileDisplay3DTesting-2x2.xml)
++
+ ENDIF (PARAVIEW_DATA_ROOT)
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/CameraLink.xml git_0f43430/Applications/ParaView/Testing/XML/CameraLink.xml
+--- orig/Applications/ParaView/Testing/XML/CameraLink.xml 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/Applications/ParaView/Testing/XML/CameraLink.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -23,5 +23,4 @@
+
+
+
+-
+
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/ExtractLevel.xml git_0f43430/Applications/ParaView/Testing/XML/ExtractLevel.xml
+--- orig/Applications/ParaView/Testing/XML/ExtractLevel.xml 2012-04-02 12:55:26.000000000 -0400
++++ git_0f43430/Applications/ParaView/Testing/XML/ExtractLevel.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -3,6 +3,8 @@
+
+
+
++
++
+
+
+
+@@ -23,8 +25,5 @@
+
+
+
+-
+-
+-
+
+
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/EyeDomeLighting.xml git_0f43430/Applications/ParaView/Testing/XML/EyeDomeLighting.xml
+--- orig/Applications/ParaView/Testing/XML/EyeDomeLighting.xml 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/Applications/ParaView/Testing/XML/EyeDomeLighting.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -10,6 +10,4 @@
+
+
+
+-
+-
+
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/Fractal2D.xml git_0f43430/Applications/ParaView/Testing/XML/Fractal2D.xml
+--- orig/Applications/ParaView/Testing/XML/Fractal2D.xml 2012-04-02 12:55:26.000000000 -0400
++++ git_0f43430/Applications/ParaView/Testing/XML/Fractal2D.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -4,9 +4,9 @@
+
+
+
+-
+
++
+
+
+
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/OpenHelp.xml git_0f43430/Applications/ParaView/Testing/XML/OpenHelp.xml
+--- orig/Applications/ParaView/Testing/XML/OpenHelp.xml 2012-04-02 12:55:26.000000000 -0400
++++ git_0f43430/Applications/ParaView/Testing/XML/OpenHelp.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -1,10 +1,7 @@
+
+
+
+-
+
+
+-
+-
+-
++
+
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/SpyPlotHistoryReader.xml git_0f43430/Applications/ParaView/Testing/XML/SpyPlotHistoryReader.xml
+--- orig/Applications/ParaView/Testing/XML/SpyPlotHistoryReader.xml 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/Applications/ParaView/Testing/XML/SpyPlotHistoryReader.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -3,15 +3,17 @@
+
+
+
++
+
+
+
+
+
+
+-
+-
+-
++
++
++
++
+
+
+
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/TestMultiServer3.xml git_0f43430/Applications/ParaView/Testing/XML/TestMultiServer3.xml
+--- orig/Applications/ParaView/Testing/XML/TestMultiServer3.xml 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/XML/TestMultiServer3.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,43 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/TileDisplay3DTesting-1x2.xml git_0f43430/Applications/ParaView/Testing/XML/TileDisplay3DTesting-1x2.xml
+--- orig/Applications/ParaView/Testing/XML/TileDisplay3DTesting-1x2.xml 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/XML/TileDisplay3DTesting-1x2.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,41 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/TileDisplay3DTesting-2x1.xml git_0f43430/Applications/ParaView/Testing/XML/TileDisplay3DTesting-2x1.xml
+--- orig/Applications/ParaView/Testing/XML/TileDisplay3DTesting-2x1.xml 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/XML/TileDisplay3DTesting-2x1.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,41 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/TileDisplay3DTesting-2x2.xml git_0f43430/Applications/ParaView/Testing/XML/TileDisplay3DTesting-2x2.xml
+--- orig/Applications/ParaView/Testing/XML/TileDisplay3DTesting-2x2.xml 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/XML/TileDisplay3DTesting-2x2.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,44 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/TileDisplayScatterPlot-2x1.xml git_0f43430/Applications/ParaView/Testing/XML/TileDisplayScatterPlot-2x1.xml
+--- orig/Applications/ParaView/Testing/XML/TileDisplayScatterPlot-2x1.xml 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/XML/TileDisplayScatterPlot-2x1.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,16 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff -x .git -ruN orig/Applications/ParaView/Testing/XML/TileDisplayScatterPlot-2x2.xml git_0f43430/Applications/ParaView/Testing/XML/TileDisplayScatterPlot-2x2.xml
+--- orig/Applications/ParaView/Testing/XML/TileDisplayScatterPlot-2x2.xml 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/Applications/ParaView/Testing/XML/TileDisplayScatterPlot-2x2.xml 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,18 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff -x .git -ruN orig/CMake/ParaViewCommon.cmake git_0f43430/CMake/ParaViewCommon.cmake
+--- orig/CMake/ParaViewCommon.cmake 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/CMake/ParaViewCommon.cmake 2012-04-20 23:43:06.000000000 -0400
+@@ -344,9 +344,6 @@
+ # Set this to get VTKs FOR LOOP "fix" to apply too all of Paraviews Source.
+ SET(VTK_USE_FOR_SCOPE_WORKAROUND TRUE)
+
+-CONFIGURE_FILE(${ParaView_SOURCE_DIR}/VTK/Utilities/TclTk/.NoDartCoverage
+- ${ParaView_BINARY_DIR}/VTK/.NoDartCoverage)
+-
+ OPTION(PARAVIEW_DISABLE_VTK_TESTING "Disable VTK Testing" OFF)
+ MARK_AS_ADVANCED(PARAVIEW_DISABLE_VTK_TESTING)
+ IF (PARAVIEW_DISABLE_VTK_TESTING)
+@@ -403,7 +400,7 @@
+ )
+ ENDIF(PARAVIEW_ENABLE_PYTHON)
+
+-SET(kits Common Charts Filtering GenericFiltering IO Imaging Rendering Parallel Graphics Hybrid VolumeRendering Widgets)
++SET(kits Common AMR Charts Filtering GenericFiltering IO Imaging Rendering Parallel Graphics Hybrid VolumeRendering Widgets)
+ FOREACH(kit ${kits})
+ SET(VTK_INCLUDE_DIR ${VTK_INCLUDE_DIR}
+ ${ParaView_SOURCE_DIR}/VTK/${kit}
+diff -x .git -ruN orig/CMake/ParaViewTestingMacros.cmake git_0f43430/CMake/ParaViewTestingMacros.cmake
+--- orig/CMake/ParaViewTestingMacros.cmake 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/CMake/ParaViewTestingMacros.cmake 2012-04-20 23:43:06.000000000 -0400
+@@ -27,6 +27,8 @@
+ set (counter 0)
+ set (extra_args)
+ set (full_test_name)
++ set (force_serial FALSE)
++
+ while (${counter} LESS ${TEST_GROUP_SIZE})
+ list(LENGTH ACT_TEST_SCRIPTS num_tests)
+ if (num_tests)
+@@ -57,6 +59,9 @@
+ if (DEFINED ${test_name}_BREAK)
+ set (counter 100000) # stop the group.
+ endif (DEFINED ${test_name}_BREAK)
++ if (${test_name}_FORCE_SERIAL)
++ set (force_serial TRUE)
++ endif (${test_name}_FORCE_SERIAL)
+ endwhile (${counter} LESS ${TEST_GROUP_SIZE})
+
+ if (extra_args)
+@@ -66,6 +71,10 @@
+ ${extra_args}
+ --exit
+ )
++ if (force_serial)
++ set_tests_properties("${prefix}${full_test_name}" PROPERTIES RUN_SERIAL ON)
++ message(STATUS "Running in serial \"${prefix}${full_test_name}\"")
++ endif()
+ endif (extra_args)
+ endwhile (ACT_TEST_SCRIPTS)
+
+@@ -133,6 +142,69 @@
+ ${extra_args}
+ --exit
+ )
++ if (${test_name}_FORCE_SERIAL)
++ set_tests_properties("${prefix}.${test_name}" PROPERTIES RUN_SERIAL ON)
++ message(STATUS "Running in serial \"${prefix}.${test_name}\"")
++ endif (${test_name}_FORCE_SERIAL)
+ endif()
+ endforeach(test_script)
+ ENDFUNCTION(add_multi_client_tests)
++
++FUNCTION(add_multi_server_tests prefix nbServers)
++ PV_PARSE_ARGUMENTS(ACT "TEST_SCRIPTS;BASELINE_DIR" "" ${ARGN})
++
++ foreach (test_script ${ACT_TEST_SCRIPTS})
++ get_filename_component(test_name ${test_script} NAME_WE)
++ set (extra_args)
++ process_args(extra_args)
++ add_test("${prefix}.${test_name}"
++ ${PARAVIEW_SMTESTDRIVER_EXECUTABLE}
++ --test-multi-servers ${nbServers}
++ --server ${PARAVIEW_SERVER_EXECUTABLE}
++
++ --client ${CLIENT_EXECUTABLE}
++ -dr
++ --disable-light-kit
++ --test-directory=${PARAVIEW_TEST_DIR}
++ --test-script=${test_script}
++ ${extra_args}
++ --exit
++ )
++ endforeach(test_script)
++ENDFUNCTION(add_multi_server_tests)
++
++FUNCTION (add_tile_display_tests prefix tdx tdy )
++ PV_PARSE_ARGUMENTS(ACT "TEST_SCRIPTS;BASELINE_DIR" "" ${ARGN})
++
++
++ MATH(EXPR REQUIRED_CPU '${tdx}*${tdy}-1') # -1 is for LESS
++ if (${REQUIRED_CPU} LESS ${VTK_MPI_MAX_NUMPROCS})
++ foreach (test_script ${ACT_TEST_SCRIPTS})
++
++ get_filename_component(test_name ${test_script} NAME_WE)
++ set (extra_args)
++ process_args(extra_args)
++ add_test("${prefix}-${tdx}x${tdy}.${test_name}"
++ ${PARAVIEW_SMTESTDRIVER_EXECUTABLE}
++ --test-tiled ${tdx} ${tdy}
++ --server ${PARAVIEW_SERVER_EXECUTABLE}
++
++ --client ${CLIENT_EXECUTABLE}
++ -dr
++ --disable-light-kit
++ --test-directory=${PARAVIEW_TEST_DIR}
++ --test-script=${test_script}
++ --tile-image-prefix=${PARAVIEW_TEST_DIR}/${test_name}
++
++ ${extra_args}
++ --exit
++ )
++ set_property(TEST "${prefix}-${tdx}x${tdy}.${test_name}"
++ PROPERTY ENVIRONMENT "PV_ICET_WINDOW_BORDERS=1")
++ if (${test_name}_FORCE_SERIAL)
++ set_tests_properties("${prefix}.${test_name}" PROPERTIES RUN_SERIAL ON)
++ message(STATUS "Running in serial \"${prefix}.${test_name}\"")
++ endif (${test_name}_FORCE_SERIAL)
++ endforeach(test_script)
++ endif(${REQUIRED_CPU} LESS ${VTK_MPI_MAX_NUMPROCS})
++ENDFUNCTION (add_tile_display_tests)
+diff -x .git -ruN orig/CMakeLists.txt git_0f43430/CMakeLists.txt
+--- orig/CMakeLists.txt 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/CMakeLists.txt 2012-04-20 23:43:06.000000000 -0400
+@@ -62,9 +62,9 @@
+ SET (PARAVIEW_VERSION_MAJOR 3)
+ SET (PARAVIEW_VERSION_MINOR 14)
+ SET (PARAVIEW_VERSION_PATCH 1)
+-SET (PARAVIEW_VERSION_PATCH_EXTRA)
++SET (PARAVIEW_VERSION_PATCH_EXTRA "enhanced")
+ SET (PARAVIEW_VERSION "3.14")
+-SET (PARAVIEW_VERSION_FULL "3.14.1")
++SET (PARAVIEW_VERSION_FULL "3.14.1-enhanced")
+
+ INCLUDE(ParaViewDetermineVersion)
+ determine_version(
+@@ -361,7 +361,7 @@
+
+ #########################################################################
+ # Configure the CoProcessing library
+-OPTION(PARAVIEW_ENABLE_COPROCESSING "Enable/Disable the CoProcessing library." OFF)
++OPTION(PARAVIEW_ENABLE_COPROCESSING "Enable/Disable the CoProcessing library." ON)
+ MARK_AS_ADVANCED(PARAVIEW_ENABLE_COPROCESSING)
+ IF (PARAVIEW_ENABLE_COPROCESSING)
+ ADD_SUBDIRECTORY (CoProcessing)
+@@ -395,48 +395,11 @@
+ DESTINATION ${PV_INSTALL_INCLUDE_DIR}
+ COMPONENT Development)
+
+- SET(cmakeDevFiles
+- ${ParaView_CMAKE_DIR}/branded_splash.png
+- ${ParaView_SOURCE_DIR}/ParaViewUse.cmake
+- ${ParaView_CMAKE_DIR}/ParaViewMacros.cmake
+- ${ParaView_CMAKE_DIR}/ParaViewPlugins.cmake
+- ${ParaView_CMAKE_DIR}/ParaViewBranding.cmake
+- ${ParaView_CMAKE_DIR}/ParaViewBrandingCPack.cmake
+- ${ParaView_CMAKE_DIR}/pqParaViewPlugin.cxx.in
+- ${ParaView_CMAKE_DIR}/pqParaViewPlugin.h.in
+- ${ParaView_CMAKE_DIR}/branded_paraview_initializer.cxx.in
+- ${ParaView_CMAKE_DIR}/branded_paraview_main.cxx.in
+- ${ParaView_CMAKE_DIR}/branded_paraview_initializer.h.in
+- ${ParaView_CMAKE_DIR}/ParaViewCPackOptions.cmake.in
+- ${ParaView_CMAKE_DIR}/pv-forward.c.in
+- # originaly from Qt/Components
+- ${ParaView_CMAKE_DIR}/pqObjectPanelImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqObjectPanelImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqDisplayPanelImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqDisplayPanelImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqViewOptionsImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqViewOptionsImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqActionGroupImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqActionGroupImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqViewFrameActionGroupImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqViewFrameActionGroupImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqDockWindowImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqDockWindowImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqDisplayPanelDecoratorImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqDisplayPanelDecoratorImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pq3DWidgetImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pq3DWidgetImplementation.cxx.in
+- # originaly from Qt/Core
+- ${ParaView_CMAKE_DIR}/pqViewModuleImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqViewModuleImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqAutoStartImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqAutoStartImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqGraphLayoutStrategyImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqGraphLayoutStrategyImplementation.cxx.in
+- ${ParaView_CMAKE_DIR}/pqTreeLayoutStrategyImplementation.h.in
+- ${ParaView_CMAKE_DIR}/pqTreeLayoutStrategyImplementation.cxx.in)
++ # install all cmake files.
+ INSTALL(
+- FILES ${cmakeDevFiles}
++ # the extra "/" is essential to ensure we don't end up with an extra
++ # directory at the install location.
++ DIRECTORY "${ParaView_CMAKE_DIR}/"
+ DESTINATION ${PV_INSTALL_CMAKE_DIR}
+ COMPONENT Development)
+
+diff -x .git -ruN orig/CoProcessing/Adaptors/ParticleAdaptor/vtkParticlePipeline.cxx git_0f43430/CoProcessing/Adaptors/ParticleAdaptor/vtkParticlePipeline.cxx
+--- orig/CoProcessing/Adaptors/ParticleAdaptor/vtkParticlePipeline.cxx 2012-04-02 12:55:26.000000000 -0400
++++ git_0f43430/CoProcessing/Adaptors/ParticleAdaptor/vtkParticlePipeline.cxx 2012-04-20 23:43:06.000000000 -0400
+@@ -19,6 +19,7 @@
+ #include "vtkMultiProcessController.h"
+ #include "vtkObjectFactory.h"
+ #include "vtkOpaquePass.h"
++#include "vtkOpenGLRenderer.h"
+ #include "vtkOutlineSource.h"
+ #include "vtkPNGWriter.h"
+ #include "vtkProperty.h"
+@@ -175,7 +176,17 @@
+
+ VTK_CREATE (vtkCameraPass, cameraP);
+ cameraP->SetDelegatePass (iceTPass);
+- renderer->SetPass (cameraP);
++ vtkOpenGLRenderer *glRenderer =
++ vtkOpenGLRenderer::SafeDownCast( this->renderer );
++ if( glRenderer != NULL )
++ {
++ glRenderer->SetPass(cameraP);
++ }
++ else
++ {
++ vtkErrorMacro("Cannot cast renderer to vtkOpenGLRenderer!");
++ return;
++ }
+
+ this->syncWin->SetRenderWindow (window);
+ this->syncWin->SetParallelController (ctrl);
+diff -x .git -ruN orig/CoProcessing/CoProcessor/CMakeLists.txt git_0f43430/CoProcessing/CoProcessor/CMakeLists.txt
+--- orig/CoProcessing/CoProcessor/CMakeLists.txt 2012-04-02 12:55:26.000000000 -0400
++++ git_0f43430/CoProcessing/CoProcessor/CMakeLists.txt 2012-04-20 23:43:06.000000000 -0400
+@@ -67,6 +67,16 @@
+ target_link_libraries(vtkCoProcessor ${CoProcessor_LIBS})
+
+ IF (PARAVIEW_ENABLE_PYTHON)
++ IF(NOT APPLE)
++ FIND_LIBRARY(PYTHON_UTIL_LIBRARY
++ NAMES util
++ DOC "Utility library needed for pvpython"
++ )
++ MARK_AS_ADVANCED(PYTHON_UTIL_LIBRARY)
++ IF(PYTHON_UTIL_LIBRARY)
++ SET(PYTHON_UTIL_LIBRARY_LIB ${PYTHON_UTIL_LIBRARY})
++ ENDIF(PYTHON_UTIL_LIBRARY)
++ ENDIF(NOT APPLE)
+ # Create Python bindings for the co-processing library
+ set(BUILD_SHARED_LIBS ON CACHE BOOL "Needed for python scripting.")
+ INCLUDE(FindPythonLibs)
+@@ -88,7 +98,7 @@
+ # want to link to the python libray to resolve its symbols
+ # immediately.
+ IF(WIN32 OR APPLE)
+- TARGET_LINK_LIBRARIES (vtkCoProcessorPythonD ${PYTHON_LIBRARIES})
++ TARGET_LINK_LIBRARIES (vtkCoProcessorPythonD ${VTK_PYTHON_LIBRARIES} ${PYTHON_UTIL_LIBRARY_LIB})
+ ENDIF(WIN32 OR APPLE)
+
+ # Create a python module that can be loaded dynamically. It links to
+@@ -104,7 +114,7 @@
+ ENDIF(WIN32 AND NOT CYGWIN)
+
+ IF(WIN32 OR APPLE)
+- TARGET_LINK_LIBRARIES (vtkCoProcessorPython ${PYTHON_LIBRARIES})
++ TARGET_LINK_LIBRARIES (vtkCoProcessorPython ${VTK_PYTHON_LIBRARIES} ${PYTHON_UTIL_LIBRARY_LIB})
+ ENDIF(WIN32 OR APPLE)
+
+ SET(PYTHON_MODULE_PREFIX "")
+diff -x .git -ruN orig/CoProcessing/CoProcessor/Testing/Cxx/CMakeLists.txt git_0f43430/CoProcessing/CoProcessor/Testing/Cxx/CMakeLists.txt
+--- orig/CoProcessing/CoProcessor/Testing/Cxx/CMakeLists.txt 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/CoProcessing/CoProcessor/Testing/Cxx/CMakeLists.txt 2012-04-20 23:43:06.000000000 -0400
+@@ -10,15 +10,14 @@
+ ADD_EXECUTABLE(CoProcessingPythonScriptExample PythonScriptCoProcessingExample.cxx vtkPVCustomTestDriver.cxx)
+ TARGET_LINK_LIBRARIES(CoProcessingPythonScriptExample vtkCoProcessor vtkCPTestDriver)
+
+- ADD_TEST(CoProcessingTestPythonScript ${EXECUTABLE_OUTPUT_PATH}/CoProcessingPythonScriptExample ${CoProcessing_SOURCE_DIR}/CoProcessor/Testing/Cxx/PythonScriptTest.py)
+-
++ ADD_TEST(CoProcessingTestPythonScript ${EXECUTABLE_OUTPUT_PATH}/CoProcessingPythonScriptExample ${CoProcessing_SOURCE_DIR}/CoProcessor/Testing/Python/PythonScriptTest.py)
+
+ IF (VTK_MPIRUN_EXE)
+- ADD_TEST(PCoProcessingPythonScriptExample
++ ADD_TEST(PCoProcessingTestPythonScript
+ ${VTK_MPIRUN_EXE} ${VTK_MPI_PRENUMPROC_FLAGS} ${VTK_MPI_NUMPROC_FLAG} ${VTK_MPI_MAX_NUMPROCS}
+ ${VTK_MPI_PREFLAGS}
+ ${EXECUTABLE_OUTPUT_PATH}/CoProcessingPythonScriptExample
+- ${CoProcessing_SOURCE_DIR}/CoProcessor/Testing/Cxx/PythonScriptTest2.py
++ ${CoProcessing_SOURCE_DIR}/CoProcessor/Testing/Python/PythonScriptTest2.py
+ ${VTK_MPI_POSTFLAGS}
+ )
+ ENDIF (VTK_MPIRUN_EXE)
+@@ -26,30 +25,126 @@
+
+ ENDIF (PARAVIEW_ENABLE_PYTHON)
+
+- # below is for doing image comparisons
+- # they are not done directly in the above python script due to the fact
+- # that they would make the python script rather ugly
+-IF (PARAVIEW_DATA_ROOT)
+- ADD_EXECUTABLE(CoProcessingCompareImagesTester CompareImages.cxx)
+- TARGET_LINK_LIBRARIES(CoProcessingCompareImagesTester vtkCommon vtkIO vtkRendering)
++# below is for doing image comparisons
++# they are not done directly in the above python script due to the fact
++# that they would make the python script rather ugly
++ADD_EXECUTABLE(CoProcessingCompareImagesTester CompareImages.cxx)
++TARGET_LINK_LIBRARIES(CoProcessingCompareImagesTester vtkCommon vtkIO vtkRendering)
+
++IF (PARAVIEW_DATA_ROOT)
+ IF (PARAVIEW_ENABLE_PYTHON)
+ ADD_TEST(CoProcessingPythonScriptGridPlot
+- ${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/CPGrid0.png 20 -V ${PARAVIEW_DATA_ROOT}/Baseline/CPGrid0.png -T ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx)
++ ${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester
++ ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/CPGrid0.png 20 -V
++ ${PARAVIEW_DATA_ROOT}/Baseline/CPGrid0.png
++ -T ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx )
+
+ ADD_TEST(CoProcessingPythonScriptPressurePlot
+- ${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/CPPressure0.png 20 -V ${PARAVIEW_DATA_ROOT}/Baseline/CPPressure0.png -T ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx)
++ ${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester
++ ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/CPPressure0.png 20
++ -V ${PARAVIEW_DATA_ROOT}/Baseline/CPPressure0.png
++ -T ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx)
+
+ SET_TESTS_PROPERTIES(CoProcessingTestPythonScript CoProcessingPythonScriptGridPlot
+ CoProcessingPythonScriptPressurePlot PROPERTIES RUN_SERIAL ON)
+ IF (VTK_MPIRUN_EXE)
+ ADD_TEST(PCoProcessingPythonScriptGridPlot
+- ${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/PCPGrid0.png 20 -V ${PARAVIEW_DATA_ROOT}/Baseline/CPGrid0.png -T ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx)
++ ${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester
++ ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/PCPGrid0.png 20
++ -V ${PARAVIEW_DATA_ROOT}/Baseline/CPGrid0.png
++ -T ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx)
+
+ ADD_TEST(PCoProcessingPythonScriptPressurePlot
+- ${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/PCPPressure0.png 20 -V ${PARAVIEW_DATA_ROOT}/Baseline/CPPressure0.png -T ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx)
++ ${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester
++ ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/PCPPressure0.png 20
++ -V ${PARAVIEW_DATA_ROOT}/Baseline/CPPressure0.png
++ -T ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx)
++ SET_TESTS_PROPERTIES(PCoProcessingTestPythonScript PCoProcessingPythonScriptGridPlot
++ PCoProcessingPythonScriptPressurePlot PROPERTIES RUN_SERIAL ON)
+ ENDIF (VTK_MPIRUN_EXE)
+
++ # here is the full workflow for coprocessing where we generate
++ # a script, run simulation driver code, and then check the output
++ IF (PARAVIEW_BUILD_PLUGIN_CoProcessingScriptGenerator)
++ set(REAL_EXECUTABLE_PATH ${EXECUTABLE_OUTPUT_PATH})
++ set(PARAVIEW_EXECUTABLE_PATH ${EXECUTABLE_OUTPUT_PATH})
++ if(Q_WS_MAC)
++ set(REAL_EXECUTABLE_PATH ${EXECUTABLE_OUTPUT_PATH}/${PROJECT_NAME}.app/Contents/MacOS)
++ set(PARAVIEW_EXECUTABLE_PATH ${EXECUTABLE_OUTPUT_PATH}/paraview.app/Contents/MacOS)
++ set(MAC_TEST_NAME "-Mac")
++ endif(Q_WS_MAC)
++
++ file(WRITE
++"${CoProcessing_BINARY_DIR}/CoProcessingFullWorkflowTest.cmake"
++"set(fullexe \"${PARAVIEW_EXECUTABLE_PATH}/paraview\")
++if(NOT EXISTS \${fullexe})
++ set(fullexe \"${PARAVIEW_EXECUTABLE_PATH}/\${cfg}/paraview.exe\")
++endif()
++FILE(REMOVE \"${CMAKE_BINARY_DIR}/Testing/Temporary/cptest.py ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/image_0.png ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/filename_0.pvtp ${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/filename_0_0.vtp\" )
++
++set(ARGS \"-dr;--test-directory=${CMAKE_BINARY_DIR}/Testing/Temporary;--test-script=${CMAKE_SOURCE_DIR}/Plugins/CoProcessingScriptGenerator/Testing/CoProcessingGUI${MAC_TEST_NAME}.xml;--exit\")
++execute_process(COMMAND \${fullexe} \${ARGS} RESULT_VARIABLE rv)
++if(NOT rv EQUAL 0)
++ message(FATAL_ERROR \"ParaView return value was \${rv}\")
++endif()
++
++set(fullexe \"${REAL_EXECUTABLE_PATH}/pvpython\")
++if(NOT EXISTS \${fullexe})
++ set(fullexe \"${REAL_EXECUTABLE_PATH}/\${cfg}/pvpython.exe\")
++endif()
++if(NOT EXISTS \${fullexe})
++ set(fullexe \"${EXECUTABLE_OUTPUT_PATH}/pvpython\")
++endif()
++if(NOT EXISTS \${fullexe})
++ message(FATAL_ERROR \"'\${fullexe}' does not exist\")
++endif()
++
++set(ARGS \"${CoProcessing_SOURCE_DIR}/CoProcessor/Testing/Python/waveletdriver.py;${CMAKE_BINARY_DIR}/Testing/Temporary/cptest.py;1\")
++execute_process(COMMAND \${fullexe} \${ARGS} RESULT_VARIABLE failed)
++if(failed)
++ message(FATAL_ERROR \"pvpython return value was = '\${failed}' \")
++endif()
++
++set(fullexe \"${REAL_EXECUTABLE_PATH}/CoProcessingCompareImagesTester\")
++if(NOT EXISTS \${fullexe})
++ set(fullexe \"${REAL_EXECUTABLE_PATH}/\${cfg}/CoProcessingCompareImagesTester.exe\")
++endif()
++if(NOT EXISTS \${fullexe})
++ set(fullexe \"${EXECUTABLE_OUTPUT_PATH}/CoProcessingCompareImagesTester\")
++endif()
++if(NOT EXISTS \${fullexe})
++ message(FATAL_ERROR \"'\${fullexe}' does not exist\")
++endif()
++
++set(ARGS \"${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/image_0.png;20;-V;${PARAVIEW_DATA_ROOT}/Baseline/CPFullWorkflow.png;-T;${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx\")
++execute_process(COMMAND \${fullexe} \${ARGS} RESULT_VARIABLE failed)
++if(failed)
++ message(FATAL_ERROR \"CoProcessingCompareImageTester return value was = '\${failed}' \")
++endif()
++
++set(fullexe \"${REAL_EXECUTABLE_PATH}/vtkpython\")
++if(NOT EXISTS \${fullexe})
++ set(fullexe \"${REAL_EXECUTABLE_PATH}/\${cfg}/vtkpython.exe\")
++endif()
++if(NOT EXISTS \${fullexe})
++ set(fullexe \"${EXECUTABLE_OUTPUT_PATH}/vtkpython\")
++endif()
++if(NOT EXISTS \${fullexe})
++ message(FATAL_ERROR \"'\${fullexe}' does not exist\")
++endif()
++
++set(ARGS \"${CoProcessing_SOURCE_DIR}/CoProcessor/Testing/Python/outputcheck.py;${CoProcessing_BINARY_DIR}/CoProcessor/Testing/Cxx/filename_0.pvtp\")
++execute_process(COMMAND \${fullexe} \${ARGS} RESULT_VARIABLE failed)
++if(failed)
++ message(FATAL_ERROR \"vtkpython return value was = '\${failed}' \")
++endif()
++" )
++
++ add_test(NAME CoProcessingFullWorkflow COMMAND ${CMAKE_COMMAND}
++ -Dcfg=$ -P "${CoProcessing_BINARY_DIR}/CoProcessingFullWorkflowTest.cmake")
++ SET_TESTS_PROPERTIES(CoProcessingFullWorkflow PROPERTIES RUN_SERIAL ON)
++ ENDIF (PARAVIEW_BUILD_PLUGIN_CoProcessingScriptGenerator)
++
+ ENDIF (PARAVIEW_ENABLE_PYTHON)
+
+ ENDIF (PARAVIEW_DATA_ROOT)
+diff -x .git -ruN orig/CoProcessing/CoProcessor/Testing/Cxx/CompareImages.cxx git_0f43430/CoProcessing/CoProcessor/Testing/Cxx/CompareImages.cxx
+--- orig/CoProcessing/CoProcessor/Testing/Cxx/CompareImages.cxx 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/CoProcessing/CoProcessor/Testing/Cxx/CompareImages.cxx 2012-04-20 23:43:06.000000000 -0400
+@@ -63,7 +63,7 @@
+
+ double threshold = atof(argv[2]);
+
+- if(!testing->RegressionTest(vtkImageData::SafeDownCast(reader->GetOutput()), threshold))
++ if(!testing->RegressionTest(reader, threshold))
+ {
+ return 1;
+ }
+diff -x .git -ruN orig/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest.py git_0f43430/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest.py
+--- orig/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest.py 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest.py 1969-12-31 19:00:00.000000000 -0500
+@@ -1,94 +0,0 @@
+-def DoCoProcessing(datadescription):
+- timestep = datadescription.GetTimeStep()
+-
+- grid = datadescription.GetInputDescriptionByName("input").GetGrid()
+- pressure = grid.GetPointData().GetArray('Pressure')
+-
+- grid.GetPointData().SetScalars(pressure)
+- obj.SetOutput(grid)
+-
+- # get global range of Pressure
+- di = trivialproducer.GetDataInformation(0)
+- trivialproducer.UpdatePipeline()
+- di.Update()
+- pdi = di.GetPointDataInformation()
+- ai = pdi.GetArrayInformation('Pressure')
+- pressurerange = ai.GetComponentRange(0)
+-
+- contour.Isosurfaces = .5*(pressurerange[0]+pressurerange[1])
+-
+- # now output the results to the screen as well as taking
+- # a screen shot of the view
+- #setup a window
+- rep = Show(contour)
+- ren = Render()
+-
+- #set the background color
+- ren.Background=[1,1,1] #white
+-
+- #set image size
+- ren.ViewSize = [200, 300] #[width, height]
+-
+- #set representation
+- rep.Representation="Surface"
+-
+- #save screenshot
+- gridimagefilename = 'CPGrid'+str(timestep) + '.png'
+- WriteImage(gridimagefilename)
+-
+- rep = Show(trivialproducer)
+- rep.LookupTable = MakeBlueToRedLT(pressurerange[0], pressurerange[1])
+- rep.ColorArrayName = 'Pressure'
+- rep.ColorAttributeType = 'POINT_DATA'
+- #set representation
+- rep.Representation="Surface"
+- rep = Show(contour)
+- #set the background color
+- ren = Render()
+- ren.Background=[1,1,1] #white
+-
+- pressureimagefilename = 'CPPressure'+str(timestep) + '.png'
+- WriteImage(pressureimagefilename)
+-
+- # explicitly delete the proxies -- may have to do this multiple times
+- tobedeleted = GetNextProxyToDelete()
+- while tobedeleted != None:
+- Delete(tobedeleted)
+- tobedeleted = GetNextProxyToDelete()
+-
+-def GetNextProxyToDelete():
+- iter = servermanager.vtkSMProxyIterator()
+- iter.SetSession(servermanager.ActiveConnection.Session)
+- iter.Begin()
+- while not iter.IsAtEnd():
+- if iter.GetGroup().find("prototypes") != -1:
+- iter.Next()
+- continue
+- proxy = servermanager._getPyProxy(iter.GetProxy())
+- proxygroup = iter.GetGroup()
+- iter.Next()
+- if proxygroup != 'timekeeper' and proxy != None and proxygroup.find("pq_helper_proxies") == -1 :
+- return proxy
+-
+- return None
+-
+-def RequestDataDescription(datadescription):
+- time = datadescription.GetTime()
+- timestep = datadescription.GetTimeStep()
+- if timestep % 20 == 0:
+- # add in some fields
+- #print 'added Pressure and wanting to do coprocessing'
+- datadescription.GetInputDescriptionByName("input").AddPointField("Pressure")
+- datadescription.GetInputDescriptionByName('input').GenerateMeshOn()
+- return
+-
+-# the code below is needed to import objects from paraview.simple
+-# plus the definition of vtkTrivialProducer into this python script.
+-try: paraview.simple
+-except: from paraview.simple import *
+-
+-trivialproducer = TrivialProducer()
+-contour = Contour(Input=trivialproducer)
+-obj = trivialproducer.GetClientSideObject()
+-
+-
+diff -x .git -ruN orig/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest2.py git_0f43430/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest2.py
+--- orig/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest2.py 2012-04-02 12:56:24.000000000 -0400
++++ git_0f43430/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest2.py 1969-12-31 19:00:00.000000000 -0500
+@@ -1,92 +0,0 @@
+-def DoCoProcessing(datadescription):
+- timestep = datadescription.GetTimeStep()
+-
+- grid = datadescription.GetInputDescriptionByName("input").GetGrid()
+- pressure = grid.GetPointData().GetArray('Pressure')
+-
+- grid.GetPointData().SetScalars(pressure)
+- obj.SetOutput(grid)
+-
+- # get global range of Pressure
+- di = trivialproducer.GetDataInformation(0)
+- trivialproducer.UpdatePipeline()
+- di.Update()
+- pdi = di.GetPointDataInformation()
+- ai = pdi.GetArrayInformation('Pressure')
+- pressurerange = ai.GetComponentRange(0)
+-
+- contour.Isosurfaces = .5*(pressurerange[0]+pressurerange[1])
+-
+- # now output the results to the screen as well as taking
+- # a screen shot of the view
+- #setup a window
+- rep = Show(contour)
+- ren = Render()
+-
+- #set the background color
+- ren.Background=[1,1,1] #white
+-
+- #set image size
+- ren.ViewSize = [200, 300] #[width, height]
+-
+- #set representation
+- rep.Representation="Surface"
+-
+- #save screenshot
+- gridimagefilename = 'PCPGrid'+str(timestep) + '.png'
+- WriteImage(gridimagefilename)
+-
+- rep = Show(trivialproducer)
+- rep.LookupTable = MakeBlueToRedLT(pressurerange[0], pressurerange[1])
+- rep.ColorArrayName = 'Pressure'
+- rep.ColorAttributeType = 'POINT_DATA'
+- #set representation
+- rep.Representation="Surface"
+- rep = Show(contour)
+- #set the background color
+- ren = Render()
+- ren.Background=[1,1,1] #white
+-
+- pressureimagefilename = 'PCPPressure'+str(timestep) + '.png'
+- WriteImage(pressureimagefilename)
+-
+- # explicitly delete the proxies -- may have to do this multiple times
+- tobedeleted = GetNextProxyToDelete()
+- while tobedeleted != None:
+- Delete(tobedeleted)
+- tobedeleted = GetNextProxyToDelete()
+-
+-def GetNextProxyToDelete():
+- iter = servermanager.vtkSMProxyIterator()
+- iter.SetSession(servermanager.ActiveConnection.Session)
+- iter.Begin()
+- while not iter.IsAtEnd():
+- if iter.GetGroup().find("prototypes") != -1:
+- iter.Next()
+- continue
+- proxy = servermanager._getPyProxy(iter.GetProxy())
+- proxygroup = iter.GetGroup()
+- iter.Next()
+- if proxygroup != 'timekeeper' and proxy != None and proxygroup.find("pq_helper_proxies") == -1 :
+- return proxy
+-
+- return None
+-
+-def RequestDataDescription(datadescription):
+- time = datadescription.GetTime()
+- timestep = datadescription.GetTimeStep()
+- if timestep % 20 == 0:
+- # add in some fields
+- #print 'added Pressure and wanting to do coprocessing'
+- datadescription.GetInputDescriptionByName("input").AddPointField("Pressure")
+- datadescription.GetInputDescriptionByName('input').GenerateMeshOn()
+- return
+-
+-# the code below is needed to import objects from paraview.simple
+-# plus the definition of vtkTrivialProducer into this python script.
+-try: paraview.simple
+-except: from paraview.simple import *
+-
+-trivialproducer = TrivialProducer()
+-contour = Contour(Input=trivialproducer)
+-obj = trivialproducer.GetClientSideObject()
+diff -x .git -ruN orig/CoProcessing/CoProcessor/Testing/Python/PythonScriptTest.py git_0f43430/CoProcessing/CoProcessor/Testing/Python/PythonScriptTest.py
+--- orig/CoProcessing/CoProcessor/Testing/Python/PythonScriptTest.py 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/CoProcessing/CoProcessor/Testing/Python/PythonScriptTest.py 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,92 @@
++def DoCoProcessing(datadescription):
++ timestep = datadescription.GetTimeStep()
++
++ grid = datadescription.GetInputDescriptionByName("input").GetGrid()
++ pressure = grid.GetPointData().GetArray('Pressure')
++
++ grid.GetPointData().SetScalars(pressure)
++ obj.SetOutput(grid)
++
++ # get global range of Pressure
++ di = trivialproducer.GetDataInformation(0)
++ trivialproducer.UpdatePipeline()
++ di.Update()
++ pdi = di.GetPointDataInformation()
++ ai = pdi.GetArrayInformation('Pressure')
++ pressurerange = ai.GetComponentRange(0)
++
++ contour.Isosurfaces = .5*(pressurerange[0]+pressurerange[1])
++
++ # now output the results to the screen as well as taking
++ # a screen shot of the view
++ #setup a window
++ rep = Show(contour)
++ ren = Render()
++
++ #set the background color
++ ren.Background=[1,1,1] #white
++
++ #set image size
++ ren.ViewSize = [200, 300] #[width, height]
++
++ #set representation
++ rep.Representation="Surface"
++
++ #save screenshot
++ gridimagefilename = 'CPGrid'+str(timestep) + '.png'
++ WriteImage(gridimagefilename)
++
++ rep = Show(trivialproducer)
++ rep.LookupTable = MakeBlueToRedLT(pressurerange[0], pressurerange[1])
++ rep.ColorArrayName = 'Pressure'
++ rep.ColorAttributeType = 'POINT_DATA'
++ #set representation
++ rep.Representation="Surface"
++ rep = Show(contour)
++ #set the background color
++ ren = Render()
++ ren.Background=[1,1,1] #white
++
++ pressureimagefilename = 'CPPressure'+str(timestep) + '.png'
++ WriteImage(pressureimagefilename)
++
++ # explicitly delete the proxies -- may have to do this multiple times
++ tobedeleted = GetNextProxyToDelete()
++ while tobedeleted != None:
++ Delete(tobedeleted)
++ tobedeleted = GetNextProxyToDelete()
++
++def GetNextProxyToDelete():
++ iter = servermanager.vtkSMProxyIterator()
++ iter.SetSession(servermanager.ActiveConnection.Session)
++ iter.Begin()
++ while not iter.IsAtEnd():
++ if iter.GetGroup().find("prototypes") != -1:
++ iter.Next()
++ continue
++ proxy = servermanager._getPyProxy(iter.GetProxy())
++ proxygroup = iter.GetGroup()
++ iter.Next()
++ if proxygroup != 'timekeeper' and proxy != None and proxygroup.find("pq_helper_proxies") == -1 :
++ return proxy
++
++ return None
++
++def RequestDataDescription(datadescription):
++ time = datadescription.GetTime()
++ timestep = datadescription.GetTimeStep()
++ if timestep % 20 == 0:
++ # add in some fields
++ #print 'added Pressure and wanting to do coprocessing'
++ datadescription.GetInputDescriptionByName("input").AddPointField("Pressure")
++ datadescription.GetInputDescriptionByName('input').GenerateMeshOn()
++ return
++
++# the code below is needed to import objects from paraview.simple
++# plus the definition of vtkTrivialProducer into this python script.
++try: paraview.simple
++except: from paraview.simple import *
++
++trivialproducer = TrivialProducer()
++contour = Contour(Input=trivialproducer)
++obj = trivialproducer.GetClientSideObject()
+diff -x .git -ruN orig/CoProcessing/CoProcessor/Testing/Python/PythonScriptTest2.py git_0f43430/CoProcessing/CoProcessor/Testing/Python/PythonScriptTest2.py
+--- orig/CoProcessing/CoProcessor/Testing/Python/PythonScriptTest2.py 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/CoProcessing/CoProcessor/Testing/Python/PythonScriptTest2.py 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,92 @@
++def DoCoProcessing(datadescription):
++ timestep = datadescription.GetTimeStep()
++
++ grid = datadescription.GetInputDescriptionByName("input").GetGrid()
++ pressure = grid.GetPointData().GetArray('Pressure')
++
++ grid.GetPointData().SetScalars(pressure)
++ obj.SetOutput(grid)
++
++ # get global range of Pressure
++ di = trivialproducer.GetDataInformation(0)
++ trivialproducer.UpdatePipeline()
++ di.Update()
++ pdi = di.GetPointDataInformation()
++ ai = pdi.GetArrayInformation('Pressure')
++ pressurerange = ai.GetComponentRange(0)
++
++ contour.Isosurfaces = .5*(pressurerange[0]+pressurerange[1])
++
++ # now output the results to the screen as well as taking
++ # a screen shot of the view
++ #setup a window
++ rep = Show(contour)
++ ren = Render()
++
++ #set the background color
++ ren.Background=[1,1,1] #white
++
++ #set image size
++ ren.ViewSize = [200, 300] #[width, height]
++
++ #set representation
++ rep.Representation="Surface"
++
++ #save screenshot
++ gridimagefilename = 'PCPGrid'+str(timestep) + '.png'
++ WriteImage(gridimagefilename)
++
++ rep = Show(trivialproducer)
++ rep.LookupTable = MakeBlueToRedLT(pressurerange[0], pressurerange[1])
++ rep.ColorArrayName = 'Pressure'
++ rep.ColorAttributeType = 'POINT_DATA'
++ #set representation
++ rep.Representation="Surface"
++ rep = Show(contour)
++ #set the background color
++ ren = Render()
++ ren.Background=[1,1,1] #white
++
++ pressureimagefilename = 'PCPPressure'+str(timestep) + '.png'
++ WriteImage(pressureimagefilename)
++
++ # explicitly delete the proxies -- may have to do this multiple times
++ tobedeleted = GetNextProxyToDelete()
++ while tobedeleted != None:
++ Delete(tobedeleted)
++ tobedeleted = GetNextProxyToDelete()
++
++def GetNextProxyToDelete():
++ iter = servermanager.vtkSMProxyIterator()
++ iter.SetSession(servermanager.ActiveConnection.Session)
++ iter.Begin()
++ while not iter.IsAtEnd():
++ if iter.GetGroup().find("prototypes") != -1:
++ iter.Next()
++ continue
++ proxy = servermanager._getPyProxy(iter.GetProxy())
++ proxygroup = iter.GetGroup()
++ iter.Next()
++ if proxygroup != 'timekeeper' and proxy != None and proxygroup.find("pq_helper_proxies") == -1 :
++ return proxy
++
++ return None
++
++def RequestDataDescription(datadescription):
++ time = datadescription.GetTime()
++ timestep = datadescription.GetTimeStep()
++ if timestep % 20 == 0:
++ # add in some fields
++ #print 'added Pressure and wanting to do coprocessing'
++ datadescription.GetInputDescriptionByName("input").AddPointField("Pressure")
++ datadescription.GetInputDescriptionByName('input').GenerateMeshOn()
++ return
++
++# the code below is needed to import objects from paraview.simple
++# plus the definition of vtkTrivialProducer into this python script.
++try: paraview.simple
++except: from paraview.simple import *
++
++trivialproducer = TrivialProducer()
++contour = Contour(Input=trivialproducer)
++obj = trivialproducer.GetClientSideObject()
+diff -x .git -ruN orig/CoProcessing/CoProcessor/Testing/Python/outputcheck.py git_0f43430/CoProcessing/CoProcessor/Testing/Python/outputcheck.py
+--- orig/CoProcessing/CoProcessor/Testing/Python/outputcheck.py 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/CoProcessing/CoProcessor/Testing/Python/outputcheck.py 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,18 @@
++import sys
++if len(sys.argv) != 2:
++ print "command is 'python '"
++ sys.exit(1)
++
++import vtk
++
++r = vtk.vtkXMLPPolyDataReader()
++r.SetFileName(sys.argv[1])
++r.Update()
++
++g = r.GetOutput()
++
++if g.GetNumberOfPoints() != 441 or g.GetNumberOfCells() != 800:
++ print 'Output grid is incorrect. The number of points is', g.GetNumberOfPoints(), \
++ 'but should be 441 and the number of cells is', g.GetNumberOfCells(), \
++ 'but should be 800.'
++ sys.exit(1)
+diff -x .git -ruN orig/CoProcessing/CoProcessor/Testing/Python/waveletdriver.py git_0f43430/CoProcessing/CoProcessor/Testing/Python/waveletdriver.py
+--- orig/CoProcessing/CoProcessor/Testing/Python/waveletdriver.py 1969-12-31 19:00:00.000000000 -0500
++++ git_0f43430/CoProcessing/CoProcessor/Testing/Python/waveletdriver.py 2012-04-20 23:43:06.000000000 -0400
+@@ -0,0 +1,71 @@
++import sys
++if len(sys.argv) != 3:
++ print "command is 'python