[utest][lwip]add lwip api testcase.

This commit is contained in:
Rbb666
2025-09-09 12:39:54 +08:00
committed by R b b666
parent 1034e5b4fd
commit 4832f0482a
6 changed files with 1152 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
# dependencies
CONFIG_RT_CONSOLEBUF_SIZE=1024
CONFIG_RT_NAME_MAX=24
CONFIG_RT_USING_CI_ACTION=y
CONFIG_RT_LWIP_NETIF_LOOPBACK=y
CONFIG_LWIP_NETIF_LOOPBACK=1
CONFIG_RT_UTEST_TC_USING_LWIP=y
CONFIG_RT_UTEST_LWIP_DNS_TEST=y
CONFIG_RT_UTEST_LWIP_TCP_TEST=y
CONFIG_RT_UTEST_LWIP_UDP_TEST=y
CONFIG_RT_UTEST_LWIP_ICMP_TEST=y
CONFIG_RT_UTEST_LWIP_SOCKET_OPT_TEST=y
CONFIG_RT_UTEST_LWIP_ADDR_CONV_TEST=y
CONFIG_RT_UTEST_LWIP_NETIF_TEST=y
CONFIG_RT_UTEST_LWIP_TCP_PORT=1234
CONFIG_RT_UTEST_LWIP_UDP_PORT=1235
CONFIG_RT_UTEST_LWIP_TEST_URL="www.rt-thread.org"
CONFIG_RT_UTEST_LWIP_TEST_ADDR="180.163.146.111"
CONFIG_BSP_DRV_EMAC=y
+3
View File
@@ -58,6 +58,9 @@ jobs:
- platform: { UTEST: "A9", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", SD_FILE: "sd.bin", KERNEL: "standard", "SMP_RUN":"" }
config_file: "cpp11/cpp11.cfg"
- platform: { UTEST: "A9", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", SD_FILE: "sd.bin", KERNEL: "standard", "SMP_RUN":"" }
config_file: "lwip/lwip.cfg"
env:
TEST_QEMU_ARCH: ${{ matrix.platform.QEMU_ARCH }}
TEST_QEMU_MACHINE: ${{ matrix.platform.QEMU_MACHINE }}
+1
View File
@@ -23,6 +23,7 @@ rsource "src/klibc/utest/Kconfig"
rsource "components/drivers/audio/utest/Kconfig"
rsource "components/dfs/utest/Kconfig"
rsource "components/net/utest/Kconfig"
endif
+107
View File
@@ -0,0 +1,107 @@
if RT_USING_LWIP
menu "LwIP Network Unit Testcase"
config RT_UTEST_TC_USING_LWIP
bool "lwIP API test"
help
Enable lwIP network stack unit tests including DNS resolution,
TCP/UDP socket operations, and network interface tests
if RT_UTEST_TC_USING_LWIP
config RT_UTEST_LWIP_DNS_TEST
bool "DNS resolution test"
default y
help
Enable DNS resolution unit tests including gethostbyname()
and gethostbyname_r() functions for hostname to IP resolution,
as well as getaddrinfo() and freeaddrinfo() for address info
retrieval and release. Tests verify successful resolution
without hardcoded IP comparisons.
config RT_UTEST_LWIP_TCP_TEST
bool "TCP socket test"
default y
help
Enable TCP socket unit tests including client-server communication
with echo functionality, socket creation, binding, listening,
accepting connections, data transmission with varying buffer sizes,
socket options (TCP_NODELAY, SO_REUSEADDR, SO_REUSEPORT),
and connection management (shutdown, close).
config RT_UTEST_LWIP_UDP_TEST
bool "UDP socket test"
default y
help
Enable UDP socket unit tests including datagram transmission
and reception, client-server echo communication, socket binding
to any port, select() operations with timeout, recvfrom/sendto
functions, and timeout handling for receive operations.
config RT_UTEST_LWIP_ICMP_TEST
bool "ICMP ping test"
default y
help
Enable ICMP ping unit tests using raw sockets to send
ICMP echo requests and receive echo replies. Tests verify
basic ICMP functionality with loopback address (127.0.0.1).
config RT_UTEST_LWIP_SOCKET_OPT_TEST
bool "Socket options test"
default y
help
Enable socket options unit tests including setsockopt()
and getsockopt() functions. Tests verify setting and
retrieving socket options such as SO_REUSEADDR.
config RT_UTEST_LWIP_ADDR_CONV_TEST
bool "Address conversion test"
default y
help
Enable address conversion unit tests including inet_addr()
for converting string IP addresses to binary format and
inet_ntoa() for converting binary addresses back to strings.
Tests verify proper conversion functionality.
config RT_UTEST_LWIP_NETIF_TEST
bool "Network interface management test"
default y
help
Enable network interface management unit tests including
netif_set_up(), netif_set_down(), and netif_set_default()
functions. Tests verify interface state changes and
default interface configuration.
config RT_UTEST_LWIP_TCP_PORT
int "TCP test port"
default 1234
range 1024 65535
help
Configure the TCP port number for unit test communication.
Must be in the range 1024-65535 to avoid system ports
config RT_UTEST_LWIP_UDP_PORT
int "UDP test port"
default 1235
range 1024 65535
help
Configure the UDP port number for unit test communication.
Must be in the range 1024-65535 to avoid system ports
config RT_UTEST_LWIP_TEST_URL
string "Test domain name"
default "www.rt-thread.org"
help
Configure the domain name for DNS resolution tests.
This domain will be resolved to verify DNS functionality
config RT_UTEST_LWIP_TEST_ADDR
string "Expected IP address"
default "180.163.146.111"
help
Configure the expected IP address for DNS resolution verification.
This should match the actual IP of the test domain
endif
endmenu
endif
+15
View File
@@ -0,0 +1,15 @@
Import('rtconfig')
from building import *
cwd = GetCurrentDir()
src = []
CPPPATH = [cwd]
if GetDepend('RT_UTEST_TC_USING_LWIP'):
# Add lwIP test source if enabled
src += ['tc_lwip.c']
# Define the test group with proper dependencies
group = DefineGroup('utestcases', src, depend = ['RT_USING_UTESTCASES', 'RT_USING_LWIP'], CPPPATH = CPPPATH)
Return('group')
File diff suppressed because it is too large Load Diff