summaryrefslogtreecommitdiff
path: root/test/crossrunner
diff options
context:
space:
mode:
authorNobuaki Sukegawa <nsuke@apache.org>2016-02-28 10:07:30 +0900
committerNobuaki Sukegawa <nsuke@apache.org>2016-02-28 12:03:40 +0900
commit103974ec550e7d1c5c75e35f1309095487b5b4e1 (patch)
treeee714807dc57f6c04f45b40350771b5368ebc1dc /test/crossrunner
parent2655f4b5365c0a471531c45aed7a99da358b787e (diff)
downloadthrift-103974ec550e7d1c5c75e35f1309095487b5b4e1.tar.gz
THRIFT-3688 Fix socket bind failure detection of cross test
Client: Test Patch: Nobuaki Sukegawa This closes #905
Diffstat (limited to 'test/crossrunner')
-rw-r--r--test/crossrunner/run.py45
1 files changed, 23 insertions, 22 deletions
diff --git a/test/crossrunner/run.py b/test/crossrunner/run.py
index 2c212e0f4..3f9aaa4f4 100644
--- a/test/crossrunner/run.py
+++ b/test/crossrunner/run.py
@@ -172,29 +172,30 @@ def run_test(testdir, logdir, test_dict, max_retry, async=True):
with sv.start():
if test.socket in ('domain', 'abstract'):
time.sleep(0.1)
+ port_ok = True
else:
- if not ensure_socket_open(sv.proc, port, test.delay):
- break
- connect_retry_count = 0
- max_connect_retry = 3
- connect_retry_wait = 0.5
- while True:
- if sv.proc.poll() is not None:
- logger.info('not starting client because server process is absent')
- break
- logger.debug('Starting client')
- cl.start(test.timeout)
- logger.debug('Waiting client')
- cl.wait()
- if not cl.report.maybe_false_positive() or connect_retry_count >= max_connect_retry:
- if connect_retry_count > 0 and connect_retry_count < max_connect_retry:
- logger.warn('[%s]: Connected after %d retry (%.2f sec each)' % (test.server.name, connect_retry_count, connect_retry_wait))
- # Wait for 50ms to see if server does not die at the end.
- time.sleep(0.05)
- break
- logger.debug('Server may not be ready, waiting %.2f second...' % connect_retry_wait)
- time.sleep(connect_retry_wait)
- connect_retry_count += 1
+ port_ok = ensure_socket_open(sv.proc, port, test.delay)
+ if port_ok:
+ connect_retry_count = 0
+ max_connect_retry = 3
+ connect_retry_wait = 0.5
+ while True:
+ if sv.proc.poll() is not None:
+ logger.info('not starting client because server process is absent')
+ break
+ logger.debug('Starting client')
+ cl.start(test.timeout)
+ logger.debug('Waiting client')
+ cl.wait()
+ if not cl.report.maybe_false_positive() or connect_retry_count >= max_connect_retry:
+ if connect_retry_count > 0 and connect_retry_count < max_connect_retry:
+ logger.warn('[%s]: Connected after %d retry (%.2f sec each)' % (test.server.name, connect_retry_count, connect_retry_wait))
+ # Wait for 50ms to see if server does not die at the end.
+ time.sleep(0.05)
+ break
+ logger.debug('Server may not be ready, waiting %.2f second...' % connect_retry_wait)
+ time.sleep(connect_retry_wait)
+ connect_retry_count += 1
if sv.report.maybe_false_positive() and bind_retry_count < max_bind_retry:
logger.warn('[%s]: Detected socket bind failure, retrying...', test.server.name)