테스트

프로젝트 테스트

Google에서 출시한 OpenThread는 여러 도구로 테스트됩니다.

지속적 통합

OpenThread는 지속적 통합 (CI)에 GitHub Actions를 사용하고 코드 적용 범위에 Codecov를 사용합니다.

CI는 GNU Arm Embedded Toolchain을 사용하는 모든 예 플랫폼의 빌드 검사와 GCC, Clang, Android를 사용하는 시뮬레이션된 예에 관한 빌드 검사를 실행합니다. 또한 x86, 플랫폼 아키텍처, 스레드 기기 구성을 대상으로 빌드 및 테스트합니다. 특정 테스트 및 확인에 대한 자세한 내용은 워크플로를 참조하세요.

또한 CI는 다음을 수행합니다.

  1. clang-format를 사용한 코드 스타일 검사
  2. 단위 테스트
  3. CLI, wpantund(toranj 사용), Pyspinel에 대한 기능 테스트

OSS-퍼즈

OpenThread는 OSS-Fuzz로 퍼징 테스트됩니다. 이 테스트 기법에서는 메모리 누수 또는 비정상 종료와 같은 문제를 찾기 위해 잘못된 빈도와 무작위 입력을 소프트웨어에 자주 높은 볼륨으로 제출합니다.

현재 퍼징 빌드 타겟은 OpenThread 저장소를 참고하세요.

제품 테스트

다음 도구를 사용하여 자체 OpenThread 제품을 테스트하세요.

와이어샤크

Wireshark는 물리적 및 가상 네트워크 인터페이스에서 실행되는 트래픽을 위한 오픈소스 네트워크 프로토콜 분석기입니다. 스레드 프로토콜은 Wireshark 2.4.0 이상에서 지원됩니다. 이 도구에 대한 문서와 다운로드는 wireshark.org에서 확인할 수 있습니다.

Wireshark에서 스레드가 지원되는 방법에 관한 자세한 내용은 Pyspinel을 사용한 패킷 스니핑을 참조하세요.

피스피넬

Pyspinel은 OpenThread NCP 또는 RCP를 구성하고 관리하는 데 사용되는 Spinel 프로토콜용 Python CLI입니다. 이 CLI는 주로 CI 테스트에 타겟팅되지만 OpenThread Co-Processor 인스턴스를 실험 및 테스트하는 데 수동으로 사용할 수 있습니다.

피스핀넬의 용도는 다음과 같습니다.

  • 시뮬레이션된 공동 프로세서 테스트를 지속적 통합에 추가합니다.
  • 하드웨어에서 보조 프로세서 펌웨어를 실행하는 테스트베드 테스트를 자동화합니다.
  • OpenThread의 보조 프로세서 빌드를 디버그합니다.
  • OpenThread 보조 프로세서를 패킷 스니퍼로 변환합니다.

자세한 내용은 Pyspinel 저장소의 README를 참조하세요.