Wait for LWK to run at shutdown.

refs #898
refs #928
This commit is contained in:
Ken Sato
2018-02-06 10:40:12 +09:00
parent 8ee9eca74e
commit 228f8f8533
26 changed files with 1848 additions and 2 deletions

View File

@ -0,0 +1,93 @@
【Issue#898,#928 動作確認】
Issue#898, #928が解決され、既存機能に影響がないことをihklibテストスイートを用いた確認2項目と、
McKernelの起動/終了の基本動作確認9項目の計11項目のテストによって確認した。
①ihklibテストスイートを用いた確認
・Issue#898
ihklibテストスイートのihklib001_lin.c を以下のように修正して1000回繰り返し実行し、
すべての実行においてテストをパスすることを確認した。
- McKernelのブート処理の直後にgoto文を追加し、シャットダウン処理の直前に移動する
・Issue#928
ihklibテストスイートのihklib001_lin.c を以下のように修正して1000回繰り返し実行し、
すべての実行においてテストをパスすることを確認した。
- McKernelプロセス(mcexec)の実行直後にgoto文を追加し、シャットダウン処理の直前に移動する
②McKernelの起動/終了の基本動作確認
McKernelの状態と、終了処理(shutdown, destroy)の組み合わせで、
9項目のテストを実施した。
基本動作確認の詳細を以下に示す。
1. ファイルの説明
CT_xxx.c 各テスト項目のテストプログラム
force_shutdown.patch McKernelの状態がRUNNINGにならなかった場合に行う強制シャットダウン処理を
発生させるパッチファイル
result.log テストプログラムの実行結果
2. テストの実行方法
以下の手順でテストを実行する
1. Makefileの変数MCK_DIRの内容を、McKernelがインストールされているディレクトリに変更する
2. CT_xxx.c の定数MCK_DIRの内容を、McKernelがインストールされているディレクトリに変更する
3. sh make test を実行する
3. テスト項目
以下の条件でMcKernelの起動/終了が正常に行われることを確認する
なお、McKernelの起動、終了の操作はihklibを用いて実施する
CT_001:
1. McKernelを起動(ihk_os_boot)する
2. 起動の直後にMcKernelを終了(ihk_os_shutdown)する
⇒ ihk_os_shutdownが0を返す
CT_002:
1. McKernelを起動(ihk_os_boot)する
2. 起動の直後に対象のIHK_OSインスタンスを破棄(ihk_os_destroy)する
⇒ ihk_os_destroyが0を返す
CT_003:
1. McKernelを起動(ihk_os_boot)する
2. McKernelプロセスを実行する
3. McKernelプロセスの実行終了直後にMcKernelを終了(ihk_os_shutdown)する
⇒ ihk_os_shutdownが0を返す
CT_004:
1. McKernelを起動(ihk_os_boot)する
2. McKernelプロセスを実行する
3. McKernelプロセスの実行終了直後に対象のIHK_OSインスタンスを破棄(ihk_os_destroy)する
⇒ ihk_os_destroyが0を返す
CT_005:
1. McKernelを起動(ihk_os_boot)する
2. McKernelプロセスを実行する
3. McKernelプロセスの実行中にMcKernelを終了(ihk_os_shutdown)する
⇒ ihk_os_shutdownが0を返す
CT_006:
1. McKernelを起動(ihk_os_boot)する
2. McKernelプロセスを実行する
3. McKernelプロセスの実行中に対象のIHK_OSインスタンスを破棄(ihk_os_destroy)する
⇒ ihk_os_destroyが0以外を返す (ref_count != 0)
CT_007:
1. McKernelの起動処理の中の、カーネルイメージのロード(ihk_os_load)までを実施する
2. McKernelを終了(ihk_os_shutdown)する
⇒ ihk_os_shutdownが0を返す
CT_008:
1. McKernelを起動(ihk_os_boot)する
2. McKernelプロセスを実行する
3. McKernelプロセスの実行終了直後にMcKernelを終了(ihk_os_shutdown)する
4. ihk_os_get_status がSHUTDOWNまたは、INACTIVEを返すことを確認する
5. 終了したMcKernelに対して、再度終了(ihk_os_shutdown)する
⇒ ihk_os_shutdownが0以外を返す
CT_009:
前提force_shutdown.patch を適用してMcKernelをビルドする
1. McKernelを起動(ihk_os_boot)する
2. 起動の直後にMcKernelを終了(ihk_os_shutdown)する
⇒ ihk_os_shutdownが0を返す
4. 結果
テストプログラムの実行結果はresult.log に出力される。
上記9項目で[OK]が出力されていることを確認した。