mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-02-06 08:52:21 +08:00
[utest][lwip]add lwip api testcase.
This commit is contained in:
20
.github/utest/lwip/lwip.cfg
vendored
Normal file
20
.github/utest/lwip/lwip.cfg
vendored
Normal 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
.github/workflows/utest_auto_run.yml
vendored
3
.github/workflows/utest_auto_run.yml
vendored
@@ -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 }}
|
||||
|
||||
@@ -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
components/net/utest/Kconfig
Normal file
107
components/net/utest/Kconfig
Normal 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
components/net/utest/SConscript
Normal file
15
components/net/utest/SConscript
Normal 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')
|
||||
1006
components/net/utest/tc_lwip.c
Normal file
1006
components/net/utest/tc_lwip.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user