Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
281 changes: 144 additions & 137 deletions components/net/utest/Kconfig
Original file line number Diff line number Diff line change
@@ -1,137 +1,144 @@
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

if RT_USING_NETDEV
menu "Netdev Network Unit Testcase"

config RT_UTEST_TC_USING_NETDEV
bool "netdev api test"
help
Enable netdev network device framework unit tests.

Test coverage includes:
* Network connectivity (ping operations)
* DHCP functionality (enable/disable/restore)
* DNS configuration and hostname resolution
* Interface configuration (IP/gateway/netmask)
* IP address conversion functions
* Device retrieval and management
* Status control and callback mechanisms

if RT_UTEST_TC_USING_NETDEV

config RT_UTEST_DEFAULT_NETDEV_NAME
string "Default netdev name"
default "e0"
help
Network interface name for tests. Common values:
"e0" (Ethernet), "w0" (Wireless).
Ensure the device exists in your environment.
endif
endmenu
endif
menuconfig RT_UTEST_TC_USING_NETWORK
depends on RT_USING_UTEST
bool "Network Unit Testcase"
default n

if RT_UTEST_TC_USING_NETWORK

menuconfig RT_UTEST_TC_USING_SAL
select RT_USING_SAL
bool "SAL Unit Testcase"
default n

menuconfig RT_UTEST_TC_USING_NETDEV
select RT_USING_NETDEV
bool "netdev api test"
help
Enable netdev network device framework unit tests.

Test coverage includes:
* Network connectivity (ping operations)
* DHCP functionality (enable/disable/restore)
* DNS configuration and hostname resolution
* Interface configuration (IP/gateway/netmask)
* IP address conversion functions
* Device retrieval and management
* Status control and callback mechanisms

if RT_UTEST_TC_USING_NETDEV

config RT_UTEST_DEFAULT_NETDEV_NAME
string "Default netdev name"
default "e0"
help
Network interface name for tests. Common values:
"e0" (Ethernet), "w0" (Wireless).
Ensure the device exists in your environment.
endif

menuconfig RT_UTEST_TC_USING_LWIP
select RT_USING_LWIP
select RT_LWIP_NETIF_LOOPBACK
bool "lwIP Unit Testcase"
default n
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
endif
17 changes: 9 additions & 8 deletions components/net/utest/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@ cwd = GetCurrentDir()
src = []
CPPPATH = [cwd]

if GetDepend('RT_UTEST_TC_USING_LWIP') or GetDepend('RT_UTEST_TC_USING_NETDEV'):
if GetDepend('RT_UTEST_TC_USING_LWIP'):
# Add lwIP test source if enabled
src += ['tc_lwip.c']

if GetDepend('RT_UTEST_TC_USING_LWIP'):
# Add lwIP test source if enabled
src += ['tc_lwip.c']
if GetDepend('RT_UTEST_TC_USING_NETDEV'):
# Add netdev test source if enabled
src += ['tc_netdev.c']

if GetDepend('RT_UTEST_TC_USING_NETDEV'):
# Add netdev test source if enabled
src += ['tc_netdev.c']
if GetDepend('RT_UTEST_TC_USING_SAL'):
src += ['tc_sal_socket.c']

# Define the test group with proper dependencies
group = DefineGroup('utestcases', src, depend = ['RT_USING_UTESTCASES'], CPPPATH = CPPPATH)
group = DefineGroup('utestcases', src, depend = ['RT_UTEST_TC_USING_NETWORK'], CPPPATH = CPPPATH)

Return('group')
Loading