Proje testi
Google tarafından yayınlanan OpenThread, çeşitli araçlarla test edilmiştir.
Sürekli entegrasyon
OpenThread, sürekli entegrasyon (CI) için GitHub Actions'ı, kod kapsamı için ise Codecov'u kullanır.
CI, GNU Arm Embedded Toolchain'i kullanarak tüm örnek platformlar için ve GCC, Clang ve Android'i kullanarak simüle edilmiş örnek için derleme kontrolleri gerçekleştirir. Ayrıca x86, platform mimarisi ve Thread cihaz yapılandırmalarına karşı derleme ve test işlemleri de yapar. Belirli testler ve kontroller hakkında daha fazla bilgi için İş akışları başlıklı makaleyi inceleyin.
Ayrıca CI aşağıdaki işlemleri gerçekleştirir:
- Kod stili kontrolleri kullanma
clang-format
- Birim testleri
- KSA ve Pyspinel'e karşı işlevsel testler
OSS-Fuzz
OpenThread, OSS-Fuzz ile fuzz testine tabi tutulur. Bu test tekniğinde, bellek sızıntıları veya kilitlenmeler gibi sorunları bulmak için yazılıma yüksek sıklıkta ve hacimde geçersiz ve rastgele girişler gönderilir.
Mevcut bulanıklaştırma derleme hedefleri için OpenThread deposuna bakın.
Ürün testi
Kendi OpenThread ürününüzü test etmek için aşağıdaki araçları kullanın.
Wireshark
Wireshark, fiziksel ve sanal ağ arayüzlerinde çalışan trafik için açık kaynaklı bir ağ protokolü analiz aracıdır. Thread protokolü, Wireshark 2.4.0 ve sonraki sürümlerde desteklenir. Bu araçla ilgili dokümanları ve indirmeleri wireshark.org adresinde bulabilirsiniz.
Thread'in Wireshark'ta nasıl desteklendiği hakkında daha fazla bilgi için Pyspinel ile paket yakalama başlıklı makaleyi inceleyin.
Pyspinel
Pyspinel, Spinel protokolü için bir Python CLI'dir. OpenThread NCP'leri veya RCP'leri yapılandırmak ve yönetmek için kullanılır. Bu CLI öncelikle CI testleri için tasarlanmıştır ancak OpenThread yardımcı işlemci örnekleriyle deneme yapmak ve bunları test etmek için manuel olarak da kullanılabilir.
Pyspinel şu amaçlarla kullanılır:
- Sürekli entegrasyona simüle edilmiş yardımcı işlemci testi ekleyin.
- Donanımda yardımcı işlemci donanım yazılımı çalıştıran test yataklarının testini otomatikleştirin.
- OpenThread'in yardımcı işlemci derlemelerinde hata ayıklama.
- OpenThread yardımcı işlemcisini paket yakalayıcıya dönüştürme.
Daha fazla bilgi için Pyspinel deposundaki
README
bölümüne bakın.