Tests

Test du projet

OpenThread publié par Google est testé par un certain nombre d'outils.

Intégration continue

OpenThread utilise GitHub Actions pour l'intégration continue (CI) et Codecov pour la couverture du code.

L'intégration continue effectue des vérifications de compilation pour toutes les plates-formes d'exemple à l'aide de la chaîne d'outils GNU Arm Embedded et pour l'exemple simulé à l'aide de GCC, Clang et Android. Il compile et teste également les configurations x86, d'architecture de plate-forme et d'appareil Thread. Pour en savoir plus sur les tests et les vérifications spécifiques, consultez Workflows.

De plus, la CI effectue les opérations suivantes :

  1. Vérifications du style de code à l'aide de clang-format
  2. Tests unitaires
  3. Tests fonctionnels sur la CLI et Pyspinel

OSS-Fuzz

OpenThread est testé avec OSS-Fuzz. Dans cette technique de test, des entrées non valides et aléatoires sont envoyées à une fréquence et un volume élevés au logiciel afin de détecter des problèmes tels que des fuites de mémoire ou des plantages.

Consultez le dépôt OpenThread pour connaître les cibles de compilation de fuzzing actuelles.

Test de produits

Utilisez les outils suivants pour tester votre propre produit OpenThread.

Wireshark

Wireshark est un outil d'analyse de protocole réseau Open Source pour le trafic s'exécutant sur des interfaces réseau physiques et virtuelles. Le protocole Thread est compatible avec Wireshark 2.4.0 et versions ultérieures. La documentation et les téléchargements de cet outil sont disponibles sur wireshark.org.

Pour en savoir plus sur la compatibilité de Thread dans Wireshark, consultez Sniffing de paquets avec Pyspinel.

Pyspinel

Pyspinel est une CLI Python pour le protocole Spinel, utilisé pour configurer et gérer les NCP ou RCP OpenThread. Cette CLI est principalement destinée aux tests CI, mais elle peut être utilisée manuellement pour expérimenter et tester les instances de coprocesseur OpenThread.

Pyspinel est utilisé pour :

  • Ajoutez des tests de coprocesseur simulés à l'intégration continue.
  • Automatisez les tests des bancs d'essai exécutant le micrologiciel du coprocesseur sur le matériel.
  • Déboguez les builds de coprocesseur OpenThread.
  • Convertissez un coprocesseur OpenThread en renifleur de paquets.

Pour en savoir plus, consultez README dans le dépôt Pyspinel.