Teste de projeto
O OpenThread lançado pelo Google é testado por diversas ferramentas.
Integração contínua
O OpenThread usa Ações do GitHub para integração contínua (CI) e o Codecov para cobertura de código.
A CI realiza verificações de compilação para todas as plataformas de exemplo usando o GNU Arm Embedded Toolchain e para o exemplo simulado usando GCC, Clang e Android. Ele também cria e testa configurações x86, arquitetura de plataforma e dispositivo Thread. Para ver mais informações sobre testes e verificações específicos, consulte Fluxos de trabalho.
Além disso, a CI:
- Verificações de estilo de código usando
clang-format
- Testes de unidade
- Testes funcionais na CLI,
wpantund
(comtoranj
) e no Pyspinel
Fuzze OSS
O OpenThread foi testado com o OSS-Fuzz. Nessa técnica, entradas inválidas e aleatórias são enviadas ao software com alta frequência e volume para encontrar problemas como vazamentos ou falhas de memória.
Consulte o repositório do OpenThread para ver os destinos de build de fuzzing atuais.
Teste de produto
Use as ferramentas a seguir para testar seu próprio produto do OpenThread.
Wireshark
O Wireshark é um analisador de protocolo de rede de código aberto para tráfego em execução em interfaces de rede física e virtual. O protocolo Thread é compatível com o Wireshark 2.4.0 e versões mais recentes. A documentação e os downloads dessa ferramenta podem ser encontrados em wireshark.org.
Para mais informações sobre como o Thread é compatível com o Wireshark, consulte Pacotes que detectam com o Pyspinel.
Pirâmide
O Pyspinel é uma CLI em Python para o protocolo Sppinel, usado para configurar e gerenciar NCPs ou RCPs do OpenThread. Essa CLI é destinada principalmente a testes de CI, mas pode ser usada manualmente para testar e testar instâncias de coprocessador do OpenThread.
O Pyspinel é usado para:
- Adicione testes simulados de processador à integração contínua.
- Automatize os testes dos testbeds que executam o firmware do processador no hardware.
- Depurar builds de coprocessador de OpenThread.
- Converter um coprocessador OpenThread em um pacote MapReduce
Para mais informações, consulte a
README
no repositório
do Pyspinel.