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

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

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

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

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

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

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

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

OSS-Fuzz

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

Текущие цели фаззинга см. в репозитории OpenThread .

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

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

Wireshark

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

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

Пишпинель

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

Пишпинель используется для:

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

Для получения дополнительной информации см. README в репозитории Pyspinel.