83 lines
3.9 KiB
Plaintext
83 lines
3.9 KiB
Plaintext
【Issue#885 動作確認】
|
||
Issue#885が解決され、既存機能に影響がないことをIssueで報告されたテストプログラム(2項目)と、
|
||
McKernelでのptraceのattach/detach操作の基本動作確認(9項目)の計11項目のテストによって確認した。
|
||
なお、各テストの実行結果は./result.log として格納している。
|
||
|
||
1. Issueで報告されたテストプログラムによる確認
|
||
・Issue#885 (https://postpeta.pccluster.org/redmine/issues/885)
|
||
報告で使用されたテストプログラムを用いて、現象が再現しないことを確認した。
|
||
実行時の出力を./result.log に記載している
|
||
|
||
2. McKernelでのptraceのattach/detachの基本動作確認
|
||
以下の内容で、Issue#885による変更が既存機能に影響しないことを確認した。
|
||
|
||
基本動作確認の詳細を以下に示す。
|
||
|
||
(1) テストの実行方法
|
||
以下の手順でテストを実行する
|
||
1. Makefileの変数MCK_DIRの内容を、McKernelがインストールされているディレクトリに変更する
|
||
2. sh make test を実行する
|
||
|
||
(2) テスト項目
|
||
CT_001: 通常のattach detach 操作
|
||
1. 親プロセスが子プロセスにattach
|
||
2. 親プロセスがwait()で子プロセスの停止を回収
|
||
3. 親プロセスが子プロセスをdetach
|
||
4. 子プロセスが終了
|
||
5. 親プロセスがwait()で子プロセスの終了を回収
|
||
|
||
CT_002: tracee(子プロセス)がdetachせずに終了
|
||
1. 親プロセスが子プロセスにattach
|
||
2. 親プロセスがwait()で子プロセスの停止を回収
|
||
3. 親プロセスが子プロセスに再開指示(ptrace_cont)
|
||
4. 子プロセスが終了
|
||
5. 親プロセスがwait()で子プロセスの終了を回収
|
||
|
||
CT_003: tracer(親プロセス)がdetachしないまま先に終了
|
||
1. 親プロセスが子プロセスにattach
|
||
2. 親プロセスがwait()で子プロセスの停止を回収
|
||
3. 親プロセスが子プロセスに再開指示した直後に終了
|
||
4. 子プロセスが終了
|
||
|
||
CT_004: 複数回のattach -> detach 操作
|
||
1. 親プロセスが子プロセスにattach
|
||
2. 親プロセスがwait()で子プロセスの停止を回収
|
||
3. 親プロセスが子プロセスにdetach
|
||
4. 再び、親プロセスが子プロセスにattach
|
||
5. 親プロセスがwait()で子プロセスの停止を回収
|
||
6. 親プロセスが子プロセスにdetach
|
||
7. 親プロセスがwait()で子プロセスの終了を回収
|
||
|
||
CT_005: 不正なpid指定のattach
|
||
1. 不正なpid(0, 1, 負数)を指定したattachが失敗
|
||
2. 自身のpidを指定したattachが失敗
|
||
|
||
CT_006: attach済の子プロセスへのattach①
|
||
1. 既にattachしている子プロセスへ再びattachが失敗
|
||
|
||
CT_007: attach済の子プロセスへのattach②
|
||
1. tracemeした子プロセスへattachが失敗
|
||
|
||
CT_008: 不正なpid指定のdetach
|
||
1. 不正なpid(0, 1, 負数)を指定したdetachが失敗
|
||
2. attachしていない子プロセスのpidを指定したdetachが失敗
|
||
3. 自身のpidを指定したattachが失敗
|
||
|
||
CT_009: detach済の子プロセスへのdetach
|
||
1. 既にdetachしていいる子プロセスへ再びdetach
|
||
|
||
CT_010: 親子関係ではないプロセス間でのattach
|
||
1. 親プロセスが2つの子プロセス(tracerプロセス, traceeプロセスとする)をforkする
|
||
2. tracerプロセスがtraceeプロセスをattach
|
||
3. tracerプロセスがwait()でtraceeプロセスの停止を回収
|
||
4. tracerプロセスがtraceeプロセスに再開を指示
|
||
5. traceeプロセスが終了する
|
||
6. tracerプロセスがtraceeプロセスにdetach
|
||
7. tracerプロセスがwait()でtraceeプロセスの終了を回収
|
||
8. tracerプロセスが終了
|
||
9. 親プロセスがwait()でtracee,tracerプロセスの終了を回収
|
||
|
||
(3) 結果
|
||
テストプログラムの実行結果をresult.log に示す。
|
||
上記の11項目がPASSしていることを確認した。
|