mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
153 lines
5.2 KiB
Python
153 lines
5.2 KiB
Python
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"
|
|
|
|
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.Connections) != 1):
|
|
errors += 1
|
|
print "Error pvpython should be connected to a built-in session. Currently connected to ", servermanager.Connections
|
|
|
|
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.Connections) != 2):
|
|
errors += 1
|
|
print "Error pvpython should be connected to a built-in session + one remote one. Currently connected to ", servermanager.Connections
|
|
|
|
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.Connections) != 3):
|
|
errors += 1
|
|
print "Error pvpython should be connected to a built-in session + two remote one. Currently connected to ", servermanager.Connections
|
|
|
|
print "Available connections: ", servermanager.Connections
|
|
|
|
# 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 SetActiveConnection is working as expected
|
|
SetActiveConnection(server1_connection, globals())
|
|
if ( servermanager.ActiveConnection != server1_connection):
|
|
errors += 1
|
|
print "Error Invalid active connection. Expected ", server1_connection, " and got ", servermanager.ActiveConnection
|
|
|
|
# Test that SetActiveConnection is working as expected
|
|
SetActiveConnection(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 SetActiveConnection is working as expected
|
|
SetActiveConnection(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
|
|
SetActiveConnection(server2_connection, globals())
|
|
LoadDistributedPlugin("PacMan", True, globals())
|
|
|
|
# Create PacMan on server2
|
|
pacMan_s2 = PacMan()
|
|
|
|
# Swtich to server1 and Create PacMan ==> This should fail
|
|
SetActiveConnection(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
|
|
SetActiveConnection(server2_connection, globals())
|
|
SetActiveConnection(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
|
|
SetActiveConnection(server2_connection, globals())
|
|
SetActiveConnection(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
|
|
SetActiveConnection(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
|
|
SetActiveConnection(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.Connections
|
|
Disconnect()
|
|
print "Available connections after disconnect: ", servermanager.Connections
|
|
Disconnect()
|
|
print "Available connections after disconnect: ", servermanager.Connections
|
|
|
|
if errors > 0:
|
|
raise RuntimeError, "An error occured during the execution"
|