tests-functional/ -> test/functional/ tests-unit-network/ -> test/unit-network/ No Go code changes beyond the two package paths. Every reference follows: Makefile targets, the pytest-lint and reliability workflows, the three Jenkinsfiles, the root Dockerfile, pyrightconfig.json, .gitignore, the benchmark and functional-test scripts, and the docs. All paths inside the moved directories are self-contained (docker compose uses `context: .`, the Python helpers resolve from __file__), so the extra level of nesting does not reach outside. refs #7067
1.8 KiB
Reliability Test Suite
This test suite, located under test/functional/tests/reliability, is designed to evaluate the robustness and stability of the system under challenging network and runtime conditions. These tests go beyond typical functional checks and simulate real-world scenarios that stress the system's resilience.
🧪 What We Test
The suite includes tests that simulate:
-
Adverse network conditions:
- High latency
- Packet loss
- Low bandwidth
-
Node lifecycle disruptions:
- Runtime IP address changes
- Node pause/unpause behavior
-
Network protocols:
- IPv4 and IPv6 coverage
-
System rate limiting:
- Testing throttling mechanisms under stress
🚀 How to Run
Running the reliability tests is nearly identical to running functional tests see how-to-run guide. Example of running a test:
pytest test/functional/tests/reliability/ -k test_one_to_one_message_with_latency
Note! To run locally you need tc (ex: wasn't able to run it on windows or wsl) on your host.
🕒 CI Integration
These tests are executed:
- Nightly on a schedule
- On demand, via GitHub Actions
Workflow link: test-reliability.yml
Both IPv4 and IPv6 test runs are included in CI to ensure broad network compatibility.
📊 Reporting
Test results are available in the GitHub Actions summary of each run. For example:
While the reporting is currently minimal, it provides quick insight into which tests passed or failed, and under what conditions.