summaryrefslogtreecommitdiff
path: root/py/test/Ice/faultTolerance/run.py
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2004-08-29 20:12:16 +0000
committerMark Spruiell <mes@zeroc.com>2004-08-29 20:12:16 +0000
commitbe7e4d3b41af93968bc837c33c8c9fb24922f322 (patch)
treea91489c2d80797cce3691f836d5406990bc1c6b5 /py/test/Ice/faultTolerance/run.py
parentinitial check-in (diff)
downloadice-be7e4d3b41af93968bc837c33c8c9fb24922f322.tar.bz2
ice-be7e4d3b41af93968bc837c33c8c9fb24922f322.tar.xz
ice-be7e4d3b41af93968bc837c33c8c9fb24922f322.zip
initial check-in
Diffstat (limited to 'py/test/Ice/faultTolerance/run.py')
-rwxr-xr-xpy/test/Ice/faultTolerance/run.py75
1 files changed, 75 insertions, 0 deletions
diff --git a/py/test/Ice/faultTolerance/run.py b/py/test/Ice/faultTolerance/run.py
new file mode 100755
index 00000000000..fe87c5caade
--- /dev/null
+++ b/py/test/Ice/faultTolerance/run.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python
+# **********************************************************************
+#
+# Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+import os, sys
+
+for toplevel in [".", "..", "../..", "../../..", "../../../.."]:
+ toplevel = os.path.normpath(toplevel)
+ if os.path.exists(os.path.join(toplevel, "config", "TestUtil.py")):
+ break
+else:
+ raise "can't find toplevel directory!"
+
+sys.path.append(os.path.join(toplevel, "config"))
+import TestUtil
+
+name = os.path.join("Ice", "faultTolerance")
+testdir = os.path.join(toplevel, "test", name)
+
+server = os.path.join(testdir, "Server.py")
+client = os.path.join(testdir, "Client.py")
+
+num = 12
+base = 12340
+
+serverPipes = { }
+for i in range(0, num):
+ print "starting server #%d..." % (i + 1),
+ sys.stdout.flush()
+ serverPipes[i] = os.popen("python " + server + TestUtil.serverOptions + " %d" % (base + i) + " 2>&1")
+ TestUtil.getServerPid(serverPipes[i])
+ TestUtil.getAdapterReady(serverPipes[i])
+ print "ok"
+
+ports = ""
+for i in range(0, num):
+ ports = "%s %d" % (ports, base + i)
+print "starting client...",
+clientPipe = os.popen("python " + client + TestUtil.clientOptions + " " + ports + " 2>&1")
+print "ok"
+TestUtil.printOutputFromPipe(clientPipe)
+
+clientStatus = clientPipe.close()
+serverStatus = None
+for i in range(0, num):
+ serverStatus = serverStatus or serverPipes[i].close()
+
+if clientStatus:
+ TestUtil.killServers()
+ sys.exit(1)
+
+#
+# Exit with status 0 even though some servers failed to shutdown
+# properly. There's a problem which is occuring on Linux dual-processor
+# machines, when ssl isn't enabled, and which cause some servers to
+# segfault and abort. It's not clear what the problem is, and it's
+# almost impossible to debug with the very poor information we get
+# from the core file (ulimit -c unlimited to enable core files on
+# Linux).
+#
+if serverStatus:
+ TestUtil.killServers()
+ sys.exit(1)
+# if TestUtil.isWin32():
+# sys.exit(1)
+# else:
+# sys.exit(0)
+
+sys.exit(0)