Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

テスト

プロジェクトのテスト

Google がリリースした OpenThread は、さまざまなツールでテストされています。

継続的インテグレーション

OpenThread は、継続的インテグレーション(CI)に GitHub Actions を、コード カバレッジに Codecov を使用します。

CI は、GNU Arm Embedded ツールチェーンを使用するすべてのサンプル プラットフォームと、GCC、Clang、Android を使用してシミュレートされたサンプルを対象にビルド チェックを実行します。また、x86、プラットフォーム アーキテクチャ、スレッド デバイス構成に対してビルドとテストを行います。特定のテストとチェックの詳細については、ワークフローをご覧ください。

また、CI では次のことを行います。

  1. clang-format を使用したコードスタイルのチェック
  2. 単体テスト
  3. CLI、wpantundtoranj を使用)、Pyspinel の機能テスト

OSS ファズ

OpenThread は、OSS-Fuzz でファズテストされています。 このテスト技術では、メモリリークやクラッシュなどの問題を検出するために、無効な入力とランダムな入力が高頻度かつ大量にソフトウェアに送信されます。

現在のファジング ビルドのターゲットについては、OpenThread リポジトリをご覧ください。

プロダクトのテスト

以下のツールを使用して、独自の OpenThread プロダクトをテストします。

サメ

Wireshark は、物理ネットワーク インターフェースと仮想ネットワーク インターフェースで実行されるトラフィック用のオープンソースのネットワーク プロトコル アナライザです。Thread プロトコルは、Wireshark 2.4.0 以降でサポートされています。このツールのドキュメントとダウンロードについては、wireshark.org をご覧ください。

Wireshark 内で Thread をサポートする方法の詳細については、Pyspinel によるパケット スニッフィングをご覧ください。

ピスピネル

Pyspinel は、Spinel プロトコル用の Python CLI であり、OpenThread NCP または RCP の構成と管理に使用されます。この CLI は主に CI テストを対象としていますが、OpenThread コプロセッサ インスタンスのテストとテストに手動で使用できます。

Pyspinel は次の目的で使用されます。

  • シミュレートされたコプロセッサ テストを継続的インテグレーションに追加できます。
  • ハードウェア上でコプロセッサ ファームウェアを実行している testbed のテストを自動化します。
  • OpenThread のコプロセッサ ビルドをデバッグする。
  • OpenThread コプロセッサをパケット スニファーに変換します。

詳細については、Pyspinel リポジトリの README をご覧ください。