Testowanie projektu
OpenThread opublikowany przez Google testuje szereg narzędzi.
Tryb ciągłej integracji
OpenThread używa GitHub Actions do ciągłej integracji i Codecov do pokrycia kodu.
CI przeprowadza testy kompilacji na wszystkich przykładowych platformach przy użyciu łańcucha narzędzi GNU Arm embedchain oraz symulowanego przykładu przy użyciu GCC, Clang i Androida. Umożliwia też tworzenie i testowanie testów x86, architektury platformy oraz konfiguracji urządzeń z wątkami. Więcej informacji o określonych testach i testach znajdziesz w artykule Przepływy pracy.
Ponadto CI wykonuje:
- Kontrole stylu kodu za pomocą
clang-format
- Testy jednostkowe
- Testy funkcjonalne interfejsu wiersza poleceń,
wpantund
(ztoranj
) i Pyspinel
OSS-Fuzz
OpenThread jest testowany za pomocą technologii OSS-Fuzz. W ramach tej metody testowania nieprawidłowe i losowe dane wejściowe są przesyłane z dużą częstotliwością do oprogramowania w celu wykrycia problemów, takich jak wycieki pamięci czy awarie.
Zobacz bieżące cele kompilacji Fuzzing w repozytorium OpenThread.
Testowanie produktów
Użyj tych narzędzi, by przetestować własną usługę OpenThread.
Wireshark
Wireshark to analizator protokołów sieciowych typu open source przeznaczony do ruchu związanego z interfejsami fizycznymi i wirtualnymi. Protokół Thread jest obsługiwany w wersji Wireshark 2.4.0 i nowszych. Dokumentację i narzędzia do pobrania znajdziesz na stronie wireshark.org.
Więcej informacji o obsłudze narzędzia Wireshark w zakresie obsługi wątków znajdziesz w artykule Pistota z użyciem Pyspinel.
Pspinel
Pyspinel to interfejs wiersza poleceń w języku Python służący do obsługi protokołu Spinel do konfigurowania stron NCP i RCP w OpenThread oraz zarządzania nimi. Ten interfejs wiersza poleceń jest kierowany przede wszystkim na testy CI, ale można go używać ręcznie do eksperymentowania i testowania instancji współprocesora OpenThread.
Pyspinel służy do:
- Dodaj symulowane testowanie współprocesora do ciągłej integracji.
- Automatyzowanie testowania podkładów testowych z oprogramowaniem układowym współprocesora na sprzęcie.
- Przeprowadź debugowanie współprocesora w przypadku kompilacji OpenThread.
- Konwertuj współprocesor OpenThread na sniffer pakietów.
Więcej informacji znajdziesz w repozytorium README
w repozytorium Pyspinel.