Thử nghiệm

Kiểm thử dự án

OpenThread do Google phát hành được một số công cụ kiểm tra.

Tích hợp liên tục

OpenThread sử dụng Hành động GitHub để tích hợp liên tục (CI) và Codecov cho phạm vi bao phủ của mã.

CI thực hiện việc kiểm tra bản dựng cho tất cả các nền tảng ví dụ bằng Chuỗi công cụ nhúng của GNU Arm và cho ví dụ mô phỏng bằng GCC, Clang và Android. Cấu hình này cũng xây dựng và kiểm thử dựa trên cấu hình thiết bị x86, cấu trúc nền tảng và cấu hình luồng. Để biết thêm thông tin về các quy trình kiểm thử và kiểm tra cụ thể, hãy xem Quy trình công việc.

Ngoài ra, CI thực hiện:

  1. Kiểm tra kiểu mã bằng cách sử dụng clang-format
  2. Kiểm thử đơn vị
  3. Kiểm thử hàm đối với CLI, wpantund (bằng toranj) và Pyspinel

Giải pháp OSS-Fuzz

OpenThread được kiểm thử mờ bằng OSS-Fuzz. Trong kỹ thuật kiểm thử này, dữ liệu đầu vào không hợp lệ và ngẫu nhiên được gửi đến phần mềm với tần suất và khối lượng lớn để tìm các sự cố như rò rỉ bộ nhớ hoặc sự cố.

Xem kho lưu trữ OpenThread để biết các mục tiêu bản dựng mờ hiện tại.

Thử nghiệm sản phẩm

Sử dụng các công cụ sau đây để kiểm thử sản phẩm OpenThread của riêng bạn.

Cá mập

Wireshark là trình phân tích giao thức mạng nguồn mở cho lưu lượng truy cập chạy trên giao diện mạng thực và ảo. Giao thức luồng được hỗ trợ trong Wireshark 2.4.0 trở lên. Bạn có thể tìm thấy tài liệu và nội dung tải xuống của công cụ này tại wireshark.org.

Để biết thêm thông tin về cách Thread được hỗ trợ trong Wireshark, hãy xem bài viết Packet đánh dấu bằng Pyspinel.

Pyspinel

Pyspinel là một CLI của Python cho giao thức Spinel, dùng để định cấu hình và quản lý OpenThread NCP hoặc RCPs. CLI này chủ yếu nhắm đến các bài kiểm thử CI, nhưng bạn có thể sử dụng theo cách thủ công để thử nghiệm và kiểm thử các phiên bản OpenThread Co-Processor.

Pyspinel được dùng để:

  • Thêm thử nghiệm Co-Processor được mô phỏng để tích hợp liên tục.
  • Tự động hoá việc kiểm thử các máy kiểm thử chạy chương trình cơ sở Co-Processor trên phần cứng.
  • Gỡ lỗi bản dựng Co-Processor của OpenThread.
  • Chuyển đổi Bộ xử lý đồng bộ OpenThread thành một trình điều khiển gói.

Để biết thêm thông tin, hãy xem README trong kho lưu trữ Pyspinel.