Test

Proje testi

Google tarafından yayınlanan OpenThread bir dizi araç tarafından test edilmektedir.

Sürekli entegrasyon

OpenThread, sürekli entegrasyon için GitHub Actions'ı (CI) ve kod kapsamı için Codecov'u kullanıyor.

CI, GNU Arm Yerleşik Araç Zinciri'ni kullanarak tüm örnek platformlar 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 göre geliştirip test eder. Belirli testler ve kontroller hakkında daha fazla bilgi için İş akışları bölümüne bakın.

Ayrıca CI şunları da gerçekleştirir:

  1. clang-format kullanarak kod stili kontrolleri
  2. Birim testleri
  3. KSA, wpantund (toranj ile) ve Pyspinel ile yapılan işlevsel testler

OSS-Fuzz

OpenThread, OSS-Fuzz ile fuzz testi yapıldı. Bu test tekniğinde geçersiz ve rastgele girişler, bellek sızıntıları veya kilitlenmeler gibi sorunları bulmak için yüksek sıklıkta ve hacimde yazılıma gönderilir.

Mevcut fuzzing 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ü analizcisidir. Mesaj Dizisi protokolü Wireshark 2.4.0 ve sonraki sürümlerde desteklenir. Bu araçla ilgili dokümanları ve indirmeleri wireshark.org adresinde bulabilirsiniz.

Thread'ın Wireshark'da nasıl desteklendiği hakkında daha fazla bilgi edinmek için Pyspinel ile paket koklama bölümüne bakın.

Pist

Pyspinel, OpenThread NCP'leri veya RCP'leri yapılandırmak ve yönetmek için kullanılan Spinel protokolü için bir Python KSA'dır. Bu KSA, öncelikli olarak CI testlerine yöneliktir ancak OpenThread Co-Processor örneklerini test etmek ve test etmek için manuel olarak kullanılabilir.

Psiklor aşağıdaki amaçlarla kullanılır:

  • Sürekli entegrasyona simüle edilmiş Ortak İşlemci testi ekleyin.
  • Donanım üzerinde Ortak İşlemci donanım yazılımı çalıştıran test yataklarının testini otomatikleştirin.
  • OpenThread iş ortağının derlemelerinde hata ayıklayın.
  • OpenThread Ortak İşlemciyi paket yoklayıcıya dönüştürün.

Daha fazla bilgi için Pyspinel veri havuzundaki README bölümüne göz atın.