名前
STP -「Scalable Test Platform」さまざまな種類のハードウェアシステム上での
テストの自動化に使用されます。
形式
stp_fix-lilo.pl stp_client.pl stp_addhost.pl stp_addhosttype.pl
stp_addtest.pl stp_client.pl apicall stp_server.pl stp_setup.pl
stp_cancel.pl testid [...] stp_cron.pl
詳細
STP の機能の詳細とテストの実行結果については、http://www.osdl.org/stp/ を
参照してください。
OSDL の STP は Linux カーネルビルドをテストするためのフレームワークを提供
します。Patch Lifecycle Manager を使用してパッチの作成とビルドができます。
そして STP フレームワークを使用して、選択したパフォーマンステストおよび
スケーラビリティテストを実行できます。STP はカーネルパッチをロードし、指定
したハードウェアプラットホーム上で選択したテストを実行します。カーネル
パッチは kernel.org から取得した既存のカーネルにビルドされます。
STP フレームワークの目的は、オープンソースコミュニティに対し、カーネルの
特定要素に対するインクリメンタルな変更をテストできる各種 SMP プラットホーム
を提供することです。そのシステム構成は変動しないため、以前のテストランとの
有意な比較が可能です。
STP の仕組み
あるパッチが先行するパッチと依存関係にある場合、パッチを組み合せて追加
できます。依存関係の最上位のパッチが、STP ランタイム環境のコアとして使用
される起点となります。テストが選択されると、STP フレームワークのリクエスト
ブローカは、OSDL のテストラボ内でテストランに使用可能なシステムを探します。
テストリクエストは、リクエストブローカが定める優先順位に従ってキューに入り
ます。キューの先頭に来たテストに対し、リクエストブローカはそのハード
ウェア構成要件を満たす次に使用可能なシステムを探します。STP エンジンは、
カーネルパッチをロードする前に、まずシステムからすべてのコードを消去します。
STP では、すべてのテストランごとにシステムの新規インストールが行われるように
なっています。コードをすべて消去したシステムに対して、STP エンジンはスクラッチ
からディストリビューションをロードし、カーネルパッチを適用し、選択されたテスト
をシステム上に展開して、そのテストを実行します。テスト結果は回収され、テスタに
は電子メールで通知が送られます。実行の流れを次の図に示します。
ディストリビューションリスト: +-------------------------------+ テストリスト:
+---->| ディストリビューションのロード|
+--------------------------+ | +-------------------------------+ +----------+
| ディストリビューション_1 | | | | テスト_1 |
+--------------------------+ | V +----------+
| ディストリビューション_2 | | +-------------------------------+ | テスト_2 |
+--------------------------+ | +->| カーネルのロード | +----------+
| ディストリビューション_3 |--+ | +-------------------------------+ +---| テスト_3 |
+--------------------------+ | | | +----------+
| V | | テスト_4 |
| +-------------------------------+ | +----------+
カスタムビルド: | | テストの展開 |<--+ | テスト_5 |
| +-------------------------------+ +----------+
+------------------------+ | |
| カーネルパッチ |-------+ V
+------------------------+ +-------------------------------+
| ストック | | テストの実行 |
| カーネル | +-------------------------------+
+------------------------+ |
V
+-------------------------------+
| 結果 |
+-------------------------------+
STP エンジン
システムで一時点に実行されるテストは 1 つだけです。これによって、次のテストの
実行前にテストシステムをクリーンな状態に戻すことを保証し、次のテストランに影響
を残さないようにすることができます。テストが完了すると結果が取得され、テスト
ランの完了を通知する電子メールが送信されます。
テストケースの実行は、テストのランスクリプト(wrap.sh)によって制御されます。
STP のウェブインターフェースを介してテストを選択すると、テストは選択したシステム
タイプでの実行されるべくキューに入ります。システムが利用可能になると、テストは
テストシステム上にロードされ wrap.sh ファイルが呼び出されます。wrap.sh はテスト
実行を制御し、本質的には、テストするカーネル機能を実行するためのあらゆる
システムオペレーションを行うことができます。wrap.sh スクリプトから他のスクリプトや
実行プログラムを呼び出すと有用なことがしばしばあります。履歴データを含む既存の
グラフに新しいデータをプロットするレポートスクリプトなどがそれに当たります。wrap.sh
自体は、シェル、Perl、Python などどんなスクリプト言語でも記述できます。
テストの実行結果は、通常、見やすい形式で出力される必要があります。そのためには、
wrap.sh ファイル自体にスクリプトコードを含めるか、results.sh ファイルなどの結果
データのフォーマット処理をするその他のスクリプトや実行プログラムを呼び出します。
results/ ディレクトリに index.html がある場合、STP はデフォルトでそのページを
表示します。これは、実行されたテストに最適なフォーマットで各種結果データを表示
するのに役立ちます。
データベーステーブル
host:クライアントマシンのネットワーク名、ハードウェア構成
host_state:推定されるクライアントマシンのステータス
host_type:ハードウェアの種類(CPU の数、RAM、ディスクスペースなど)
state_timer:クライアントのエラー検出に使用されるタイムスタンプ
test:利用可能なテストとその説明のリスト
test_host_type:それぞれのテストが使用できるハードウェア構成のマッピング
test_request:カーネルパッチ情報とステータスを含むテストリクエストのキュー
test_request_to_host:host と test_request 間のマッピング
user:少なくとも、STP ユーザの電子メールアドレス
Host および Hosttype のセットアップ
STP は、「Hosttype」と呼ばれるエンティティを定義します。Hosttype は
テストに関連付けることができる同等マシンの集合を定義します。OSDL では、
同等マシンのクラスを区別しています。「src/scripts/addhosttype.pl」を
実行して 1 つ以上の Hosttype を指定する必要があります。
Hosttypes に加えて、「Host」エンティティをセットアップする必要があり
ます。「Host」は、テストが実行される実際のマシンを定義します。Host
エンティティを上記で定義した Hosttypes とグループ化する必要があります。
「Host」エンティティを構成するには、「src/scripts/addhost.pl」を実行する
必要があります。
テストセットアップ
STP にテストを追加するには、STP のデフォルトテストをダウンロードしてあるか、
独自のテストを移植あるいは作成しておく必要があります。それぞれのテストは、
「testname.tar.gz」ネーミングスキームにアーカイブされている必要があります。
これらのテストは、セットアップのときに指定したディレクトリにコピーする必要が
あります。そこからは、これらのテストを STP システムに追加するのは実に簡単です。
「addtest.pl」を実行すると、「Test Name」(アーカイブしたテストのテスト名と
対応していて、拡張子 .tar.gz を除いた名前)、「Description」(テストの簡単な
説明)、「Lilo Default」、Lilo conf にデフォルトラインの追加 (必要に応じて)
を求められます。ここで、「Host Type」を指定するよう求められます。ここでは、
上記の Hosttype と同じものを指定します。異なるプラットフォーム上で異なるテスト
を行えるように、Hosttype に応じて異なるテストがマッピングされています。この必要
がなければ、1 つの Hosttype を使用して、すべてのテストをこの Hosttype にマッピング
することをお勧めします。
Cron
サーバサイドの STP は、定期的に実行できることが必要です。テストをキューに入れる
ために、サーバプロセス「stp2_server.pl」を Cron に追加することをお勧めします。
これは、「etc/config.xml」の読み取り権限を持つユーザが行う必要があります。
「stp2_server.pl」スクリプトが、マシンのインストール、テストプロセスの開始、
機能が停止したマシンの処理を行います。OSDL では、このスクリプトを 5 分ごとに実行
しています。
クライアントセットアップ
クライアントの準備
RPM のビルド
PLM のインストール
著者
Open Source Development Lab http://www.osdl.org/
バージョン
2.00.
著作権
Copyright (C) 2001,2002 Open Source Development Lab.All Rights Reserved.
本モジュールはフリーソフトウェアです。
GNU Public License(GPL)の条項の下で再頒布または改変することができます。
|