summaryrefslogtreecommitdiff
path: root/cpp/config/TestUtil.py
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2001-07-28 23:24:21 +0000
committerMarc Laukien <marc@zeroc.com>2001-07-28 23:24:21 +0000
commit8e10c7d25ac8b5d6d0b5e308bff53d035deacdda (patch)
treec13e58992f5cc112441375a3086b50cdb6e2ac8d /cpp/config/TestUtil.py
parentfixes (diff)
downloadice-8e10c7d25ac8b5d6d0b5e308bff53d035deacdda.tar.bz2
ice-8e10c7d25ac8b5d6d0b5e308bff53d035deacdda.tar.xz
ice-8e10c7d25ac8b5d6d0b5e308bff53d035deacdda.zip
testing stuff
Diffstat (limited to 'cpp/config/TestUtil.py')
-rw-r--r--cpp/config/TestUtil.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/cpp/config/TestUtil.py b/cpp/config/TestUtil.py
new file mode 100644
index 00000000000..3e692c36426
--- /dev/null
+++ b/cpp/config/TestUtil.py
@@ -0,0 +1,58 @@
+import sys, os, string
+
+def start(path):
+ pipein, pipeout = os.pipe()
+ pid = os.fork()
+ if(pid == 0):
+ os.close(pipein)
+ os.dup2(pipeout, sys.stdout.fileno())
+ os.execv(path, [])
+ else:
+ os.close(pipeout)
+ return os.fdopen(pipein), pid
+
+pids = []
+def terminate(status):
+ for pid in pids:
+ if(os.name == "nt"):
+ import win32api
+ handle = win32api.OpenProcess(1, 0, pid)
+ return (0 != win32api.TerminateProcess(handle, 0))
+ else:
+ os.kill(pid, 9)
+ sys.exit(status)
+
+def server():
+ print "starting server...",
+ server, pid = start("./server")
+ pids.append(pid)
+ ready = string.strip(server.readline())
+ if ready != "ready":
+ print "failed!"
+ terminate(0)
+ else:
+ print "ok"
+
+def client():
+ print "starting client...",
+ client, pid = start("./client")
+ pids.append(pid)
+ output = client.read()
+ if not output:
+ print "failed!"
+ terminate(0)
+ else:
+ print "ok"
+ print output,
+
+def collocated():
+ print "starting collocated...",
+ client, pid = start("./collocated")
+ pids.append(pid)
+ output = client.read()
+ if not output:
+ print "failed!"
+ terminate(0)
+ else:
+ print "ok"
+ print output,