From 1871825d7b77afa9f2c392a30fffb3eec1c495a1 Mon Sep 17 00:00:00 2001 From: Chen Yudong Date: Thu, 22 Dec 2022 11:03:22 +0800 Subject: [PATCH 1/2] CI: optimize example protocol test cases --- examples/protocols/icmp_echo/example_test.py | 2 +- .../sockets/tcp_server/example_test.py | 1 + .../sockets/udp_client/example_test.py | 23 +++++++++++++++---- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/examples/protocols/icmp_echo/example_test.py b/examples/protocols/icmp_echo/example_test.py index 3a0da81a71..eb9ddae907 100644 --- a/examples/protocols/icmp_echo/example_test.py +++ b/examples/protocols/icmp_echo/example_test.py @@ -12,7 +12,7 @@ def test_examples_icmp_echo(env, extra_data): dut = env.get_dut('icmp_echo', 'examples/protocols/icmp_echo') dut.start_app() - dut.expect('example_connect: Connected to') + dut.expect('example_connect: Connected to', timeout=60) dut.expect('esp>') ping_dest = os.getenv('EXAMPLE_ICMP_SERVER', 'www.espressif.com') diff --git a/examples/protocols/sockets/tcp_server/example_test.py b/examples/protocols/sockets/tcp_server/example_test.py index 42f5d9a41b..a16aaf86e5 100644 --- a/examples/protocols/sockets/tcp_server/example_test.py +++ b/examples/protocols/sockets/tcp_server/example_test.py @@ -68,6 +68,7 @@ def test_examples_protocol_socket_tcpserver(env, extra_data): ipv6_r = r':'.join((r'[0-9a-fA-F]{4}',) * 8) # expect all 8 octets from IPv6 (assumes it's printed in the long form) ipv6 = dut1.expect(re.compile(r' IPv6 address: ({})'.format(ipv6_r)), timeout=30)[0] print('Connected with IPv4={} and IPv6={}'.format(ipv4, ipv6)) + dut1.expect('Socket listening') # test IPv4 received = tcp_client(ipv4, MESSAGE) diff --git a/examples/protocols/sockets/udp_client/example_test.py b/examples/protocols/sockets/udp_client/example_test.py index 9919a3746d..1cfe16c179 100644 --- a/examples/protocols/sockets/udp_client/example_test.py +++ b/examples/protocols/sockets/udp_client/example_test.py @@ -17,6 +17,7 @@ from threading import Event, Thread import netifaces import ttfw_idf +from tiny_test_fw.DUT import ExpectTimeout # ----------- Config ---------- PORT = 3333 @@ -104,14 +105,28 @@ def test_examples_protocol_socket_udpclient(env, extra_data): with UdpServer(PORT, socket.AF_INET): server_ip = get_my_ip(netifaces.AF_INET) print('Connect udp client to server IP={}'.format(server_ip)) - dut1.write(server_ip) - dut1.expect(re.compile(r'OK: Message from ESP32')) + for _ in range(3): + try: + dut1.write(server_ip) + dut1.expect(re.compile(r'OK: Message from ESP32')) + break + except ExpectTimeout: + pass + else: + raise ValueError('Failed to send/recv udp packets.') # test IPv6 with UdpServer(PORT, socket.AF_INET6): server_ip = get_my_ip(netifaces.AF_INET6) print('Connect udp client to server IP={}'.format(server_ip)) - dut1.write(server_ip) - dut1.expect(re.compile(r'OK: Message from ESP32')) + for _ in range(3): + try: + dut1.write(server_ip) + dut1.expect(re.compile(r'OK: Message from ESP32')) + break + except ExpectTimeout: + pass + else: + raise ValueError('Failed to send/recv udp packets.') if __name__ == '__main__': From db5bee5c16d9e0633b976e5b74929c7da06103d4 Mon Sep 17 00:00:00 2001 From: Chen Yudong Date: Mon, 13 Feb 2023 13:03:30 +0800 Subject: [PATCH 2/2] example: fix got ip error in protocol tests --- .../http_server/advanced_tests/http_server_advanced_test.py | 2 +- .../persistent_sockets/http_server_persistence_test.py | 2 +- .../protocols/http_server/simple/http_server_simple_test.py | 2 +- .../http_server/ws_echo_server/ws_server_example_test.py | 2 +- examples/protocols/https_server/simple/example_test.py | 6 +++--- .../https_server/wss_server/wss_server_example_test.py | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/protocols/http_server/advanced_tests/http_server_advanced_test.py b/examples/protocols/http_server/advanced_tests/http_server_advanced_test.py index ff10986bf7..215ab08ae2 100644 --- a/examples/protocols/http_server/advanced_tests/http_server_advanced_test.py +++ b/examples/protocols/http_server/advanced_tests/http_server_advanced_test.py @@ -51,7 +51,7 @@ def test_examples_protocol_http_server_advanced(env, extra_data): # Parse IP address of STA Utility.console_log('Waiting to connect with AP') - got_ip = dut1.expect(re.compile(r'(?:[\s\S]*)IPv4 address: (\d+.\d+.\d+.\d+)'), timeout=30)[0] + got_ip = dut1.expect(re.compile(r'(?:[\s\S]*)IPv4 address: (\d+\.\d+\.\d+\.\d+)[^\d]'), timeout=30)[0] got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Started HTTP server on port: '(\d+)'"), timeout=15)[0] result = dut1.expect(re.compile(r"(?:[\s\S]*)Max URI handlers: '(\d+)'(?:[\s\S]*)Max Open Sessions: " # noqa: W605 diff --git a/examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py b/examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py index 1f463c754f..e21744c5dc 100644 --- a/examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py +++ b/examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py @@ -47,7 +47,7 @@ def test_examples_protocol_http_server_persistence(env, extra_data): # Parse IP address of STA Utility.console_log('Waiting to connect with AP') - got_ip = dut1.expect(re.compile(r'(?:[\s\S]*)IPv4 address: (\d+.\d+.\d+.\d+)'), timeout=30)[0] + got_ip = dut1.expect(re.compile(r'(?:[\s\S]*)IPv4 address: (\d+\.\d+\.\d+\.\d+)[^\d]'), timeout=30)[0] got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Starting server on port: '(\d+)'"), timeout=30)[0] Utility.console_log('Got IP : ' + got_ip) diff --git a/examples/protocols/http_server/simple/http_server_simple_test.py b/examples/protocols/http_server/simple/http_server_simple_test.py index ea4992c199..336269d3b3 100644 --- a/examples/protocols/http_server/simple/http_server_simple_test.py +++ b/examples/protocols/http_server/simple/http_server_simple_test.py @@ -78,7 +78,7 @@ def test_examples_protocol_http_server_simple(env, extra_data): # Parse IP address of STA Utility.console_log('Waiting to connect with AP') - got_ip = dut1.expect(re.compile(r'(?:[\s\S]*)IPv4 address: (\d+.\d+.\d+.\d+)'), timeout=30)[0] + got_ip = dut1.expect(re.compile(r'(?:[\s\S]*)IPv4 address: (\d+\.\d+\.\d+\.\d+)[^\d]'), timeout=30)[0] got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Starting server on port: '(\d+)'"), timeout=30)[0] Utility.console_log('Got IP : ' + got_ip) diff --git a/examples/protocols/http_server/ws_echo_server/ws_server_example_test.py b/examples/protocols/http_server/ws_echo_server/ws_server_example_test.py index 2767051752..ab15f8dfb9 100644 --- a/examples/protocols/http_server/ws_echo_server/ws_server_example_test.py +++ b/examples/protocols/http_server/ws_echo_server/ws_server_example_test.py @@ -63,7 +63,7 @@ def test_examples_protocol_http_ws_echo_server(env, extra_data): # Parse IP address of STA Utility.console_log('Waiting to connect with AP') - got_ip = dut1.expect(re.compile(r'IPv4 address: (\d+.\d+.\d+.\d+)'), timeout=60)[0] + got_ip = dut1.expect(re.compile(r'IPv4 address: (\d+\.\d+\.\d+\.\d+)[^\d]'), timeout=60)[0] got_port = dut1.expect(re.compile(r"Starting server on port: '(\d+)'"), timeout=60)[0] Utility.console_log('Got IP : ' + got_ip) diff --git a/examples/protocols/https_server/simple/example_test.py b/examples/protocols/https_server/simple/example_test.py index 9a3a4083ba..7f75b7895d 100644 --- a/examples/protocols/https_server/simple/example_test.py +++ b/examples/protocols/https_server/simple/example_test.py @@ -106,11 +106,11 @@ def test_examples_protocol_https_server_simple(env, extra_data): # type: (tiny_ # start test dut1.start_app() # Parse IP address and port of the server - dut1.expect(re.compile(r'Starting server')) - got_port = dut1.expect(re.compile(r'Server listening on port (\d+)'), timeout=30)[0] + dut1.expect(re.compile(r'Starting server'), timeout=60) + got_port = dut1.expect(re.compile(r'Server listening on port (\d+)[^\d]'), timeout=30)[0] Utility.console_log('Waiting to connect with AP') - got_ip = dut1.expect(re.compile(r'IPv4 address: (\d+\.\d+\.\d+\.\d+)'), timeout=30)[0] + got_ip = dut1.expect(re.compile(r'IPv4 address: (\d+\.\d+\.\d+\.\d+)[^\d]'), timeout=30)[0] # Expected logs Utility.console_log('Got IP : ' + got_ip) diff --git a/examples/protocols/https_server/wss_server/wss_server_example_test.py b/examples/protocols/https_server/wss_server/wss_server_example_test.py index b7e088b4a1..56a7b471a7 100644 --- a/examples/protocols/https_server/wss_server/wss_server_example_test.py +++ b/examples/protocols/https_server/wss_server/wss_server_example_test.py @@ -133,9 +133,9 @@ def test_examples_protocol_https_wss_server(env, extra_data): # type: (tiny_tes dut1.start_app() # Parse IP address of STA - got_port = dut1.expect(re.compile(r'Server listening on port (\d+)'), timeout=60)[0] + got_port = dut1.expect(re.compile(r'Server listening on port (\d+)[^\d]'), timeout=60)[0] Utility.console_log('Waiting to connect with AP') - got_ip = dut1.expect(re.compile(r'IPv4 address: (\d+\.\d+\.\d+\.\d+)'), timeout=60)[0] + got_ip = dut1.expect(re.compile(r'IPv4 address: (\d+\.\d+\.\d+\.\d+)[^\d]'), timeout=60)[0] Utility.console_log('Got IP : ' + got_ip) Utility.console_log('Got Port : ' + got_port)