From: Tomas Krizek Date: Mon, 19 Nov 2018 18:36:05 +0000 (+0100) Subject: pytests: fix utils.ping_alive X-Git-Tag: v3.2.0~18^2~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b015f262184977ac3b3c023df538aee6dc90895e;p=thirdparty%2Fknot-resolver.git pytests: fix utils.ping_alive --- diff --git a/tests/pytests/conn_flood.py b/tests/pytests/conn_flood.py index bd6d468f5..18d3f83ee 100644 --- a/tests/pytests/conn_flood.py +++ b/tests/pytests/conn_flood.py @@ -67,7 +67,7 @@ def test_conn_flood(tmpdir, sock_func_name): print("Start sending data") for i in range(MAX_ITERATIONS): for s in sockets: - assert utils.ping_alive(s) + utils.ping_alive(s) print("Iteration {} done...".format(i)) print("Close connections") @@ -77,6 +77,6 @@ def test_conn_flood(tmpdir, sock_func_name): # check in kresd is alive print("Check upstream is still alive") sock = make_sock() - assert utils.ping_alive(sock) + utils.ping_alive(sock) print("OK!") diff --git a/tests/pytests/kresd.py b/tests/pytests/kresd.py index acd54b99a..3323fd37a 100644 --- a/tests/pytests/kresd.py +++ b/tests/pytests/kresd.py @@ -72,7 +72,7 @@ class Kresd(ContextDecorator): # issue special msgid to mark start of test log sock = self.ip_tcp_socket() if self.ip else self.ip6_tcp_socket() - utils.ping_alive(sock, close=True, msgid=KRESD_STARTUP_MSGID) + assert utils.try_ping_alive(sock, close=True, msgid=KRESD_STARTUP_MSGID) # sanity check - kresd didn't crash self.process.poll() @@ -105,11 +105,11 @@ class Kresd(ContextDecorator): def all_ports_alive(self, msgid=10001): alive = True if self.ip: - alive &= utils.ping_alive(self.ip_tls_socket(), close=True, msgid=msgid) - alive &= utils.ping_alive(self.ip_tcp_socket(), close=True, msgid=msgid + 1) + alive &= utils.try_ping_alive(self.ip_tls_socket(), close=True, msgid=msgid) + alive &= utils.try_ping_alive(self.ip_tcp_socket(), close=True, msgid=msgid + 1) if self.ip6: - alive &= utils.ping_alive(self.ip6_tls_socket(), close=True, msgid=msgid + 2) - alive &= utils.ping_alive(self.ip6_tcp_socket(), close=True, msgid=msgid + 3) + alive &= utils.try_ping_alive(self.ip6_tls_socket(), close=True, msgid=msgid + 2) + alive &= utils.try_ping_alive(self.ip6_tcp_socket(), close=True, msgid=msgid + 3) return alive def _wait_for_tcp_port(self, delay=0.1, max_attempts=20): @@ -122,7 +122,7 @@ class Kresd(ContextDecorator): time.sleep(delay) continue else: - return utils.ping_alive(sock, close=True, msgid=10000) + return utils.try_ping_alive(sock, close=True, msgid=10000) finally: sock.close() raise RuntimeError("Kresd didn't start in time") diff --git a/tests/pytests/utils.py b/tests/pytests/utils.py index 3cb20deb4..dea7bd982 100644 --- a/tests/pytests/utils.py +++ b/tests/pytests/utils.py @@ -77,13 +77,22 @@ def get_prefixed_garbage(length): return prepare_buffer(data) -def ping_alive(sock, msgid=None, close=False): +def try_ping_alive(sock, msgid=None, close=False): + try: + ping_alive(sock, msgid) + except AssertionError: + return False + finally: + if close: + sock.close() + return True + + +def ping_alive(sock, msgid=None): buff, msgid = get_msgbuff(msgid=msgid) sock.sendall(buff) answer = receive_parse_answer(sock) - if close: - sock.close() - return answer.id == msgid + assert answer.id == msgid @contextmanager