Test

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:

  1. Kod stili kontrolleri kullanma clang-format
  2. Birim testleri
  3. 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.