Files
mckernel/test/mng_mod/issues/885

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

【Issue#885 動作確認】
Issue#885が解決され、既存機能に影響がないことをIssueで報告されたテストプログラム2項目と、
McKernelでのptraceのattach/detach操作の基本動作確認9項目の計11項目のテストによって確認した。
なお、各テストの実行結果は./result.log として格納している。

①Issueで報告されたテストプログラムによる確認
 ・Issue#885
 報告で使用されたテストプログラムを用いて、現象が再現しないことを確認した。
 実行時の出力を./result.log に記載している
 
②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していることを確認した。