Files
mckernel/test/issues/1001
Ken Sato d4fa953975 test: Add testcase for #1001
Refs: #1001
Change-Id: I3edd750108bd3f887af1f0afe3f2651f1243062b
2018-08-02 02:24:41 +00:00
..
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00
2018-08-02 02:24:41 +00:00

【Issue#1001 動作確認】
□ テスト内容
1. 既存のperf_event_open機能に影響がないことを確認
CT_001: 単一イベント種別での計測
	1. perf_event_open を1回呼び出し、1つのカウンタの設定とfdの取得を行う
	2. PERF_EVENT_IOC_RESET を取得したfdにioctlで送信し、
	   カウンタの値が0になっていることを確認する
	3. PERF_EVENT_IOC_ENABLE を取得したfdにioctlで送信し、計測を開始する
	4. 計測対象プログラム(calc_task(), memory_task())を実行する
	5. PERF_EVENT_IOC_DISABLE を取得したfdにioctlで送信し、計測を終了する
	6. 計測終了時のカウンタの値を取得し、表示する
	7. カウンタが停止していることを確認するため、計測対象プログラムを再び実行する
	8. カウンタの値が前回取得時から変化していないことを確認する

CT_002: 複数のイベント種別での計測
	1. perf_event_open を4回呼び出し、4つのカウンタの設定とfdの取得を行う
	   1つ目のカウンタをリーダーとし、4つのカウンタを1つのグループとして設定する
	2. PERF_EVENT_IOC_RESET を各fdにioctlで送信し、
	   各カウンタの値が0になっていることを確認する
	3. PERF_EVENT_IOC_ENABLE をグループリーダーのfdにioctlで送信し、計測を開始する
	4. 計測対象プログラム(calc_task(), memory_task())を実行する
	5. PERF_EVENT_IOC_DISABLE をグループリーダーのfdにioctlで送信し、計測を終了する
	6. 計測終了時の各カウンタの値を取得し、表示する
	7. 各カウンタが停止していることを確認するため、計測対象プログラムを再び実行する
	8. カウンタの値が前回取得時から変化していないことを確認する

2. 既存のpa_info機能に影響がないことを確認
CT_003: 単一のイベント種別での計測
	1. ihk_os_setperfevent を呼び出し、1種類のイベントの設定を行う
	2. ihk_os_perfctlをPERF_EVENT_ENABLE指定で呼び出し、計測を開始する
	3. 計測対象プログラム(calc_task(), memory_task())をmckernel上で実行する
	4. ihk_os_perfctlをPERF_EVENT_DISABLE指定で呼び出し、計測を終了する
	5. 計測終了時の各カウンタの値を取得し、表示する
	6. カウンタが停止していることを確認するため、計測対象プログラムを再び実行する
	7. カウンタの値が前回取得時から変化していないことを確認する

CT_004: 複数のイベント種別での計測
	1. ihk_os_setperfevent を呼び出し、4種類のイベントの設定を行う
	2. ihk_os_perfctlをPERF_EVENT_ENABLE指定で呼び出し、計測を開始する
	3. 計測対象プログラム(calc_task(), memory_task())をmckernel上で実行する
	4. ihk_os_perfctlをPERF_EVENT_DISABLE指定で呼び出し、計測を終了する
	5. 計測終了時の各カウンタの値を取得し、表示する
	6. カウンタが停止していることを確認するため、計測対象プログラムを再び実行する
	7. カウンタの値が前回取得時から変化していないことを確認する

3. LTPによる動作の確認
LT_001: perf_event_open01 で、PERF_TYPE_HARDWARE 種別の計測が行えることを確認
	1. 上記テスト中の 1-5件目のテストがTPASSであることを確認
	1. 上記テスト中の 6,7件目のテストがTCONFであることを確認
	   (PERF_TYPE_SOFTWARE指定はMcKernelでは未サポートのため)

□ 実行手順
McKernelのインストール先や、OSTEST, LTPの配置場所は、
$HOME/mck_test_config を参照している
mck_test_config は、McKernelをビルドした際に生成される
mck_test_config.sample ファイルを$HOMEにコピーし、適宜編集する

$ make test

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

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