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