الاختبار

اختبار المشروع

يتم اختبار OpenThread الذي أطلقته Google باستخدام عدد من الأدوات.

التكامل المستمر

تستخدم OpenThread GitHub Actions للتكامل المستمر (CI)، وCodecov لتغطية الرموز البرمجية.

تنفّذ عملية التكامل المستمر عمليات التحقّق من الإصدارات لجميع الأنظمة الأساسية النموذجية باستخدام GNU Arm Embedded Toolchain وللمثال المحاكى باستخدام GCC وClang وAndroid. ويتم أيضًا إنشاء الاختبارات وتنفيذها على أجهزة x86 وبنية النظام الأساسي وإعدادات أجهزة Thread. لمزيد من المعلومات حول الاختبارات وعمليات التحقّق المحدّدة، يُرجى الاطّلاع على سير العمل.

بالإضافة إلى ذلك، تنفّذ CI ما يلي:

  1. عمليات التحقّق من نمط الرمز باستخدام clang-format
  2. اختبارات الوحدات
  3. الاختبارات الوظيفية التي يتم إجراؤها على واجهة سطر الأوامر وPyspinel

OSS-Fuzz

يتم اختبار OpenThread بشكل غير واضح باستخدام OSS-Fuzz. في أسلوب الاختبار هذا، يتم إدخال بيانات غير صالحة وعشوائية بشكل متكرر وبكميات كبيرة في البرنامج للعثور على مشاكل مثل تسرُّب الذاكرة أو الأعطال.

يمكنك الاطّلاع على مستودع OpenThread لمعرفة استهدافات الإنشاء الحالية للتجربة غير المحدودة.

اختبار المنتجات

استخدِم الأدوات التالية لاختبار منتج OpenThread الخاص بك.

Wireshark

‫Wireshark هي أداة مفتوحة المصدر لتحليل بروتوكول الشبكة لحركة البيانات التي يتم تشغيلها على واجهات الشبكة المادية والافتراضية. يتوافق بروتوكول Thread مع Wireshark 2.4.0 والإصدارات الأحدث. يمكنك العثور على المستندات وعمليات التنزيل الخاصة بهذه الأداة على wireshark.org.

لمزيد من المعلومات حول كيفية توفير دعم Thread في Wireshark، يُرجى الاطّلاع على Packet sniffing with Pyspinel.

Pyspinel

‫Pyspinel هي واجهة سطر أوامر (CLI) بلغة Python لبروتوكول Spinel، وتُستخدم لإعداد وإدارة معالجات NCP أو RCP في OpenThread. يستهدف واجهة سطر الأوامر هذه في المقام الأول اختبارات التكامل المستمر، ولكن يمكن استخدامها يدويًا لتجربة واختبار مثيلات OpenThread Co-Processor.

يُستخدم Pyspinel في ما يلي:

  • إضافة اختبار Co-Processor المحاكى إلى التكامل المستمر
  • أتمتة اختبارات منصات الاختبار التي تشغّل البرامج الثابتة للمعالج المساعد على الأجهزة
  • تصحيح أخطاء إصدارات OpenThread الخاصة بالمعالج المشترك
  • تحويل معالج OpenThread إلى أداة التقاط حِزم البيانات

لمزيد من المعلومات، يُرجى الاطّلاع على README في مستودع Pyspinel.