Тестирование

Тестирование проекта

OpenThread, выпущенный Google, тестируется рядом инструментов.

Непрерывная интеграция

OpenThread использует GitHub Actions для непрерывной интеграции (CI) и Codecov для покрытия кода.

CI выполняет проверку сборки для всех платформ-примеров с помощью GNU Arm Embedded Toolchain, а для смоделированного примера — с помощью GCC, Clang и Android. Кроме того, сборка и тестирование выполняются на архитектуре x86, платформе и конфигурациях устройств Thread. Подробнее о конкретных тестах и ​​проверках см. в разделе «Рабочие процессы» .

Кроме того, CI выполняет:

  1. Проверка стиля кода с помощью clang-format
  2. Модульные тесты
  3. Функциональные тесты против CLI и Pyspinel

OSS-Fuzz

OpenThread проходит фаззинговое тестирование с помощью OSS-Fuzz . В рамках этой методики тестирования недействительные и случайные входные данные передаются в программу с высокой частотой и в больших объемах для выявления таких проблем, как утечки памяти или сбои.

Актуальные цели сборки для фаззинга см. в репозитории OpenThread.

Тестирование продукта

Используйте следующие инструменты для тестирования вашего собственного продукта OpenThread.

Wireshark

Wireshark — это анализатор сетевых протоколов с открытым исходным кодом для анализа трафика, проходящего через физические и виртуальные сетевые интерфейсы. Протокол Thread поддерживается в Wireshark версии 2.4.0 и более поздних. Документацию и файлы для загрузки этого инструмента можно найти на сайте wireshark.org .

Дополнительную информацию о поддержке Thread в Wireshark см. в разделе Анализ пакетов с помощью Pyspinel .

Писпинель

Pyspinel — это интерфейс командной строки (CLI) Python для протокола Spinel , используемый для настройки и управления NCP или RCP OpenThread . Этот интерфейс командной строки в первую очередь предназначен для тестирования непрерывной интеграции (CI), но его можно использовать вручную для экспериментов и тестирования экземпляров сопроцессора OpenThread.

Писпинель применяется для:

  • Добавить имитацию тестирования сопроцессора к непрерывной интеграции.
  • Автоматизируйте тестирование испытательных стендов, работающих под управлением прошивки сопроцессора на оборудовании.
  • Отладка сборок сопроцессора OpenThread.
  • Преобразовать сопроцессор OpenThread в анализатор пакетов.

Более подробную информацию см. в файле README в репозитории Pyspinel.