Files
mckernel/test/issues/1112
Ken Sato e1f204de4a test: Add testcase for #1112
Refs: #1112
Change-Id: I0041366d8dcf035a09fbb59a5dbd5c94cae0d65e
2018-07-10 02:12:04 +00:00
..
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00
2018-07-10 02:12:04 +00:00

【Issue#1112 動作確認】
□ テスト内容
1. Issueで報告された再現プログラムでの確認
RT_001: ostest-rt_sigaction.004 による確認
	テストが正常に終了し、「RESULT: ok」が出力される

2. 既存のmremap機能に影響がないことを確認
CT_001: mremapによる領域の拡張
	1. mmap で32MBの領域を確保
	2. 下記条件でmremapを実行
		- old_addr : mmapで確保したアドレス
		- old_size : 0x2000000 (32MB)
		- new_size : 0x3000000 (64MB)
		- flags    : MREMAP_MAYMOVE
	3. mremap がMAP_FAILED以外の値を返す
	4. mremap がerrnoを設定しない

CT_002: mremapによる領域の縮小
	1. mmap で32MBの領域を確保
	2. 下記条件でmremapを実行
		- old_addr : mmapで確保したアドレス
		- old_size : 0x2000000 (32MB)
		- new_size : 0x800000  (8MB)
		- flags    : 0
	3. mremap がold_addr に指定した値を返す
	4. mremap がerrnoを設定しない

CT_003: old/new_size 不正時の動作
	1. mmap で32MBの領域を確保
	2. 下記条件でmremapを実行
		- old_addr : mmapで確保したアドレス
		- old_size : 0xffffffffffffe000 (remap後の領域がアドレス空間の最大値を超える値)
		- new_size : 0xffffffffffffe000 (remap後の領域がアドレス空間の最大値を超える値)
		- flags    : 0
	3. mremap がold_addr に指定した値を返す
	4. mremap がerrnoを設定しない

CT_004: old/new_size 不正時の動作
	1. mmap で32MBの領域を確保
	2. 下記条件でmremapを実行
		- old_addr : mmapで確保したアドレス
		- old_size : 0xffffffffffffe000 (remap後の領域がアドレス空間の最大値を超える値)
		- new_size : 0xffffffffffffe000 (remap後の領域がアドレス空間の最大値を超える値)
		- flags    : MREMAP_MAYMOVE | MREMAP_FIXED
		- new_addr : mmapで確保したアドレス + 0x40000000 (1GB)
	3. mremap がMAP_FAILED を返す
	4. mremap がerrnoにEINVALを設定する

CT_005: old/new_size 不正時の動作
	1. mmap で32MBの領域を確保
	2. 下記条件でmremapを実行
		- old_addr : mmapで確保したアドレス
		- old_size : 0x2000000 (32MB)
		- new_size : 0xffffffffffffe000 (remap後の領域がアドレス空間の最大値を超える値)
		- flags    : MREMAP_MAYMOVE
	3. mremap がMAP_FAILED を返す
	4. mremap がerrnoにENOMEMを設定する

□ 実行手順
$ make test

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

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