Thử nghiệm dự án
OpenThread do Google phát hành được thử nghiệm bởi một số công cụ.
Hội nhập liên tục
OpenThread sử dụng GitHub Actions để tích hợp liên tục (CI) và Codecov để bao phủ mã.
CI thực hiện kiểm tra bản dựng cho tất cả các nền tảng mẫu bằng cách sử dụng Chuỗi công cụ nhúng của GNU Arm và ví dụ được mô phỏng bằng GCC, Clang và Android. Nó cũng xây dựng và thử nghiệm đối với x86, kiến trúc nền tảng và cấu hình thiết bị Thread. Để biết thêm thông tin về các thử nghiệm và kiểm tra cụ thể, hãy xem Quy trình công việc .
Ngoài ra, CI thực hiện:
- Kiểm tra kiểu mã bằng cách sử dụng
clang-format
- Bài kiểm tra đơn vị
- Kiểm tra chức năng chống lại CLI,
wpantund
(vớitoranj
) và Pyspinel
OSS-Fuzz
OpenThread được thử nghiệm với OSS-Fuzz . Trong kỹ thuật thử nghiệm này, các đầu vào không hợp lệ và ngẫu nhiên được gửi với tần suất và khối lượng cao tới phần mềm để tìm các vấn đề như rò rỉ bộ nhớ hoặc sự cố.
Xem kho lưu trữ OpenThread để biết các mục tiêu xây dựng hiện tại .
Thử nghiệm sản phẩm
Sử dụng các công cụ sau để kiểm tra sản phẩm OpenThread của riêng bạn.
Wireshark
Wireshark là một bộ phân tích giao thức mạng mã nguồn mở cho lưu lượng chạy trên các giao diện mạng vật lý và ảo. Giao thức Thread được hỗ trợ trong Wireshark 2.4.0 trở lên. Tài liệu và tải xuống cho công cụ này có thể được tìm thấy tại Wirehark.org .
Để biết thêm thông tin về cách Thread được hỗ trợ trong Wireshark, hãy xem Đánh giá gói với Pyspinel .
Pyspinel
Pyspinel là một CLI Python cho giao thức Spinel , được sử dụng để định cấu hình và quản lý các NCP hoặc RCP của OpenThread . CLI này chủ yếu được nhắm mục tiêu đến các bài kiểm tra CI, nhưng có thể được sử dụng theo cách thủ công để thử nghiệm và kiểm tra các phiên bản OpenThread Co-Processor.
Pyspinel được sử dụng để:
- Thêm thử nghiệm Bộ xử lý mô phỏng để tích hợp liên tục.
- Tự động kiểm tra các testbed chạy chương trình cơ sở Co-Processor trên phần cứng.
- Gỡ lỗi bản dựng Bộ xử lý của OpenThread.
- Chuyển đổi một Bộ xử lý OpenThread thành một trình kiểm tra gói tin.
Để biết thêm thông tin, hãy xem README
trong kho lưu trữ Pyspinel.