Top | ![]() |
![]() |
![]() |
![]() |
もしテスト対象のソフトウェアがマルチプロセスやマルチスレッドでの使用をサポートしているなら、それらの機能をテストする必要があります。そのようなテストために、CutSubProcessとCutSubProcessGroupを使うことができます。
CutSubProcessはテストを別のプロセスで走らせ、その結果をメインプロセスに転送します。このため、別のプロセス上でのテスト結果もメインプロセス上でのテスト結果と同じように見えます。
CutSubProcessGroupはいくつかのCutSubProcessをまとめて実行するための便利オブジェクトです。
CutSubProcess *
cut_take_new_sub_process (const char *test_directory
);
test_directory
以下のテストを実行するサブcutterプロセスを作り、それを返します。返されたサブcutterプロセスの所有者はCutterです。
Since: 1.0.4
cut_boolean
cut_sub_process_run (CutSubProcess *sub_process
);
サブcutterプロセスを実行します。
Since: 1.0.4
void
cut_sub_process_run_async (CutSubProcess *sub_process
);
非同期でサブcutterコマンドを実行します。sub_process
の結果はcut_sub_process_wait()
で取得できます。
Since: 1.0.4
cut_boolean
cut_sub_process_wait (CutSubProcess *sub_process
);
非同期で実行されたサブcutterプロセスの終了を待ち、結果を返します。
Since: 1.0.4
cut_boolean
cut_sub_process_is_success (CutSubProcess *sub_process
);
sub_process
が正常に終了したかどうかを返します。
Since: 1.0.4
cut_boolean
cut_sub_process_is_running (CutSubProcess *sub_process
);
sub_process
が実行中かどうかを返します。
Since: 1.0.4
const char *
cut_sub_process_get_test_directory (CutSubProcess *sub_process
);
実行対象のテストがあるディレクトリを返します。
Since: 1.0.4
void cut_sub_process_set_test_directory (CutSubProcess *sub_process
,const char *test_directory
);
実行対象のテストがあるディレクトリとしてtest_directory
を指定します。これは必須のコマンドライン引数であるTEST_DIRECTORYと同じ意味を持ちます。
Since: 1.0.4
const char *
cut_sub_process_get_source_directory (CutSubProcess *sub_process
);
ソースファイルがあるディレクトリを返します。
Since: 1.0.4
void cut_sub_process_set_source_directory (CutSubProcess *sub_process
,const char *source_directory
);
ソースファイルがあるディレクトリとしてsource_directory
を指定します。これは--source-directoryコマンドラインオプションと同じ意味を持ちます。
Since: 1.0.4
cut_boolean
cut_sub_process_get_multi_thread (CutSubProcess *sub_process
);
sub_process
をマルチスレッドモードで実行するかどうかを返します。
Since: 1.0.4
void cut_sub_process_set_multi_thread (CutSubProcess *sub_process
,cut_boolean multi_thread
);
sub_process
がマルチスレッドモードで実行されるかどうかを指定します。これは--multi-threadコマンドラインオプションと同じ意味を持ちます。
Since: 1.0.4
int
cut_sub_process_get_max_threads (CutSubProcess *sub_process
);
Returns how many threads are used concurrently at a
maximum in sub_process
.
Since: 1.0.5
void cut_sub_process_set_max_threads (CutSubProcess *sub_process
,int max_threads
);
Sets how many threads are used concurrently at a
maximum in sub_process
. -1 means no limit. This is same
as --max-threads command line option.
Since: 1.0.5
const char **
cut_sub_process_get_exclude_files (CutSubProcess *sub_process
);
テスト対象ファイルから除外されるファイル名を返します。
Since: 1.0.4
void cut_sub_process_set_exclude_files (CutSubProcess *sub_process
,const char **files
);
テスト対象から除外されるファイル名を指定します。これは--exclude-fileコマンドラインオプションと同じ意味を持ちます。
Since: 1.0.4
const char **
cut_sub_process_get_exclude_directories
(CutSubProcess *sub_process
);
テスト対象ディレクトリから除外されるディレクトリ名を返します。
Since: 1.0.4
void cut_sub_process_set_exclude_directories (CutSubProcess *sub_process
,const char **directories
);
テスト対象ディレクトリから除外されるディレクトリ名を指定します。これは--exclude-directoryコマンドラインオプションと同じ意味を持ちます。
Since: 1.0.4
const char **
cut_sub_process_get_target_test_case_names
(CutSubProcess *sub_process
);
実行されるテストケース名を返します。
Since: 1.0.4
void cut_sub_process_set_target_test_case_names (CutSubProcess *sub_process
,const char **names
);
実行されるテストケース名を指定します。これは--test-caseコマンドラインオプションと同じ意味を持ちます。
Since: 1.0.4
const char **
cut_sub_process_get_target_test_names (CutSubProcess *sub_process
);
実行されるテスト名を返します。
Since: 1.0.4
void cut_sub_process_set_target_test_names (CutSubProcess *sub_process
,const char **names
);
実行されるテスト名を指定します。これは--testコマンドラインオプションと同じ意味を持ちます。
Since: 1.0.4
double
cut_sub_process_get_elapsed (CutSubProcess *sub_process
);
sub_process
を実行していた間の時間を取得します。
Since: 1.0.4
double
cut_sub_process_get_total_elapsed (CutSubProcess *sub_process
);
各テストで使われた時間の合計を返します。
Since: 1.0.4
cut_boolean
cut_sub_process_is_crashed (CutSubProcess *sub_process
);
sub_process
が異常終了したかどうかを返します。
Since: 1.0.4
cut_boolean
cut_sub_process_get_fatal_failures (CutSubProcess *sub_process
);
sub_process
が「失敗は致命的」モードで動くかどうかを返します。「失敗は致命的」モードの詳細はcut_sub_process_set_fatal_failures()
を見てください。
Since: 1.0.4
void cut_sub_process_set_fatal_failures (CutSubProcess *sub_process
,cut_boolean fatal_failures
);
sub_process
が「失敗は致命的」モードで実行されるかどうかを設定します。このモードではすべての失敗は致命的な問題として扱われます。つまり、失敗時にテストが異常終了します。いくつかの環境ではブレークポイントが設定されます。
--fatal-failuresコマンドラインオプションと同じ意味を持ちます。
Since: 1.0.4
CutSubProcessGroup *
cut_take_new_sub_process_group (void
);
サブcuterプロセスのグループを作ります。作られたグループの所有者はCutterです。
Since: 1.0.4
void cut_sub_process_group_add (CutSubProcessGroup *group
,CutSubProcess *sub_process
);
Adds sub_process
to group
.
Since: 1.0.4
cut_boolean
cut_sub_process_group_run (CutSubProcessGroup *group
);
group
内のすべてのサブcutterプロセスを実行し、その結果を返します。
Since: 1.0.4
void
cut_sub_process_group_run_async (CutSubProcessGroup *group
);
group
内のすべてのサブcutterプロセスを非同期で実行します。実行結果はcut_sub_process_group_wait()
で取得できます。
Since: 1.0.4
cut_boolean
cut_sub_process_group_wait (CutSubProcessGroup *group
);
group
内の非同期で実行されたすべてのサブcutterプロセスの終了を待ち、終了結果を返します。
Since: 1.0.4
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)); |
Since: 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)); |
Since: 1.0.4