THRIFT-2578 Moving 'make cross' from test.sh to test.py
This closes #166
----
commit 0fdd2148af1ea4e3be79ec05a76ea31af0f2b082
Author: cdwijayarathna <cdwijayarathna@gmail.com>
Date: 2014-07-26T17:32:13Z
THRIFT-2578 Moving 'make cross' from test.sh to test.py
----
Signed-off-by: Roger Meier <roger@apache.org>
diff --git a/test/test.py b/test/test.py
index cab942e..c281ccd 100644
--- a/test/test.py
+++ b/test/test.py
@@ -80,18 +80,18 @@
server_log=open("log/" + test_name + "_server.log","a")
client_log=open("log/" + test_name + "_client.log","a")
- if options.verbose > 0:
- print 'Testing server: %s' % (' '.join(server_args))
- serverproc = subprocess.Popen(server_args, stdout=server_log, stderr=server_log)
- else:
- serverproc = subprocess.Popen(server_args, stdout=server_log, stderr=server_log)
+ try:
+ if options.verbose > 0:
+ print 'Testing server: %s' % (' '.join(server_args))
+ serverproc = subprocess.Popen(server_args, stdout=server_log, stderr=server_log)
+ else:
+ serverproc = subprocess.Popen(server_args, stdout=server_log, stderr=server_log)
+ except OSError as e:
+ return "OS error({0}): {1}".format(e.errno, e.strerror)
def ensureServerAlive():
if serverproc.poll() is not None:
- print ('FAIL: Server process (%s) failed with retcode %d'
- % (' '.join(server_args), serverproc.returncode))
- raise Exception('Server subprocess died, args: %s'
- % (' '.join(server_args)))
+ return 'Server subprocess died, args: %s' % (' '.join(server_args))
# Wait for the server to start accepting connections on the given port.
sock = socket.socket()
@@ -104,8 +104,7 @@
while sock.connect_ex(('127.0.0.1', port)) != 0:
attempt += 1
if attempt >= max_attempts:
- raise Exception("TestServer not ready on port %d after %.2f seconds"
- % (port, sleep_time * attempt))
+ return "TestServer not ready on port %d after %.2f seconds" % (port, sleep_time * attempt)
ensureServerAlive()
time.sleep(sleep_time)
finally:
@@ -114,15 +113,20 @@
try:
o = []
def target():
- if options.verbose > 0:
- print 'Testing client: %s' % (' '.join(cli_args))
- process = subprocess.Popen(cli_args, stdout=client_log, stderr=client_log)
- o.append(process)
- process.communicate()
- else:
- process = subprocess.Popen(cli_args, stdout=client_log, stderr=client_log)
- o.append(process)
- process.communicate()
+ try:
+ if options.verbose > 0:
+ print 'Testing client: %s' % (' '.join(cli_args))
+ process = subprocess.Popen(cli_args, stdout=client_log, stderr=client_log)
+ o.append(process)
+ process.communicate()
+ else:
+ process = subprocess.Popen(cli_args, stdout=client_log, stderr=client_log)
+ o.append(process)
+ process.communicate()
+ except OSError as e:
+ return "OS error({0}): {1}".format(e.errno, e.strerror)
+ except:
+ return "Unexpected error:", sys.exc_info()[0]
thread = threading.Thread(target=target)
thread.start()
@@ -131,6 +135,8 @@
print 'Terminating process'
o[0].terminate()
thread.join()
+ if(len(o)==0):
+ return "Client subprocess failed, args: %s" % (' '.join(cli_args))
ret = o[0].returncode
if ret != 0:
return "Client subprocess failed, retcode=%d, args: %s" % (ret, ' '.join(cli_args))