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:
- Sprawdzanie stylu kodu za pomocą narzędzia
clang-format
- Testy jednostkowe
- 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.