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ノードのテストのため不要
以上
