summaryrefslogtreecommitdiff
path: root/scripts/TestUtil.py
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2015-02-10 23:07:10 +0100
committerJose <jose@zeroc.com>2015-02-10 23:07:10 +0100
commit188c2585f1a25fc448b579c33976976c73c84c8b (patch)
tree9ca23ab5bd252b0fc5e9847fb18941f5f3a4c7cd /scripts/TestUtil.py
parentFixed (ICE-6265) - slice2js man page has bogus link (diff)
downloadice-188c2585f1a25fc448b579c33976976c73c84c8b.tar.bz2
ice-188c2585f1a25fc448b579c33976976c73c84c8b.tar.xz
ice-188c2585f1a25fc448b579c33976976c73c84c8b.zip
Workaround (ICE-5916) - Oracle 8 JVM crash with Freeze/evictor on Ubuntu x64
Diffstat (limited to 'scripts/TestUtil.py')
-rwxr-xr-xscripts/TestUtil.py46
1 files changed, 31 insertions, 15 deletions
diff --git a/scripts/TestUtil.py b/scripts/TestUtil.py
index 5cb82635d61..e8cf63ba7d2 100755
--- a/scripts/TestUtil.py
+++ b/scripts/TestUtil.py
@@ -1063,13 +1063,16 @@ def getCommandLineProperties(exe, config):
output.close()
return properties
-def getCommandLine(exe, config, options = ""):
+def getCommandLine(exe, config, options = "", interpreterOptions = ""):
output = getStringIO()
if config.mono and config.lang == "cs":
output.write("mono --debug '%s.exe' " % exe)
elif config.lang == "rb" and config.type == "client":
- output.write("ruby '" + exe + "' ")
+ output.write("ruby")
+ if interpreterOptions:
+ output.write(" " + interpreterOptions)
+ output.write(' "%s" ' % exe)
elif config.silverlight and config.lang == "cs" and config.type == "client":
xap = "obj/sl/%s.xap" % os.path.basename(os.getcwd())
if os.environ.get("PROCESSOR_ARCHITECTURE") == "AMD64" or os.environ.get("PROCESSOR_ARCHITEW6432") == "":
@@ -1083,13 +1086,24 @@ def getCommandLine(exe, config, options = ""):
if not config.ipv6:
output.write("-Djava.net.preferIPv4Stack=true ")
output.write(getJavaLibraryPath())
- output.write(exe + " ")
+ if interpreterOptions:
+ output.write(" " + interpreterOptions)
+ output.write(" " + exe + " ")
elif config.lang == "py":
- output.write(sys.executable + ' "%s" ' % exe)
+ output.write(sys.executable)
+ if interpreterOptions:
+ output.write(" " + interpreterOptions)
+ output.write(' "%s" ' % exe)
elif config.lang == "php" and config.type == "client":
- output.write(phpCmd + " -n -c tmp.ini -f \""+ exe +"\" -- ")
+ output.write(phpCmd + " -n -c tmp.ini")
+ if interpreterOptions:
+ output.write(" " + interpreterOptions)
+ output.write(" -f \""+ exe +"\" -- ")
elif config.lang == "js":
- output.write(nodeCmd + ' "%s" ' % exe)
+ output.write(nodeCmd)
+ if interpreterOptions:
+ output.write(" " + interpreterOptions)
+ output.write(' "%s" ' % exe)
elif config.lang == "cpp" and config.valgrind:
# --child-silent-after-fork=yes is required for the IceGrid/activator test where the node
# forks a process with execv failing (invalid exe name).
@@ -1376,7 +1390,8 @@ def getClientCrossTestDir(base):
def clientServerTest(additionalServerOptions = "", additionalClientOptions = "",
- server = None, client = None, serverenv = None, clientenv = None):
+ server = None, client = None, serverenv = None, clientenv = None,
+ interpreterOptions = ""):
if server is None:
server = getDefaultServerFile()
if client is None:
@@ -1455,7 +1470,7 @@ def clientServerTest(additionalServerOptions = "", additionalClientOptions = "",
serverCfg = DriverConfig("server")
if lang in ["rb", "php", "js"]:
serverCfg.lang = "cpp"
- server = getCommandLine(server, serverCfg, additionalServerOptions)
+ server = getCommandLine(server, serverCfg, additionalServerOptions, interpreterOptions)
serverProc = spawnServer(server, env = serverenv, lang=serverCfg.lang, mx=serverCfg.mx)
print("ok")
sys.stdout.flush()
@@ -1466,7 +1481,7 @@ def clientServerTest(additionalServerOptions = "", additionalClientOptions = "",
else:
sys.stdout.write("starting %s %s ... " % (clientLang, clientDesc))
sys.stdout.flush()
- client = getCommandLine(client, clientCfg, additionalClientOptions)
+ client = getCommandLine(client, clientCfg, additionalClientOptions, interpreterOptions)
clientProc = spawnClient(client, env = clientenv, cwd = clientdir, startReader = False, lang=clientCfg.lang)
print("ok")
@@ -1634,24 +1649,25 @@ def startClient(exe, args = "", config=None, env=None, echo = True, startReader
phpSetup(clientConfig, iceOptions, iceProfile)
return spawnClient(cmd, env = env, echo = echo, startReader = startReader, lang=config.lang)
-def startServer(exe, args = "", config = None, env = None, adapter = None, count = 1, echo = True, timeout = 60):
+def startServer(exe, args = "", config = None, env = None, adapter = None, count = 1, echo = True, timeout = 60,
+ interpreterOptions = ""):
if config is None:
config = DriverConfig("server")
if env is None:
env = getTestEnv(getDefaultMapping(), os.getcwd())
- cmd = getCommandLine(exe, config, args)
+ cmd = getCommandLine(exe, config, args, interpreterOptions)
return spawnServer(cmd, env = env, adapter = adapter, count = count, echo = echo, lang = config.lang, mx = config.mx, timeout = timeout)
-def startColloc(exe, args, config=None, env=None):
+def startColloc(exe, args, config=None, env=None, interpreterOptions = ""):
exe = quoteArgument(exe)
if config is None:
config = DriverConfig("colloc")
if env is None:
env = getTestEnv(config.lang, testdir)
- cmd = getCommandLine(exe, config, args)
+ cmd = getCommandLine(exe, config, args, interpreterOptions)
return spawnClient(cmd, env = env, lang=config.lang)
-def simpleTest(exe = None, options = ""):
+def simpleTest(exe = None, options = "", interpreterOptions = ""):
if exe is None:
exe = getDefaultClientFile()
if appverifier:
@@ -1664,7 +1680,7 @@ def simpleTest(exe = None, options = ""):
sys.stdout.write("starting client... ")
sys.stdout.flush()
- command = getCommandLine(exe, config, options)
+ command = getCommandLine(exe, config, options, interpreterOptions)
client = spawnClient(command, startReader = False, env = env, lang = config.lang)
print("ok")
client.startReader()