Files
mckernel/test/user_space

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

User spaceテストについて
1.テストの準備
1.1 設定ファイル

以下のコマンドでシェルスクリプトの変数設定用includeファイルを準備します。

    cp -i <build>/mckernel/mck_test_config.sample ~/.mck_test_config

1.2 パッチファイル
 テストは、修正部分にkprintfをパッチで追加し確認を行います。
 パッチファイルは以下のディレクトリに格納しています。
 mckernel/test/user_space/patch/
 以下にテストとパッチの対応を示します。

 パッチファイル名	対象システムコール	テストID
 syscall.patch		perf_event_open		perf_001-perf_008
 syscall.patch		futex			futes_001-futex_011
 syscall.patch		process_vm_readv	pvr_001-pvr_033
 syscall.patch		process_vm_writev	pvw_001-pvw_031
 syscall.patch		move_pages		mpo_001-mp_012
 pager_copy_from.patch  swapout 		so_001-so_006
 pager_copy_to_01.patch	swapout 		so_007-so_013
 pager_copy_to_02.patch swapout 		so_014-so_022
 なし			swapout			so_023-so_025
 qlmpilib.patch		swapout			so_026

1.3 パッチの適用
 mckernelディレクトリで以下コマンドを実行してパッチを当ててください。
 パッチ実行後ビルドしてください。

 patch -p1 < ./test/user_space/patch/XXXX.patch
				(XXXX.patchはパッチファイル名)


1.4 その他プログラムのコンパイル
	(1)user_space/swapoutディレクトリで、makeし、swaptest実行モジュールを作成してください。
	(2)qlmpi/qlmpi_testsuiteディレクトリで、テスト用プログラムのコンパイルを実施してください。
	(3)LTPプログラムの実行モジュールを準備する必要があります。

2.テストについて
	user_spaceのディレクトリにあるシェルについて説明します。
2.1 システムコールテスト用シェル
	go_syscall_test.sh	[auto]
	説明
		perf_event_open,futex,process_vm_readv,process_vm_writev,move_pages
		のテストを実行する。auto指定時、git reset --hard HEADコマンドで
		リセット後パッチを当て、ビルド後テストを開始する。
		テスト結果は、各システムコールディレクトリの下に.logファイルとして
		保存する。
		システムコールごと個別のテストを行う場合は、各システムコール名の
		ディレクトリにあるテスト用のシェルを実行する。

		テストの内容は以下の通り。
		perf_001-003	LTPを用いてperf_event_openが動作することを確認
		futex_001-002	get_futex_value_lockedでユーザ空間データのアクセス
				ができることを確認
		futex_003-011	LTPを用いてfutexが動作することを確認
		pvr_001-002	process_vm_readvでユーザ空間データのアクセスができ
				ることを確認
		pvr_003-032	LTPを用いてprocess_vm_readvが動作することを確認
		pvw_001-002	process_vm_writevでユーザ空間データのアクセスができ
				ることを確認
		pvw_003-031	LTPを用いてprocess_vm_writevが動作することを確認


2.2 swapoutテスト用シェル
	go_swapout_test.sh [auto]
	説明
		swapoutのテストを実行する。auto指定時、git reset --hard HEADコマンドで
		パッチを当て、ビルド後テストを繰り返す。
		テスト結果は、swapoutディレクトリに.logファイルとして保存する。
		パッチを手で当ててテストを行う場合は、swapoutディレクトリにある、
		テスト用のシェルを対応するパッチを当ててから実行する。
2.3 パッチ及びビルドコマンド
	patch_and_build.sh [patch_filename]
	説明
		git reset --hard HEADでソースをリセット後、引数で指定されたパッチを
		当ててからビルドする。引数を指定しない場合は、ソースをリセットして
		ビルドを行う。テスト用シェルでautoオプションを付けた場合、テスト用
		シェルから本シェルを呼び出す。

3. configファイル
 configファイルは各テストディレクトリにあります。各ディレクトリのシェルから
 参照されます。
	user_space/swapout/config
		START			ql_mpiexec_startのパスqlmpiテスト用
		FINALIZE		ql_mpiexec_finalizeのパスqlmpiテスト用
		USR_PRG_A		qlmpiテスト用プログラム /test/qlmpi/qlmpi_testsuite参照
		USR_PRG_B		qlmpiテスト用プログラム /test/qlmpi/qlmpi_testsuite参照
		USR_PRG_C		qlmpiテスト用プログラム /test/qlmpi/qlmpi_testsuite参照
		USR_PRG_IRREG	qlmpiテスト用プログラム /test/qlmpi/qlmpi_testsuite参照

4. その他
4.1 qlmpiテスト用のマシンファイルの設定
	user_space/swapout/test_cases/CT01.txt
		MASTER			マスターードのマシン名もしくはIPアドレス
		SLAVE			1ードのテストのため不要
以上