From: Tomas Krizek Date: Mon, 19 Nov 2018 17:35:15 +0000 (+0100) Subject: pytests: import test_oob X-Git-Tag: v3.2.0~18^2~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6465b672ebc4b14a8d0a431a77253a03854552d7;p=thirdparty%2Fknot-resolver.git pytests: import test_oob --- diff --git a/tests/pytests/test_conn_mgmt.py b/tests/pytests/test_conn_mgmt.py index 28730f3b0..b9762bee6 100644 --- a/tests/pytests/test_conn_mgmt.py +++ b/tests/pytests/test_conn_mgmt.py @@ -1,5 +1,6 @@ """TCP Connection Management tests""" +import socket import struct import time @@ -120,6 +121,28 @@ def test_ignore_jumbo_message(kresd_sock): assert answer.id == msgid2 +@pytest.mark.parametrize('sock_func_name', [ + 'ip_tcp_socket', + 'ip6_tcp_socket', +]) +def test_oob(kresd, sock_func_name): + """TCP out-of-band (urgent) data must not crash resolver.""" + make_sock = getattr(kresd, sock_func_name) + sock = make_sock() + msg_buff, msgid = utils.get_msgbuff() + sock.sendall(msg_buff, socket.MSG_OOB) + + try: + msg_answer = utils.receive_parse_answer(sock) + assert msg_answer.id == msgid + except ConnectionError: + pass # TODO kresd responds with TCP RST, this should be fixed + + # check kresd is alive + sock2 = make_sock() + utils.ping_alive(sock2) + + def flood_buffer(msgcount): flood_buff = bytes() msgbuff, _ = utils.get_msgbuff()