Files
mckernel/test/issues/765
Tomoki Shirasawa 1387c9687b Add test cases for #765
Refs: #765
Change-Id: I50d70a15d5d5ce31227cacbed4eccd49b218713b
2018-08-02 01:42:46 +00:00
..
2018-08-02 01:42:46 +00:00
2018-08-02 01:42:46 +00:00
2018-08-02 01:42:46 +00:00
2018-08-02 01:42:46 +00:00
2018-08-02 01:42:46 +00:00
2018-08-02 01:42:46 +00:00

【Issue#765 動作確認】
□ テスト内容
1. 共有可能なページがラージページに割り当てられないことの確認
Issue#765の問題は、共有可能なラージページをスモールページに分割したとき、
共有情報が不正になることであった。
しかし、McKernel は共有対象の領域をラージページに割り当てないため、共有
可能なページが分割されることはあり得ず、Issueが顕在化することは無い。
このことをテストプログラムを用いて確認する。

C765T01 スタック領域がラージページに割り当てられ、共有不能なことを確認する。
C765T02 ヒープ領域がスモールページに割り当てられ、共有不能なことを確認する。
C765T03 mmapで8kBのMAP_PRIVATE領域がスモールページに割り当てられ、共有不能な
        ことを確認する。
C765T04 mmapで2MBのMAP_PRIVATE領域がラージページに割り当てられ、共有不能な
        ことを確認する。
C765T05 mmapで8kBのMAP_SHARED領域がスモールページに割り当てられ、共有可能な
        ことを確認する。
C765T06 mmapで2MBのMAP_SHARED領域がスモールページに割り当てられ、共有可能な
        ことを確認する。
C765T07 shmatで8kBの領域がスモールページに割り当てられ、共有可能なことを
        確認する。
C765T08 shmatで2MBの領域がスモールページに割り当てられ、共有可能なことを
        確認する。

2. 指摘プログラムで現象が発生しないことの確認
ostestのmem_limitsを実行し、現象が発生しないことを確認する。

C765T09 struct pageの参照カウンタが負にならないことを確認する。

□ パッチ適用
動作確認のため、McKernelにパッチを適用する。
$ cd /path/to/mckernel
$ patch -p0 < test/issue/765/C765.patch
$ <configure, build, install>

C765.patch 指定されたメモリのページサイズと共有状況を調べるシステムコールを
           追加するパッチ。

□ 実行手順
$ make test

実行できない場合は、C765.shの以下の行を適切に書き換えた後に実行。
BIN=          mcexec が存在するパス
SBIN=         mcreboot.sh が存在するパス
OSTEST=       ostest が存在するパス

□ 実行結果
C765.txt 参照。
全ての項目が OK となっていることを確認。