93 lines
4.6 KiB
Plaintext
93 lines
4.6 KiB
Plaintext
【Issue#1031 動作確認】
|
||
Issue#1031が解決され、既存機能に影響がないことをIssueで報告されたテストプログラム(1項目)と、
|
||
McKernelでのsigaction()の基本動作確認(10項目)の計11項目のテストによって確認した。
|
||
なお、各テストの実行結果は./result.log として格納している。
|
||
|
||
1. Issueで報告されたテストプログラムによる確認
|
||
・Issue#1031 (https://postpeta.pccluster.org/redmine/issues/1031)
|
||
報告で使用されたテストプログラムを用いて、現象が再現しないことを確認した。
|
||
実行時の出力を./result.log に記載している
|
||
|
||
2. McKernelでのsigaction()の基本動作確認
|
||
以下の内容で、Issue#1031による変更が既存機能に影響しないことを確認した。
|
||
|
||
基本動作確認の詳細を以下に示す。
|
||
|
||
(1) テストの実行方法
|
||
以下の手順でテストを実行する
|
||
1. Makefileの変数MCK_DIRの内容を、McKernelがインストールされているディレクトリに変更する
|
||
2. sh make test を実行する
|
||
|
||
(2) テスト項目
|
||
CT_001: SIG_RESETHAND 指定時の動作
|
||
1. SIG_RESETHANDを指定したsigaction()でSIG_USR1にハンドラを設定
|
||
2. 自身にSIGUSR1を送る
|
||
3. 1.で登録したハンドラが呼び出される
|
||
4. 自身にSIGUSR1を送る
|
||
5. 1.で登録したハンドラが呼び出されず、プロセスが終了する
|
||
|
||
CT_002: SIG_RESETHAND 未指定時の動作
|
||
1. SIG_RESETHANDを指定しないsigaction()でSIGUSR1にハンドラを設定
|
||
2. 自身にSIGUSR1を送る
|
||
3. 1.で登録したハンドラが呼び出される
|
||
4. 自身にSIGUSR1を送る
|
||
5. 1.で登録したハンドラが呼び出される
|
||
|
||
CT_003: SIG_RESETHANDO 指定ハンドラへの上書き登録時の動作
|
||
1. SIG_RESETHANDを指定したsigaction()でSIG_USR1にハンドラを設定
|
||
2. SIG_RESETHANDを指定しないsigaction()でSIG_USR1にハンドラを設定
|
||
3. 自身にSIGUSR1を送る
|
||
4. 2.で登録したハンドラが呼び出される
|
||
5. 自身にSIGUSR1を送る
|
||
6. 2.で登録したハンドラが呼び出される
|
||
|
||
CT_004: 複数のsig_numへのハンドラ登録時の動作
|
||
1. SIG_RESETHANDを指定したsigaction()でSIG_USR1にハンドラを設定
|
||
2. SIG_RESETHANDを指定したsigaction()でSIG_USR2にハンドラを設定
|
||
3. 自身にSIGUSR1を送る
|
||
4. 1.で登録したハンドラが呼び出される
|
||
5. 自身にSIGUSR2を送る
|
||
6. 2.で登録したハンドラが呼び出される
|
||
7. 自身にSIGUSR1を送る
|
||
8. 1.で登録したハンドラが呼び出されず、プロセスが終了する
|
||
|
||
CT_005: 複数回(非上書き)のSIG_RESETHAND 指定時の動作
|
||
1. SIG_RESETHANDを指定したsigaction()でSIG_USR1にハンドラを設定
|
||
2. 自身にSIGUSR1を送る
|
||
3. 1.で登録したハンドラが呼び出される
|
||
4. SIG_RESETHANDを指定したsigaction()でSIG_USR1にハンドラを設定
|
||
5. 自身にSIGUSR1を送る
|
||
6. 4.で登録したハンドラが呼び出される
|
||
7. 自身にSIGUSR1を送る
|
||
8. 4.で登録したハンドラが呼び出されず、プロセスが終了する
|
||
|
||
CT_006: 設定中のハンドラ情報の取得 (上書き時)
|
||
1. SIG_RESETHANDを指定したsigaction()でSIG_USR1にハンドラを設定
|
||
2. sigaction(SIGUSR1, NULL, &act) で設定情報を取得できる
|
||
3. SIG_RESETHANDを指定しないsigaction()でSIG_USR1にデフォルトハンドラを設定
|
||
4. sigaction(SIGUSR1, NULL, &act) で3.で指定した設定情報を取得できる
|
||
|
||
CT_007: 設定中のハンドラ情報の取得 (デフォルトに戻った時)
|
||
1. SIG_RESETHANDを指定したsigaction()でSIG_USR1にハンドラを設定
|
||
2. 自身にSIGUSR1を送る
|
||
3. 1.で登録したハンドラが呼び出される
|
||
4. sigaction(SIGUSR1, NULL, &act) で設定情報を取得できる
|
||
|
||
CT_008: 不正なsig_numへのハンドラ登録
|
||
1. 範囲外(上限、下限)のsignumへのハンドラ登録が失敗する
|
||
2. SIGKILL, SIGSTOPへのハンドラ登録が失敗する
|
||
|
||
CT_009: SIGKILL, SIGSTOPのハンドラ情報の取得
|
||
1. sigaction(SIGKILL, NULL, &act) で設定情報を取得できる
|
||
2. sigaction(SIGSTOP, NULL, &act) で設定情報を取得できる
|
||
|
||
CT_010: sig_numの有効確認
|
||
1. sigaction(SIGUSR1, NULL, NULL) が成功する(有効)
|
||
2. sigaction(SIGKILL, NULL, NULL) が成功する(有効)
|
||
3. sigaction(SIGSTOP, NULL, NULL) が成功する(有効)
|
||
4. sigaction(_NSIG, NULL, NULL) が失敗する(無効)
|
||
|
||
(3) 結果
|
||
テストプログラムの実行結果をresult.log に示す。
|
||
上記の11項目がPASSしていることを確認した。
|