diff --git a/test/lib/tarantool_server.py b/test/lib/tarantool_server.py index 39f5f4e0a9bf74277846a2f8ddac8ce69a18a5a6..95bda7139705d0cdbe3b6b612279ca14c19e0ef8 100644 --- a/test/lib/tarantool_server.py +++ b/test/lib/tarantool_server.py @@ -4,6 +4,7 @@ import sys import glob import time import yaml +import errno import daemon import socket import signal @@ -520,7 +521,7 @@ class TarantoolServer(Server): else: self.process.wait() - self.wait_until_stopped() + self.wait_until_stopped(pid) # clean-up processs flags self.is_started = False self.process = None @@ -616,17 +617,17 @@ class TarantoolServer(Server): except socket.error as e: time.sleep(0.001) - def wait_until_stopped(self): + def wait_until_stopped(self, pid): """Wait until the server is stoped and has closed sockets""" while True: try: - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.connect(("localhost", self.port)) - sock.close() time.sleep(0.001) + os.kill(pid, 0) continue - except socket.error as e: - break + except OSError as err: + if err.errno == errno.ESRCH: + break + raise def find_tests(self, test_suite, suite_path): def patterned(test, patterns):