プロジェクトのテスト
Google がリリースした OpenThread は、さまざまなツールによってテストされています。
継続的インテグレーション
OpenThread は、継続的インテグレーション(CI)には GitHub Actions を、コード カバレッジには Codecov を使用します。
CI は、GNU Arm Embedded Toolkit を使用してすべてのサンプル プラットフォームと、GCC、Clang、Android を使用してシミュレートされたサンプルに対して、ビルドチェックを実行します。また、x86、プラットフォーム アーキテクチャ、Thread デバイス構成に対するビルドとテストも行われます。特定のテストとチェックについて詳しくは、ワークフローをご覧ください。
さらに、CI では次の処理を行います。
clang-format
を使用したコードスタイル チェック- 単体テスト
- CLI、
wpantund
(toranj
を使用)、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 Co-Processor インスタンスを使用してテストすることもできます。
Pyspinel の用途は次のとおりです。
- 継続的インテグレーションにシミュレートされたコプロセッサのテストを追加します。
- ハードウェア上でコプロセッサ ファームウェアを実行している testbed のテストを自動化する。
- OpenThread のコプロセッサ ビルドをデバッグします。
- OpenThread コプロセッサをパケット スニッファに変換します。
詳細については、Pyspinel リポジトリの README
をご覧ください。