diff options
author | Mark Spruiell <mes@zeroc.com> | 2004-08-29 20:12:16 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2004-08-29 20:12:16 +0000 |
commit | be7e4d3b41af93968bc837c33c8c9fb24922f322 (patch) | |
tree | a91489c2d80797cce3691f836d5406990bc1c6b5 /py/test/Ice/faultTolerance/run.py | |
parent | initial check-in (diff) | |
download | ice-be7e4d3b41af93968bc837c33c8c9fb24922f322.tar.bz2 ice-be7e4d3b41af93968bc837c33c8c9fb24922f322.tar.xz ice-be7e4d3b41af93968bc837c33c8c9fb24922f322.zip |
initial check-in
Diffstat (limited to 'py/test/Ice/faultTolerance/run.py')
-rwxr-xr-x | py/test/Ice/faultTolerance/run.py | 75 |
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) |