Solaris 8 のソフトウェア開発 (追補)

自動テストプロセス

自動テストのプロセスは、次のようになります。

  1. ドライバの何をテストするかを確認します。

    次のようにドライバがハードウェアに作用する部分は、すべてテストします。

    • アタッチとデタッチ

    • スタック下の接続と切り離し

    • 通常のデータ転送

    • 文書化されたデバッグモード

    使用モードごとに、作業負荷スクリプト (fixup_script) を生成する必要があります。

  2. 使用モードごとに、デバイスの構成と構成の解除を行い、作業負荷を作成し終了する、実行可能なプログラム (fixup_script) を作成します。

  3. errdef によってアクセスの種類を -a log と指定し、th_define を実行します。

  4. ログがいっぱいになるまで待ちます。

    ログには、bofi ドライバの内部バッファのダンプが入っています。このデータはスクリプトの最初に記載されます。

    ログの作成には数秒から数分かかるので、th_manage broadcast コマンドを使用して進行状況を検査します。

  5. 作成されたテストディレクトリに移動し、マスターテストスクリプトを実行します。

    マスタースクリプトは、生成されたテストスクリプトを順次実行します。レジスタセットごとに、テストスクリプトが生成されます。

  6. 分析結果を保存します。

    success (corruption reported)success (corruption undetected) などの正常に終了したテスト結果は、テスト中のドライバが正常に動作していることを示しています。

    出力に test not triggered という失敗が 2、3 含まれても問題ではありませんが、そうした失敗がそれ以上になった場合には、テストがうまくいっていないことを示します。テストスクリプトが生成されたときと同じレジスタにドライバがアクセスしていないときは、こうした失敗が発生することがあります。

  7. ドライバの複数のインスタンスに対して同時にテストを実行し、エラーパスのマルチスレッド化をテストします。

    たとえば、th_define コマンドごとに、テストスクリプトとマスタースクリプトが入ったディレクトリを作成します。


    # th_define -n xyznetdrv -i 0 -a log -e script
    # th_define -n xyznetdrv -i 1 -a log -e script
    

    マスタースクリプトを作成したら、それらを同時に実行します。


    注 –

    生成されたスクリプトでは、ログ対象の errdef がアクティブであった間に記録されたログ内容に基づいた障害投入のシミュレーションだけが生成されます。作業負荷を定義するときは、必要な結果がログに記録されることを確認し、出来上がったログや障害投入の仕様も分析します。出来上がったテストスクリプトが行ったハードウェアのアクセスの範囲が、要望どおりであることを確認する必要があります。