การทดสอบ

การทดสอบโปรเจ็กต์

OpenThread ที่เผยแพร่โดย Google ผ่านการทดสอบจากเครื่องมือต่างๆ

การรวมอย่างต่อเนื่อง

OpenThread ใช้ GitHub Actions เพื่อการผสานรวมแบบต่อเนื่อง (CI) และใช้ Codecov เพื่อการครอบคลุมโค้ด

CI จะดําเนินการตรวจสอบบิลด์สําหรับแพลตฟอร์มตัวอย่างทั้งหมดโดยใช้ GNU Arm Embedded Toolchain ที่จําลองขึ้นและสําหรับตัวอย่างจําลองที่ใช้ GCC, Clang และ Android รวมถึงสร้างและทดสอบกับการกําหนดค่า x86, สถาปัตยกรรมแพลตฟอร์ม และชุดข้อความ ดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบและการตรวจสอบที่เฉพาะเจาะจงได้ที่เวิร์กโฟลว์

นอกจากนี้ CI ยังดําเนินการดังต่อไปนี้ด้วย

  1. การตรวจสอบรูปแบบโค้ดโดยใช้ clang-format
  2. การทดสอบหน่วย
  3. การทดสอบฟังก์ชันเทียบกับ CLI, wpantund (ที่มี toranj) และ Pyspinel

ระบบปฏิบัติการ

OpenThread คือการทดสอบเทคโนโลยี fuzz ที่ทดสอบด้วย OSS-Fuzz ในเทคนิคการทดสอบนี้ ระบบจะส่งอินพุตที่ไม่ถูกต้องและแบบสุ่มไปยังความถี่และปริมาณสูงไปยังซอฟต์แวร์เพื่อหาปัญหาต่างๆ เช่น หน่วยความจํารั่วไหลหรือขัดข้อง

ดูที่เก็บ OpenThread สําหรับเป้าหมายบิลด์การเปลี่ยนเส้นทางปัจจุบัน

การทดสอบผลิตภัณฑ์

ใช้เครื่องมือต่อไปนี้เพื่อทดสอบผลิตภัณฑ์ OpenThread ของคุณเอง

ลวดฉลาม

Wireshark เป็นเครื่องมือวิเคราะห์โปรโตคอลของเครือข่ายโอเพนซอร์สสําหรับการเข้าชมที่ทํางานในอินเทอร์เฟซเครือข่ายทางกายภาพและเสมือน รองรับโปรโตคอลชุดข้อความใน Wireshark 2.4.0 ขึ้นไป ดูเอกสารประกอบและการดาวน์โหลดสําหรับเครื่องมือนี้ได้ที่ wireshark.org

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่รองรับชุดข้อความใน Wireshark ได้ที่การดักจับพัสดุกับ Pyspinel

แป้ง Pyspinel

Pyspinel เป็น Python CLI สําหรับโปรโตคอล Spinel ที่ใช้เพื่อกําหนดค่าและจัดการ OpenThread NCP หรือ RCP CLI นี้มีเป้าหมายไปที่การทดสอบ CI เป็นหลัก แต่สามารถใช้ด้วยตนเองเพื่อทดสอบและทดสอบอินสแตนซ์โปรเซสเซอร์ร่วมของ OpenThread ได้

Pyspinel ใช้เพื่อทําสิ่งต่อไปนี้

  • เพิ่มการทดสอบโปรเซสเซอร์ร่วมจําลองไปยังการผสานรวมแบบต่อเนื่อง
  • ทดสอบตัวแปรการทดสอบที่ใช้เฟิร์มแวร์ของโปรเซสเซอร์ร่วมบนฮาร์ดแวร์โดยอัตโนมัติ
  • แก้ไขข้อบกพร่องของตัวประมวลผลร่วมของ OpenThread
  • แปลงโปรเซสเซอร์ OpenThread ให้เป็นที่ดักจับแพ็กเก็ต

ดูข้อมูลเพิ่มเติมได้ที่ README ในที่เก็บของ Pyspinel