| Cutterリファレンスマニュアル | ||||
|---|---|---|---|---|
| Top | 説明 | ||||
CutSubProcess; CutSubProcessGroup; CutSubProcess * cut_take_new_sub_process (const char *test_directory); cut_boolean cut_sub_process_run (CutSubProcess *sub_process); void cut_sub_process_run_async (CutSubProcess *sub_process); cut_boolean cut_sub_process_wait (CutSubProcess *sub_process); cut_boolean cut_sub_process_is_success (CutSubProcess *sub_process); cut_boolean cut_sub_process_is_running (CutSubProcess *sub_process); const char * cut_sub_process_get_test_directory (CutSubProcess *sub_process); void cut_sub_process_set_test_directory (CutSubProcess *sub_process,const char *test_directory); const char * cut_sub_process_get_source_directory (CutSubProcess *sub_process); void cut_sub_process_set_source_directory (CutSubProcess *sub_process,const char *source_directory); cut_boolean cut_sub_process_get_multi_thread (CutSubProcess *sub_process); void cut_sub_process_set_multi_thread (CutSubProcess *sub_process,cut_boolean multi_thread); int cut_sub_process_get_max_threads (CutSubProcess *sub_process); void cut_sub_process_set_max_threads (CutSubProcess *sub_process,int max_threads); const char ** cut_sub_process_get_exclude_files (CutSubProcess *sub_process); void cut_sub_process_set_exclude_files (CutSubProcess *sub_process,const char **files); const char ** cut_sub_process_get_exclude_directories (CutSubProcess *sub_process); void cut_sub_process_set_exclude_directories (CutSubProcess *sub_process,const char **directories); const char ** cut_sub_process_get_target_test_case_names (CutSubProcess *sub_process); void cut_sub_process_set_target_test_case_names (CutSubProcess *sub_process,const char **names); const char ** cut_sub_process_get_target_test_names (CutSubProcess *sub_process); void cut_sub_process_set_target_test_names (CutSubProcess *sub_process,const char **names); double cut_sub_process_get_elapsed (CutSubProcess *sub_process); double cut_sub_process_get_total_elapsed (CutSubProcess *sub_process); cut_boolean cut_sub_process_is_crashed (CutSubProcess *sub_process); cut_boolean cut_sub_process_get_fatal_failures (CutSubProcess *sub_process); void cut_sub_process_set_fatal_failures (CutSubProcess *sub_process,cut_boolean fatal_failures); CutSubProcessGroup * cut_take_new_sub_process_group (void); void cut_sub_process_group_add (CutSubProcessGroup *group,CutSubProcess *sub_process); cut_boolean cut_sub_process_group_run (CutSubProcessGroup *group); void cut_sub_process_group_run_async (CutSubProcessGroup *group); cut_boolean cut_sub_process_group_wait (CutSubProcessGroup *group);
もしテスト対象のソフトウェアがマルチプロセスやマルチスレッドでの使用をサポートしているなら、それらの機能をテストする必要があります。そのようなテストために、CutSubProcessとCutSubProcessGroupを使うことができます。
CutSubProcessはテストを別のプロセスで走らせ、その結果をメインプロセスに転送します。このため、別のプロセス上でのテスト結果もメインプロセス上でのテスト結果と同じように見えます。
CutSubProcessGroupはいくつかのCutSubProcessをまとめて実行するための便利オブジェクトです。
typedef struct _CutSubProcess CutSubProcess;
サブcutterプロセスを表現するオブジェクトです。サブcutterプロセスのパラメタとテスト結果を持っています。
例:
1 2 3 4 5 |
CutSubProcess *sub_process; sub_process = cut_take_new_sub_process("test-dir"); cut_sub_process_set_multi_thread(sub_process, TRUE); cut_assert_true(cut_sub_process_run(sub_process)); |
1.0.4から
typedef struct _CutSubProcessGroup CutSubProcessGroup;
サブcutterプロセスを実行するオブジェクトです。このオブジェクトは便利にテストを書くために導入されています。
例:
1 2 3 4 5 6 7 8 9 10 11 12 |
CutSubProcess *sub_process1, *sub_process2, *sub_process3; CutSubProcessGroup *group; sub_process1 = cut_take_new_sub_process("test-dir1"); sub_process2 = cut_take_new_sub_process("test-dir2"); sub_process3 = cut_take_new_sub_process("test-dir3"); group = cut_take_new_sub_process_group(); cut_sub_process_group_add(group, sub_process1); cut_sub_process_group_add(group, sub_process2); cut_sub_process_group_add(group, sub_process3); cut_assert_true(cut_sub_process_group_run(group)); |
1.0.4から
CutSubProcess * cut_take_new_sub_process (const char *test_directory);
test_directory以下のテストを実行するサブcutterプロセスを作り、それを返します。返されたサブcutterプロセスの所有者はCutterです。
|
サブcutterプロセスのテストがあるディレクトリ。 |
戻り値 : |
CutSubProcessオブジェクト。 |
1.0.4から
cut_boolean cut_sub_process_run (CutSubProcess *sub_process);
サブcutterプロセスを実行します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
もし、sub_processが正常に終了した場合はCUT_TRUE、そうでない場合はCUT_FALSE。 |
1.0.4から
void cut_sub_process_run_async (CutSubProcess *sub_process);
非同期でサブcutterコマンドを実行します。sub_processの結果はcut_sub_process_wait()で取得できます。
|
CutSubProcessオブジェクト。 |
1.0.4から
cut_boolean cut_sub_process_wait (CutSubProcess *sub_process);
非同期で実行されたサブcutterプロセスの終了を待ち、結果を返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
もし、sub_processが正常に終了した場合はCUT_TRUE、そうでない場合はCUT_FALSE。 |
1.0.4から
cut_boolean cut_sub_process_is_success (CutSubProcess *sub_process);
sub_processが正常に終了したかどうかを返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
もし、sub_processが正常に終了した場合はCUT_TRUE、そうでない場合はCUT_FALSE。 |
1.0.4から
cut_boolean cut_sub_process_is_running (CutSubProcess *sub_process);
sub_processが実行中かどうかを返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
sub_processが実行中の場合はCUT_TRUE、そうでない場合はCUT_FALSE。 |
1.0.4から
const char * cut_sub_process_get_test_directory (CutSubProcess *sub_process);
実行対象のテストがあるディレクトリを返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
テストディレクトリ |
1.0.4から
void cut_sub_process_set_test_directory (CutSubProcess *sub_process,const char *test_directory);
実行対象のテストがあるディレクトリとしてtest_directoryを指定します。これは必須のコマンドライン引数であるTEST_DIRECTORYと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
テストディレクトリ |
1.0.4から
const char * cut_sub_process_get_source_directory
(CutSubProcess *sub_process);
ソースファイルがあるディレクトリを返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
ソースディレクトリ。 |
1.0.4から
void cut_sub_process_set_source_directory (CutSubProcess *sub_process,const char *source_directory);
ソースファイルがあるディレクトリとしてsource_directoryを指定します。これは--source-directoryコマンドラインオプションと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
ソースディレクトリ。 |
1.0.4から
cut_boolean cut_sub_process_get_multi_thread (CutSubProcess *sub_process);
sub_processをマルチスレッドモードで実行するかどうかを返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
sub_processがマルチスレッドモードで実行されるならCUT_TRUE、そうでなければCUT_FALSE。 |
1.0.4から
void cut_sub_process_set_multi_thread (CutSubProcess *sub_process,cut_boolean multi_thread);
sub_processがマルチスレッドモードで実行されるかどうかを指定します。これは--multi-threadコマンドラインオプションと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
マルチスレッドモードで実行するならCUT_TRUE。 |
1.0.4から
int cut_sub_process_get_max_threads (CutSubProcess *sub_process);
sub_process中で同時に動く最大スレッド数を返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
sub_process中で同時に動く最大スレッド数。 |
1.0.5から
void cut_sub_process_set_max_threads (CutSubProcess *sub_process,int max_threads);
sub_process中で同時に動く最大スレッド数を設定します。-1は制限がないことを意味します。これは--max-threadsコマンドラインオプションと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
同時に動く最大スレッド数。 |
1.0.5から
const char ** cut_sub_process_get_exclude_files (CutSubProcess *sub_process);
テスト対象ファイルから除外されるファイル名を返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
テスト対象ファイルから除外されるファイル名。 |
1.0.4から
void cut_sub_process_set_exclude_files (CutSubProcess *sub_process,const char **files);
テスト対象から除外されるファイル名を指定します。これは--exclude-fileコマンドラインオプションと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
テスト対象ファイルから除外されるファイル名。 |
1.0.4から
const char ** cut_sub_process_get_exclude_directories
(CutSubProcess *sub_process);
テスト対象ディレクトリから除外されるディレクトリ名を返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
テスト対象ディレクトリから除外されるディレクトリ名。 |
1.0.4から
void cut_sub_process_set_exclude_directories (CutSubProcess *sub_process,const char **directories);
テスト対象ディレクトリから除外されるディレクトリ名を指定します。これは--exclude-directoryコマンドラインオプションと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
テスト対象ディレクトリから除外されるディレクトリ名。 |
1.0.4から
const char ** cut_sub_process_get_target_test_case_names
(CutSubProcess *sub_process);
実行されるテストケース名を返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
実行されるテストケース名。 |
1.0.4から
void cut_sub_process_set_target_test_case_names (CutSubProcess *sub_process,const char **names);
実行されるテストケース名を指定します。これは--test-caseコマンドラインオプションと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
実行されるテストケース名。 |
1.0.4から
const char ** cut_sub_process_get_target_test_names
(CutSubProcess *sub_process);
実行されるテスト名を返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
実行されるテスト名。 |
1.0.4から
void cut_sub_process_set_target_test_names (CutSubProcess *sub_process,const char **names);
実行されるテスト名を指定します。これは--testコマンドラインオプションと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
実行されるテスト名。 |
1.0.4から
double cut_sub_process_get_elapsed (CutSubProcess *sub_process);
sub_processを実行していた間の時間を取得します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
sub_processを実行していた間の時間。 |
1.0.4から
double cut_sub_process_get_total_elapsed (CutSubProcess *sub_process);
各テストで使われた時間の合計を返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
各テストで使われた時間の合計。 |
1.0.4から
cut_boolean cut_sub_process_is_crashed (CutSubProcess *sub_process);
sub_processが異常終了したかどうかを返します。
|
CutSubProcessオブジェクト。 |
戻り値 : |
sub_processが異常終了したときはCUT_TRUE、そうでない場合はCUT_FALSE。 |
1.0.4から
cut_boolean cut_sub_process_get_fatal_failures (CutSubProcess *sub_process);
sub_processが「失敗は致命的」モードで動くかどうかを返します。「失敗は致命的」モードの詳細はcut_sub_process_set_fatal_failures()を見てください。
|
CutSubProcessオブジェクト。 |
戻り値 : |
sub_processが「失敗は致命的」モードで実行されるならCUT_TRUE、そうでなければCUT_FALSE。 |
1.0.4から
void cut_sub_process_set_fatal_failures (CutSubProcess *sub_process,cut_boolean fatal_failures);
sub_processが「失敗は致命的」モードで実行されるかどうかを設定します。このモードではすべての失敗は致命的な問題として扱われます。つまり、失敗時にテストが異常終了します。いくつかの環境ではブレークポイントが設定されます。
--fatal-failuresコマンドラインオプションと同じ意味を持ちます。
|
CutSubProcessオブジェクト。 |
|
「失敗は致命的」モードで実行するならCUT_TRUE。 |
1.0.4から
CutSubProcessGroup * cut_take_new_sub_process_group (void);
サブcuterプロセスのグループを作ります。作られたグループの所有者はCutterです。
戻り値 : |
CutSubProcessGroupオブジェクト。 |
1.0.4から
void cut_sub_process_group_add (CutSubProcessGroup *group,CutSubProcess *sub_process);
sub_processをgroupに追加します。
|
CutSubProcessGroupオブジェクト。 |
|
CutSubProcessオブジェクト。 |
1.0.4から
cut_boolean cut_sub_process_group_run (CutSubProcessGroup *group);
group内のすべてのサブcutterプロセスを実行し、その結果を返します。
|
CutSubProcessGroupオブジェクト。 |
戻り値 : |
group内のすべてのサブcutterプロセスが正常終了したらCUT_TRUE、そうでない場合はCUT_FALSE。 |
1.0.4から
void cut_sub_process_group_run_async (CutSubProcessGroup *group);
group内のすべてのサブcutterプロセスを非同期で実行します。実行結果はcut_sub_process_group_wait()で取得できます。
|
CutSubProcessGroupオブジェクト。 |
1.0.4から
cut_boolean cut_sub_process_group_wait (CutSubProcessGroup *group);
group内の非同期で実行されたすべてのサブcutterプロセスの終了を待ち、終了結果を返します。
|
CutSubProcessGroupオブジェクト。 |
戻り値 : |
group内のすべてのサブcutterプロセスが正常終了したらCUT_TRUE、そうでない場合はCUT_FALSE。 |
1.0.4から