בדיקה

בדיקת הפרויקט

‫OpenThread שפותח על ידי Google נבדק באמצעות מספר כלים.

אינטגרציה רציפה (CI)

‫OpenThread משתמש ב-GitHub Actions לשילוב רציף (CI) וב-Codecov לכיסוי קוד.

ב-CI מתבצעות בדיקות של בנייה לכל הפלטפורמות לדוגמה באמצעות GNU Arm Embedded Toolchain, ולדוגמה המדומה באמצעות GCC, ‏ Clang ו-Android. בנוסף, הוא יוצר גרסאות build ובודק אותן מול x86, ארכיטקטורת פלטפורמה והגדרות של מכשיר Thread. מידע נוסף על בדיקות ספציפיות זמין במאמר תהליכי עבודה.

בנוסף, CI מבצעת את הפעולות הבאות:

  1. Code style checks using clang-format
  2. בדיקות יחידה
  3. בדיקות פונקציונליות מול CLI ו-Pyspinel

OSS-Fuzz

‫OpenThread עובר בדיקת Fuzzing באמצעות OSS-Fuzz. בטכניקת הבדיקה הזו, נשלחים קלטים לא חוקיים ואקראיים בתדירות גבוהה ובנפח גדול לתוכנה כדי למצוא בעיות כמו דליפות זיכרון או קריסות.

במאגר OpenThread אפשר לראות את יעדי הבנייה הנוכחיים של הפאזינג.

בדיקת מוצרים

אפשר להשתמש בכלים הבאים כדי לבדוק מוצר OpenThread משלכם.

Wireshark

‫Wireshark הוא כלי בקוד פתוח לניתוח פרוטוקולי רשת, שמאפשר לנתח תעבורה שפועלת בממשקי רשת פיזיים ווירטואליים. פרוטוקול Thread נתמך ב-Wireshark 2.4.0 ומעלה. תיעוד והורדות של הכלי הזה זמינים בכתובת wireshark.org.

מידע נוסף על התמיכה ב-Thread ב-Wireshark זמין במאמר Packet sniffing with Pyspinel.

Pyspinel

‫Pyspinel הוא CLI של Python לפרוטוקול Spinel, שמשמש להגדרה ולניהול של OpenThread NCPs או RCPs. ממשק ה-CLI הזה מיועד בעיקר לבדיקות CI, אבל אפשר להשתמש בו באופן ידני כדי להתנסות במופעים של OpenThread Co-Processor ולבדוק אותם.

הספרייה Pyspinel משמשת ל:

  • הוספת בדיקות מדומה של מעבד משותף לאינטגרציה רציפה.
  • אוטומציה של בדיקות של סביבות בדיקה שמריצות קושחה של מעבד משותף בחומרה.
  • ניפוי באגים בגרסאות build של OpenThread במעבד משותף.
  • המרת מעבד משותף של OpenThread לחבילת sniffer.

מידע נוסף זמין במאמר README במאגר Pyspinel.