tests: Add socket timeout tests for connect and recv.

Signed-off-by: stijn <stijn@ignitron.net>
pull/12810/head
stijn 2023-10-25 11:55:38 +02:00
rodzic a0127919bc
commit 07f229e030
4 zmienionych plików z 60 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,37 @@
import errno
import socket
PORT = 8000
# Server
def instance0():
multitest.globals(IP=multitest.get_network_ip())
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(socket.getaddrinfo("0.0.0.0", PORT)[0][-1])
s.listen()
multitest.next()
s2, _ = s.accept()
s2.settimeout(0.2)
try:
s2.recv(1)
except OSError as er:
print(er.errno in (errno.ETIMEDOUT, errno.EAGAIN) or str(er) == "timed out")
multitest.next()
s2.close()
s.close()
# Client
def instance1():
multitest.next()
s = socket.socket()
s.connect(socket.getaddrinfo(IP, PORT)[0][-1])
s.settimeout(0.2)
try:
s.recv(1)
except OSError as er:
print(er.errno in (errno.ETIMEDOUT, errno.EAGAIN) or str(er) == "timed out")
multitest.next()
s.close()

Wyświetl plik

@ -0,0 +1,6 @@
--- instance0 ---
True
NEXT
--- instance1 ---
True
NEXT

Wyświetl plik

@ -0,0 +1,16 @@
import errno
import socket
def test(peer_addr):
s = socket.socket()
s.settimeout(1)
try:
s.connect(peer_addr)
except OSError as er:
print(er.errno == errno.ETIMEDOUT or str(er) == "timed out")
s.close()
if __name__ == "__main__":
test(socket.getaddrinfo("192.0.0.0", 8888)[0][-1])

Wyświetl plik

@ -0,0 +1 @@
True