Proje testi
Google tarafından yayınlanan OpenThread çok sayıda araç tarafından test edilmiştir.
Sürekli entegrasyon
OpenThread, sürekli entegrasyon (CI) için GitHub Actions ve kod kapsamı için Codecov kullanır.
CI, GNU Arm Yerleşik Araç Zinciri kullanarak tüm örnek platformlar ve GCC, Clang ve Android kullanılarak simüle edilmiş örnek için derleme kontrolleri yapar. Ayrıca x86, platform mimarisi ve Thread cihaz yapılandırmalarına göre derleyip test eder. Belirli testler ve kontroller hakkında daha fazla bilgi için İş akışları konusuna bakın.
Ayrıca CI şunları gerçekleştirir:
clang-format
kullanarak kod stili kontrolleri- Birim testleri
- KSA,
wpantund
(toranj
ile) ve Pyspinel ile işlevsel testler
OSS-Fuzz
OpenThread, OSS-Fuzz ile fuzz test edildi. Bu test tekniğinde geçersiz ve rastgele girişler, bellek sızıntıları veya çökmeler gibi sorunları bulmak için yüksek sıklıkta ve hacimde yazılıma gönderilir.
Geçerli 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.
Kelebek
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'in Wireshark'ta nasıl desteklendiğiyle ilgili daha fazla bilgi için Pyspinel ile paket yoklama konusuna bakın.
Psinel
Pyspinel, Spinel protokolü için bir Python CLI'dır.OpenThread NCP'leri veya RCP'leri yapılandırmak ve yönetmek için kullanılır. Bu KSA öncelikli olarak CI testlerine yöneliktir ancak OpenThread Co-Processor örneklerini denemek ve test etmek için manuel olarak kullanılabilir.
Pyspinel şunlar için kullanılır:
- Sürekli entegrasyona simüle edilmiş Ortak İşleyen testi ekleyin.
- Donanımda Co-Processor donanım yazılımı çalıştıran test yataklarının otomatikleştirilmesi.
- OpenThread iş ortağı derlemelerinde hata ayıklayın.
- Bir OpenThread Co-Processer'ı paket algılayıcısına dönüştürün.
Daha fazla bilgi için Pyspinel veri havuzundaki README
bölümüne bakın.