Testowanie

Testowanie projektu

Oprogramowanie OpenThread udostępnione przez Google jest testowane przy użyciu kilku narzędzi.

Tryb ciągłej integracji

OpenThread wykorzystuje GitHub Actions do ciągłej integracji (CI) oraz Codecov do obsługi kodu.

CI przeprowadza sprawdzanie kompilacji dla wszystkich przykładowych platform za pomocą narzędzia GNU Arm Embeddedchchin oraz symulowanego przykładu za pomocą GCC, Clang i Androida. Tworzy też i testuje konfigurację na poziomie x86, architektury platformy i wątków. Więcej informacji o konkretnych testach i testach znajdziesz w artykule o przepływach pracy.

Dodatkowo CI wykonuje:

  1. Testy stylu kodu: clang-format
  2. Testy jednostkowe
  3. Testy funkcjonalne pod kątem interfejsu wiersza poleceń, wpantund(z toranj) i Pyspinela

OSS-Fuzz

Wątek OpenThread został przetestowany przez fuzz przy użyciu OSS-Fuzz. W tej metodzie testowania nieprawidłowe i losowe dane wejściowe są przesyłane do oprogramowania z dużą częstotliwością i głośnością w celu znalezienia takich problemów jak wycieki pamięci i awarie.

W repozytorium OpenThread znajdziesz bieżące docelowe elementy kompilacji.

Testowanie produktu

Aby przetestować własny produkt OpenThread, użyj poniższych narzędzi.

Wireshark

Wireshark to Analizator sieciowy typu open source dla ruchu działającego w interfejsach sieci fizycznych i wirtualnych. Protokół Thread jest obsługiwany w Wireshark 2.4.0 i nowszych wersjach. Dokumentacja i pobrania tego narzędzia są dostępne na wireshark.org.

Więcej informacji o tym, jak wątek jest obsługiwany w Wireshark, znajdziesz w artykule na temat sniffingu przy użyciu Pyspinela.

Pispinel

Pyspinel to interfejs wiersza poleceń Python używany przez Spinel Protocol, służący do konfigurowania CPThreads NCPs lub RCP oraz zarządzania nimi. Ten interfejs wiersza poleceń jest przeznaczony głównie do testów CI, ale można go używać ręcznie do eksperymentowania z testowymi instancjami Co-Procesor firmy OpenThread.

Język Pyspinel jest używany do:

  • Dodaj symulowane testy z wykorzystaniem procesora głównego, które umożliwiają stałą integrację.
  • Automatyzuj testowanie łóżek testowych z oprogramowaniem układowym na potrzeby procesora procesora.
  • Debuguj kompilacje Co-Procesor z OpenOpen.
  • Konwertuj koprocesora OpenThread na sniffera pakietów.

Więcej informacji znajdziesz w opisie README w repozytorium Pyspinel.