Projekttests
OpenThread, das von Google veröffentlicht wurde, wird mit verschiedenen Tools getestet.
Continuous Integration
OpenThread verwendet GitHub Actions für Continuous Integration (CI) und Codecov für die Codeabdeckung.
CI führt Build-Prüfungen für alle Beispielplattformen mit der GNU Arm Embedded Toolchain und für das simulierte Beispiel mit GCC, Clang und Android durch. Außerdem werden x86-, Plattformarchitektur- und Thread-Gerätekonfigurationen erstellt und getestet. Weitere Informationen zu bestimmten Tests und Prüfungen finden Sie unter Workflows.
Außerdem führt CI Folgendes aus:
- Codestilprüfungen mit
clang-format
- Einheitentests
- Funktionstests für die Befehlszeile,
wpantund
(mittoranj
) und Pyspinel
OSS-Fuzz
OpenThread wird mit OSS-Fuzz getestet. Bei diesem Testverfahren werden ungültige und zufällige Eingaben mit hoher Häufigkeit und Lautstärke an die Software gesendet, um Probleme wie Speicherlecks oder Abstürze zu finden.
Die aktuellen Fuzzing-Build-Ziele finden Sie im OpenThread-Repository.
Produkttests
Mit den folgenden Tools können Sie Ihr eigenes OpenThread-Produkt testen.
Wireshark
Wireshark ist ein Open-Source-Netzwerkprotokoll-Analysetool für Traffic, der auf physischen und virtuellen Netzwerkschnittstellen ausgeführt wird. Das Thread-Protokoll wird in Wireshark 2.4.0 und höher unterstützt. Dokumentation und Downloads für dieses Tool finden Sie unter wireshark.org.
Weitere Informationen dazu, wie Thread in Wireshark unterstützt wird, finden Sie unter Packet-Sniffing mit Pyspinel.
Pyspinel
Pyspinel ist eine Python-Befehlszeile für das Spinel-Protokoll, mit dem OpenThread-NCPs oder -RCPs konfiguriert und verwaltet werden. Diese Befehlszeile ist hauptsächlich auf CI-Tests ausgerichtet. Sie kann jedoch manuell zum Testen und Testen von OpenThread-Co-Prozessor-Instanzen verwendet werden.
Pyspinel wird für Folgendes verwendet:
- Simulierte Co-Prozessor-Tests zur Continuous Integration hinzufügen.
- Tests von Testbetten mit Co-Prozessor-Firmware auf Hardware automatisieren.
- Fehler in Co-Prozessor-Builds von OpenThread beheben
- Einen OpenThread-Co-Prozessor in einen Paket-Sniffer umwandeln.
Weitere Informationen finden Sie unter README
im Pyspinel-Repository.