프로젝트 테스트
Google에서 출시한 OpenThread는 여러 도구로 테스트됩니다.
지속적 통합
OpenThread는 지속적 통합 (CI)에 GitHub Actions를 사용하고 코드 커버리지에 Codecov를 사용합니다.
CI는 GNU Arm Embedded Toolchain을 사용하여 모든 예시 플랫폼에 대해 빌드 검사를 실행하고 GCC, Clang, Android를 사용하여 시뮬레이션된 예시에 대해 빌드 검사를 실행합니다. 또한 x86, 플랫폼 아키텍처, 스레드 기기 구성을 기반으로 빌드하고 테스트합니다. 특정 테스트 및 검사에 대한 자세한 내용은 워크플로를 참고하세요.
또한 CI는 다음을 실행합니다.
OSS-Fuzz
OpenThread는 OSS-Fuzz로 퍼징 테스트를 거칩니다. 이 테스트 기법에서는 메모리 누수나 비정상 종료와 같은 문제를 찾기 위해 무효한 입력과 임의의 입력을 높은 빈도와 볼륨으로 소프트웨어에 제출합니다.
현재 퍼징 빌드 타겟은 OpenThread 저장소를 참고하세요.
제품 테스트
다음 도구를 사용하여 자체 OpenThread 제품을 테스트하세요.
Wireshark
Wireshark는 실제 및 가상 네트워크 인터페이스에서 실행되는 트래픽을 위한 오픈소스 네트워크 프로토콜 분석기입니다. 스레드 프로토콜은 Wireshark 2.4.0 이상에서 지원됩니다. 이 도구에 관한 문서와 다운로드는 wireshark.org에서 확인할 수 있습니다.
Wireshark에서 스레드가 지원되는 방식에 관한 자세한 내용은 Pyspinel을 사용한 패킷 스니핑을 참고하세요.
Pyspinel
Pyspinel은 Spinel 프로토콜용 Python CLI로, OpenThread NCP 또는 RCP를 구성하고 관리하는 데 사용됩니다. 이 CLI는 주로 CI 테스트를 대상으로 하지만 수동으로 사용하여 OpenThread 공동 프로세서 인스턴스를 실험하고 테스트할 수 있습니다.
Pyspinel은 다음 용도로 사용됩니다.
- 지속적 통합에 시뮬레이션된 공동 프로세서 테스트 추가
- 하드웨어에서 공동 프로세서 펌웨어를 실행하는 테스트베드의 테스트를 자동화합니다.
- OpenThread의 공동 프로세서 빌드를 디버그합니다.
- OpenThread 공동 프로세서를 패킷 스니퍼로 변환합니다.
자세한 내용은 Pyspinel 저장소의 README
을 참고하세요.