プロジェクトテスト
GoogleがリリースしたOpenThreadは、さまざまなツールでテストされています。
継続的インテグレーション
OpenThreadは、継続的インテグレーション(CI)にGitHubアクションを使用し、コードカバレッジにCodecovを使用します。
CIは、GNU Arm Embedded Toolchainを使用してすべてのサンプルプラットフォームと、GCC、Clang、およびAndroidを使用してシミュレートされたサンプルのビルドチェックを実行します。また、x86、プラットフォームアーキテクチャ、およびスレッドデバイス構成に対してビルドおよびテストを行います。特定のテストとチェックの詳細については、ワークフローを参照してください。
さらに、CIは以下を実行します。
-
clang-format
を使用したコードスタイルチェック - ユニットテスト
- CLI、
wpantund
(toranj
)、およびPyspinelに対する機能テスト
OSS-ファジング
OpenThreadはOSS-Fuzzでファジングテストされています。このテスト手法では、メモリリークやクラッシュなどの問題を見つけるために、無効でランダムな入力が高頻度でソフトウェアに送信されます。
現在のファジングビルドターゲットについては、OpenThreadリポジトリを参照してください。
製品テスト
次のツールを使用して、独自のOpenThread製品をテストします。
Wireshark
Wiresharkは、物理および仮想ネットワークインターフェイスで実行されるトラフィック用のオープンソースネットワークプロトコルアナライザです。スレッドプロトコルは、 Wireshark2.4.0以降でサポートされています。このツールのドキュメントとダウンロードは、 wireshark.orgにあります。
WiresharkでThreadがどのようにサポートされているかについての詳細は、Pyspinelを使用したパケットスニッフィングを参照してください。
ピスピネル
PyspinelはSpineプロトコル用のPythonCLIであり、 OpenThreadNCPまたはRCPの構成と管理に使用されます。このCLIは主にCIテストを対象としていますが、OpenThreadコプロセッサーインスタンスを実験およびテストするために手動で使用できます。
ピスピネルは次の目的で使用されます。
- シミュレートされたコプロセッサーテストを継続的インテグレーションに追加します。
- ハードウェア上でコプロセッサーファームウェアを実行しているテストベッドのテストを自動化します。
- OpenThreadのコプロセッサービルドをデバッグします。
- OpenThreadコプロセッサーをパケットスニファーに変換します。
詳細については、PyspinelリポジトリのREADME
を参照してください。