Files
mckernel/test/issues/1201+1257
Tomoki Shirasawa d78883c692 fix to missing exclusive processing between terminate() and
finalize_process().

The process of making a child process zombie and the process of setting
the parent of the child process to process ID 1 are excluded.

Refs: #1257
Change-Id: Ic95d4d8ee92d6a4a63847e5eda20ec1ba92566ac
2019-02-08 10:25:20 +09:00
..

【Issue#1201, Issue#1257 動作確認】
□ テスト内容
Issue#1201 と Issue#1257 は 共に stress-6-1-signalonfork-001 でプロセス残留
が発生するもので、現象と発生頻度が異なる。
Issue#1201 はプロセスが PS_EXITED 状態で残留し、スレッドも残留する。概ね
10数回に1回の頻度で発生する。
Issue#1257 はプロセスが PS_ZOMBIE 状態で残留するが、スレッドは残留しない。
概ね 200 回程度に 1 回の頻度で発生する。
このため、2 件の Issue のテストは共通に行うことにした。

テスト内容は以下の通りである。
1. Issue 指摘事項の再現確認
C1201T01 stress-6-1-signalonfork-001 を 1000 回連続で正常終了することを確認。
         発生頻度が低い Issue#1257 でも 200 回程度の連続実行で確実に再現する
         ため、1000 回の連続実行で発生しなければ対策されたと判断する。

2. LTP を用いて既存処理に影響しないことを確認
   プロセス生成処理関連を変更したため、fork のテストを選定した。
C1201T02 fork01 が PASS すること
C1201T03 fork02 が PASS すること
C1201T04 fork03 が PASS すること
C1201T05 fork04 が PASS すること
C1201T06 fork07 が PASS すること
C1201T07 fork08 が PASS すること
C1201T08 fork09 が PASS すること
C1201T09 fork10 が PASS すること
C1201T10 fork11 が PASS すること

□ 実行手順
$ make test

McKernelのインストール先や LTP の配置場所は、$HOME/.mck_test_config を
参照する。.mck_test_config は、McKernel を ビルドした際に生成される
mck_test_config.sample ファイルを $HOME に コピーし、適宜編集すること。

また、C1201.sh の以下の指定を適宜変更すること。
STRESSTESTDIR=  ストレステストが存在するパス。
		($HOME/stress_test の場合は変更不要)

□ 実行結果
C1201.txt 参照。
すべての項目をPASSしていることを確認。