nuttx/Documentation/applications/testing/nettest/index.rst
zhangshuai39 b09d402d06 nettest: Add a guide document for the nettest directory.
Signed-off-by: zhangshuai39 <zhangshuai39@xiaomi.com>
2025-12-18 21:46:43 +08:00

93 lines
No EOL
3.2 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

================
Net Test Module
================
The ``apps/testing/nettest`` directory is used to build testcases related
to the network protocol stack. You can use it on any device with network
protocol stack capabilities.
Directory Structure
===================
::
├──tcp
│ ├── test_tcp_connect_ipv4.c # The testcase of TCP connect
│ ├── ...
│ ├── test_tcp_common.c # TCP testcase common function
│ ├── test_tcp.h # TCP testcases declaration
│ └── test_tcp.c # TCP testcase execution entry
├──udp
│ ├── ...
│ ├── test_udp.h # UDP testcases declaration
│ └── test_udp.c # UDP testcase execution entry
├── ...
├──utils # Utils for testcases
│ ├── ...
│ ├── nettest_netdump.c
│ ├── nettest_tcpserver.c
│ └── utils.h
├── CmakeLists.txt
├── Kconfig # Enable module testcases
├── Make.defs
└── Makefile
How to Build
============
Firstly, all testcases in this directory rely on the cmocka framework,
so please ensure that the following cmocka configuration is turned on:
- ``CONFIG_ALLOW_MIT_COMPONENTS=y``
- ``CONFIG_LIBC_REGEX=y``
- ``CONFIG_TESTING_CMOCKA=y``
Then, open the network part testcase configuration:
- ``CONFIG_TESTING_NET_TEST=y``
Finally, you can choose which protocol testcase to enable through
configuration. Some protocol configurations depend on other network
configurations; you can view the dependencies in the ``Kconfig`` file. Take
the TCP testcase as an example:
- ``CONFIG_NET_TCPBACKLOG=y`` TCP testcase compilation dependencies
- ``CONFIG_NET_TCP=y`` TCP testcase compilation dependencies
- ``CONFIG_TESTING_NET_TCP=y`` TCP testcase configuration items; for other
protocols, just replace the trailing protocol name
How to Run
==========
After the testcase is built, you can run the testcase at the command line through
the following commands:
- ``cmocka --test test_tcp_connect_ipv4`` Run a single testcase
- ``cmocka_net_tcp`` Run TCP testcase (for other protocols, just replace
the trailing protocol name)
In addition, when you run ``cmocka``, the above commands will also be included.
How to Add Testcases
====================
If you want to add testcases, please follow these steps:
1. Add the testcase source file to the corresponding directory. Please follow
the following naming rules for source files:
``test_<protocol>_<function description>_<additional description>.c``
For example: ``test_tcp_connect_ipv4.c``
Test case names are the same as source files, such as ``test_tcp_connect_ipv4()``.
2. Add the testcase source file to the ``CMakeLists.txt`` file.
3. Add the testcase source file to the ``Makefile`` file.
4. Add the testcase to the corresponding declaration file and execute entry file.
For example, ``test_tcp_connect_ipv4()`` needs to be added to ``test_tcp.h``
and ``test_tcp.c``. If you have a separate setup function, also add it to
the above two files.