[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
.github/utest/lwip/lwip.cfg vendored Normal file
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

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 }}

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

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

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