Testowanie

Testowanie projektu

OpenThread udostępniony przez Google jest testowany za pomocą wielu narzędzi.

Tryb ciągłej integracji

OpenThread używa GitHub Actions do ciągłej integracji (CI) i Codecov do sprawdzania pokrycia kodu.

CI przeprowadza testy kompilacji dla wszystkich platform przykładowych za pomocą GNU Arm Embedded Toolchain oraz dla symulowanego przykładu za pomocą GCC, Clang i Androida. Tworzy też konfiguracje urządzeń x86, platformy i Thread oraz przeprowadza na nich testy. Więcej informacji o konkretnych testach i sprawdzaniach znajdziesz w sekcji Workflows.

Dodatkowo CI wykonuje:

  1. Sprawdzanie stylu kodu za pomocą narzędzia clang-format
  2. Testy jednostkowe
  3. Testy funkcjonalne interfejsu wiersza poleceń i biblioteki Pyspinel

OSS-Fuzz

OpenThread jest testowany pod kątem błędów za pomocą OSS-Fuzz. W tej technice testowania do oprogramowania przesyłane są nieprawidłowe i losowe dane wejściowe z dużą częstotliwością i w dużej ilości, aby wykryć problemy takie jak wycieki pamięci czy awarie.

Listę bieżących celów kompilacji fuzzingu znajdziesz w repozytorium OpenThread.

Testowanie usługi

Do testowania własnego produktu OpenThread możesz użyć tych narzędzi.

Wireshark

Wireshark to analizator protokołów sieciowych open source, który służy do analizowania ruchu w fizycznych i wirtualnych interfejsach sieciowych. Protokół Thread jest obsługiwany w Wiresharku 2.4.0 i nowszych wersjach. Dokumentację i pliki do pobrania dotyczące tego narzędzia znajdziesz na stronie wireshark.org.

Więcej informacji o tym, jak protokół Thread jest obsługiwany w programie Wireshark, znajdziesz w artykule Packet sniffing with Pyspinel (w języku angielskim).

Pyspinel

Pyspinel to interfejs wiersza poleceń Pythona dla protokołu Spinel, który służy do konfigurowania i zarządzania procesorami NCP lub RCP OpenThread. Ten interfejs CLI jest przeznaczony głównie do testów CI, ale można go używać ręcznie do eksperymentowania z instancjami koprocesora OpenThread i ich testowania.

Pyspinel służy do:

  • Dodaj symulowane testowanie koprocesora do ciągłej integracji.
  • Automatyzacja testowania platform testowych z oprogramowaniem układowym procesora pomocniczego na sprzęcie.
  • Debugowanie kompilacji OpenThread na potrzeby koprocesora.
  • Przekształć koprocesor OpenThread w program do przechwytywania pakietów.

Więcej informacji znajdziesz w README w repozytorium Pyspinel.