Test

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:

  1. Codestilprüfungen mit clang-format
  2. Einheitentests
  3. Funktionstests für die Befehlszeile, wpantund (mit toranj) 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.