Test

Projekttests

OpenThread wird von Google durch verschiedene Tools getestet.

Continuous Integration

OpenThread verwendet GitHub Actions (Continuous Actions) für die 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. Es erstellt und testet außerdem x86-, Plattformarchitektur und Thread-Gerätekonfigurationen. Weitere Informationen zu bestimmten Tests und Prüfungen finden Sie unter Workflows.

Außerdem führt CI folgende Schritte aus:

  1. Codestilprüfungen mit clang-format
  2. Einheitentests
  3. Funktionstests für die Befehlszeile, wpantund (mit toranj) und Pyspinel

OSS-Fuzz

OpenThread ist 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.

Informationen zu den aktuellen Build-Zielen finden Sie im OpenThread-Repository.

Produkttests

Verwenden Sie die folgenden Tools, um Ihr eigenes OpenThread-Produkt zu testen.

Wireshark

Wireshark ist ein Open-Source-Netzwerkprotokollanalyse-Tool für Traffic auf physischen und virtuellen Netzwerkschnittstellen. 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, findest du unter Packet-Sniffing mit Pyspinel.

Pyspinel

Pyspinel ist eine Python-Befehlszeile für das Spinel-Protokoll, mit der Sie OpenThread-NCPs oder -RCPs konfigurieren und verwalten können. Diese Befehlszeile ist primär auf CI-Tests ausgerichtet, kann aber manuell zum Testen und Testen von OpenThread-Co-Prozessorinstanzen verwendet werden.

Pyspinel wird verwendet für:

  • Fügen Sie der kontinuierlichen Integration simulierte Co-Prozessor-Tests hinzu.
  • Tests von Testbetten mit Co-Prozessor-Firmware auf Hardware automatisieren.
  • Fehler bei Co-Prozessor-Builds von OpenThread beheben
  • Konvertieren Sie einen OpenThread-Co-Prozessor in einen Paket-Sniffer.

Weitere Informationen finden Sie unter README im Pyspinel-Repository.