การทดสอบโปรเจ็กต์
OpenThread ที่ Google เปิดตัวได้รับการทดสอบโดยเครื่องมือหลายอย่าง
การรวมอย่างต่อเนื่อง
OpenThread ใช้ GitHub Actions สำหรับ การผสานรวมอย่างต่อเนื่อง (CI) และ Codecov สำหรับความครอบคลุมของโค้ด
CI จะตรวจสอบบิลด์สำหรับแพลตฟอร์มตัวอย่างทั้งหมดโดยใช้ GNU Arm Embedded Toolchain และสำหรับตัวอย่างที่จำลองโดยใช้ GCC, Clang และ Android นอกจากนี้ยังสร้างและทดสอบกับสถาปัตยกรรม x86, แพลตฟอร์ม และการกำหนดค่าอุปกรณ์ Thread ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบและการตรวจสอบที่เฉพาะเจาะจงได้ที่ เวิร์กโฟลว์
นอกจากนี้ CI ยังดำเนินการต่อไปนี้
- การตรวจสอบรูปแบบโค้ดโดยใช้
clang-format
- การทดสอบหน่วย
- การทดสอบการทำงานกับ CLI และ Pyspinel
OSS-Fuzz
OpenThread ได้รับการทดสอบแบบฟัซด้วย OSS-Fuzz ในเทคนิคการทดสอบนี้ ระบบจะส่งอินพุตที่ไม่ถูกต้องและแบบสุ่มไปยังซอฟต์แวร์ด้วยความถี่และปริมาณสูง เพื่อค้นหาปัญหาต่างๆ เช่น หน่วยความจำรั่วหรือข้อขัดข้อง
ดูที่เก็บ OpenThread เพื่อดูเป้าหมายการสร้างการฟัซปัจจุบัน
การทดสอบผลิตภัณฑ์
ใช้เครื่องมือต่อไปนี้เพื่อทดสอบผลิตภัณฑ์ OpenThread ของคุณเอง
Wireshark
Wireshark เป็นเครื่องมือวิเคราะห์โปรโตคอลเครือข่ายแบบโอเพนซอร์สสำหรับการรับส่งข้อมูลที่ทำงานบนอินเทอร์เฟซเครือข่ายจริงและเสมือน โปรโตคอล Thread รองรับใน Wireshark 2.4.0 ขึ้นไป ดูเอกสารประกอบและดาวน์โหลดเครื่องมือนี้ได้ที่ wireshark.org
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Wireshark รองรับ Thread ได้ที่การดมแพ็กเก็ต ด้วย Pyspinel
Pyspinel
Pyspinel เป็น CLI ของ Python สำหรับโปรโตคอล Spinelที่ใช้ในการกำหนดค่าและจัดการ NCP หรือ RCP ของ OpenThread CLI นี้มีไว้สำหรับการทดสอบ CI เป็นหลัก แต่สามารถใช้ด้วยตนเองเพื่อทดลองใช้ และทดสอบอินสแตนซ์ของ OpenThread Co-Processor ได้
Pyspinel ใช้สำหรับ
- เพิ่มการทดสอบ Co-Processor จำลองลงในการรวมอย่างต่อเนื่อง
- ทำให้การทดสอบ Testbed ที่ใช้เฟิร์มแวร์ Co-Processor บนฮาร์ดแวร์เป็นแบบอัตโนมัติ
- แก้ไขข้อบกพร่องของบิลด์ OpenThread ของ Co-Processor
- แปลง Co-Processor ของ OpenThread เป็นเครื่องดมแพ็กเก็ต
ดูข้อมูลเพิ่มเติมได้ที่
README
ในที่เก็บ Pyspinel