Testes

Teste de projeto

O OpenThread lançado pelo Google é testado por várias ferramentas.

Integração contínua

O OpenThread usa o GitHub Actions para integração contínua (CI) e o Codecov para cobertura de código.

A CI realiza verificações de build para todas as plataformas de exemplo usando a cadeia de ferramentas GNU Arm Embedded e para o exemplo simulado usando GCC, Clang e Android. Ele também cria e testa em relação a x86, arquitetura de plataforma e configurações de dispositivos Thread. Para mais informações sobre testes e verificações específicas, consulte Workflows.

Além disso, a CI realiza as seguintes ações:

  1. Verificações de estilo de código usando clang-format
  2. Testes de unidade
  3. Testes funcionais na CLI e no Pyspinel

OSS-Fuzz

O OpenThread é testado com fuzzing usando o OSS-Fuzz. Nessa técnica de teste, entradas inválidas e aleatórias são enviadas com alta frequência e volume para o software a fim de encontrar problemas como vazamentos de memória ou falhas.

Consulte o repositório OpenThread para conferir os destinos de build de fuzzing atuais.

Teste de produto

Use as ferramentas a seguir para testar seu próprio produto OpenThread.

Wireshark

O Wireshark é um analisador de protocolo de rede de código aberto para tráfego em interfaces de rede físicas e virtuais. O protocolo Thread é compatível com o Wireshark 2.4.0 e versões mais recentes. A documentação e os downloads dessa ferramenta estão disponíveis em wireshark.org (em inglês).

Para mais informações sobre como o Thread é compatível com o Wireshark, consulte Captura de pacotes com Pyspinel.

Pyspinel

O Pyspinel é uma CLI do Python para o protocolo Spinel, usado para configurar e gerenciar NCPs ou RCPs do OpenThread. Essa CLI é voltada principalmente para testes de CI, mas pode ser usada manualmente para testar e experimentar instâncias de coprocessador OpenThread.

O Pyspinel é usado para:

  • Adicione testes simulados de coprocessador à integração contínua.
  • Automatizar o teste de plataformas de teste que executam firmware de coprocessador em hardware.
  • Depure builds de coprocessadores do OpenThread.
  • Converter um coprocessador OpenThread em um farejador de pacotes.

Para mais informações, consulte o README no repositório Pyspinel.