【Issue#1176 動作確認】
□ テスト内容
1. 指摘の現象が解消されていることを確認する。
C1176T01 指摘の現象が解消されていることを、テストプログラムを用いて確認
mcexec test_mck -s getrusage -n 2
2. 修正が正しく動作することをテストプログラムを用いて確認する。
変更は以下の3点である。
(1) システムコール出口で高速化のためシグナル処理を呼び出していなかったが、
ロック無しでシグナル受信を判定後に、シグナル処理を呼び出すようにした。
(2) futex_wait 処理で高速化のためシグナル受信の判定処理をしていなかったが、
ロック無しでシグナル受信を判定し、受信していた場合にfutex_wait
処理を脱出するようにした。(その後、システムコール出口でシグナルが
処理される)
(3) 高速化のためシステムコール出口での再スケジュール処理を呼び出して
いなかったが、ロック無しで再スケジュール要否を判定し、再スケジュールが
必要な場合は再スケジュール処理を行うよにした。
C1176T02 システムコールオフロード中にシグナル受信し、システムコールが中断
してシグナル処理されることを確認
C1176T03 futex_wait 処理中にシグナル受信し、futex_waitが中断してシグナルが
処理されることを確認
C1176T04 2つのプロセスを同一CPUに割り当てた状態で、各々1秒sleepするとき、
それぞれのプロセスが正しく処理されることを確認。
sleep完了後にシステムコール出口で再スケジュール処理が行われる
3. 修正が既存処理に影響しないことをLTPを用いて確認する。
シグナル関連処理(正常系)を中心にテストプログラムを選定した。
C1176T05 kill01: kill の基本機能の確認
C1176T06 kill12: kill, wait, signal の組み合わせ確認
C1176T07 pause02: pause の基本機能の確認
C1176T08 sigaction01: sigaction の基本機能の確認
□ 実行手順
$ make test
McKernelのインストール先や、OSTEST, LTPの配置場所は、
$HOME/.mck_test_config を参照している
.mck_test_config は、McKernelをビルドした際に生成されるmck_test_config.sample ファイルを
$HOMEにコピーし、適宜編集する
□ 実行結果
C1176.txt 参照。
全ての項目が OK となっていることを確認。