Nexus is a test framework for OpenThread testing.
examples/platforms/simulation), where nodes run in separate processes and interact via POSIX sockets, Nexus nodes are simulated within a single process.To build Nexus test cases, the tests/nexus/build.sh script can be used:
top_builddir=nexus_test ./tests/nexus/build.sh
By default, the script builds for IEEE 802.15.4. To build for TREL tests, use the trel argument:
top_builddir=nexus_test ./tests/nexus/build.sh trel
The tests/nexus/run_nexus_tests.sh script automates the process of running tests and performing packet verification using corresponding Python scripts.
To run all default tests:
top_builddir=nexus_test ./tests/nexus/run_nexus_tests.sh
To run a specific test:
top_builddir=nexus_test ./tests/nexus/run_nexus_tests.sh 5_1_1
The script runs the Nexus C++ test (which generates a JSON file and optionally a PCAP file) and then executes the Python verification script (e.g., verify_5_1_1.py) if it exists. Artifacts for each test are preserved in a temporary directory if the test fails.
Each test can be run directly from the build directory. C++ tests typically take a topology name (if applicable) and a JSON output filename as arguments.
./nexus_test/tests/nexus/nexus_6_1_1 A test_6_1_1.json
The verification script can then be run manually:
python3 ./tests/nexus/verify_6_1_1.py test_6_1_1.json