<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="cutter-Multi-Process">
<refmeta>
<refentrytitle role="top_of_page" id="cutter-Multi-Process.top_of_page">マルチプロセス</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>Cutterライブラリ</refmiscinfo>
</refmeta>
<refnamediv>
<refname>マルチプロセス</refname>
<refpurpose>マルチプロセスでテストを走らせるためのユーティリティ。</refpurpose>
</refnamediv>

<refsynopsisdiv id="cutter-Multi-Process.synopsis" role="synopsis">
<title role="synopsis.title">概要</title>

<synopsis><link linkend="CutSubProcess"><returnvalue>CutSubProcess</returnvalue></link> *     <link linkend="cut-take-new-sub-process">cut_take_new_sub_process</link>            (<parameter>const <link linkend="char"><type>char</type></link> *test_directory</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-run">cut_sub_process_run</link>                 (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-run-async">cut_sub_process_run_async</link>           (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-wait">cut_sub_process_wait</link>                (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-is-success">cut_sub_process_is_success</link>          (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-is-running">cut_sub_process_is_running</link>          (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
const <link linkend="char"><returnvalue>char</returnvalue></link> *        <link linkend="cut-sub-process-get-test-directory">cut_sub_process_get_test_directory</link>  (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-test-directory">cut_sub_process_set_test_directory</link>  (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> *test_directory</parameter>);
const <link linkend="char"><returnvalue>char</returnvalue></link> *        <link linkend="cut-sub-process-get-source-directory">cut_sub_process_get_source_directory</link>
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-source-directory">cut_sub_process_set_source_directory</link>
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> *source_directory</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-get-multi-thread">cut_sub_process_get_multi_thread</link>    (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-multi-thread">cut_sub_process_set_multi_thread</link>    (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter><link linkend="cut-boolean"><type>cut_boolean</type></link> multi_thread</parameter>);
<link linkend="int"><returnvalue>int</returnvalue></link>                 <link linkend="cut-sub-process-get-max-threads">cut_sub_process_get_max_threads</link>     (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-max-threads">cut_sub_process_set_max_threads</link>     (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> max_threads</parameter>);
const <link linkend="char"><returnvalue>char</returnvalue></link> **       <link linkend="cut-sub-process-get-exclude-files">cut_sub_process_get_exclude_files</link>   (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-exclude-files">cut_sub_process_set_exclude_files</link>   (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> **files</parameter>);
const <link linkend="char"><returnvalue>char</returnvalue></link> **       <link linkend="cut-sub-process-get-exclude-directories">cut_sub_process_get_exclude_directories</link>
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-exclude-directories">cut_sub_process_set_exclude_directories</link>
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> **directories</parameter>);
const <link linkend="char"><returnvalue>char</returnvalue></link> **       <link linkend="cut-sub-process-get-target-test-case-names">cut_sub_process_get_target_test_case_names</link>
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-target-test-case-names">cut_sub_process_set_target_test_case_names</link>
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> **names</parameter>);
const <link linkend="char"><returnvalue>char</returnvalue></link> **       <link linkend="cut-sub-process-get-target-test-names">cut_sub_process_get_target_test_names</link>
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-target-test-names">cut_sub_process_set_target_test_names</link>
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> **names</parameter>);
<link linkend="double"><returnvalue>double</returnvalue></link>              <link linkend="cut-sub-process-get-elapsed">cut_sub_process_get_elapsed</link>         (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="double"><returnvalue>double</returnvalue></link>              <link linkend="cut-sub-process-get-total-elapsed">cut_sub_process_get_total_elapsed</link>   (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-is-crashed">cut_sub_process_is_crashed</link>          (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-get-fatal-failures">cut_sub_process_get_fatal_failures</link>  (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-set-fatal-failures">cut_sub_process_set_fatal_failures</link>  (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter><link linkend="cut-boolean"><type>cut_boolean</type></link> fatal_failures</parameter>);
<link linkend="CutSubProcessGroup"><returnvalue>CutSubProcessGroup</returnvalue></link> * <link linkend="cut-take-new-sub-process-group">cut_take_new_sub_process_group</link>     (<parameter><type>void</type></parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-group-add">cut_sub_process_group_add</link>           (<parameter><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> *group</parameter>,
                                                         <parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-group-run">cut_sub_process_group_run</link>           (<parameter><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> *group</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="cut-sub-process-group-run-async">cut_sub_process_group_run_async</link>     (<parameter><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> *group</parameter>);
<link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         <link linkend="cut-sub-process-group-wait">cut_sub_process_group_wait</link>          (<parameter><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> *group</parameter>);
                    <link linkend="CutSubProcess">CutSubProcess</link>;
                    <link linkend="CutSubProcessGroup">CutSubProcessGroup</link>;
</synopsis>
</refsynopsisdiv>

<refsect1 id="cutter-Multi-Process.description" role="desc">
<title role="desc.title">説明</title>
<para>もしテスト対象のソフトウェアがマルチプロセスやマルチスレッドでの使用をサポートしているなら、それらの機能をテストする必要があります。そのようなテストために、<link linkend="CutSubProcess"><type>CutSubProcess</type></link>と<link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>を使うことができます。</para>
<para><link linkend="CutSubProcess"><type>CutSubProcess</type></link>はテストを別のプロセスで走らせ、その結果をメインプロセスに転送します。このため、別のプロセス上でのテスト結果もメインプロセス上でのテスト結果と同じように見えます。</para>
<para><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>はいくつかの<link linkend="CutSubProcess"><type>CutSubProcess</type></link>をまとめて実行するための便利オブジェクトです。</para>
</refsect1>
<refsect1 id="cutter-Multi-Process.details" role="details">
<title role="details.title">詳細</title>
<refsect2 id="cut-take-new-sub-process" role="function" condition="since:1.0.4">
<title>cut_take_new_sub_process ()</title>
<indexterm zone="cut-take-new-sub-process" role="1.0.4"><primary>cut_take_new_sub_process</primary></indexterm>
<programlisting><link linkend="CutSubProcess"><returnvalue>CutSubProcess</returnvalue></link> *     cut_take_new_sub_process            (<parameter>const <link linkend="char"><type>char</type></link> *test_directory</parameter>);</programlisting>
<para><parameter>test_directory</parameter>以下のテストを実行するサブcutterプロセスを作り、それを返します。返されたサブcutterプロセスの所有者はCutterです。</para><variablelist role="params">
<varlistentry><term><parameter>test_directory</parameter> :</term>
<listitem><simpara>サブcutterプロセスのテストがあるディレクトリ。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-run" role="function" condition="since:1.0.4">
<title>cut_sub_process_run ()</title>
<indexterm zone="cut-sub-process-run" role="1.0.4"><primary>cut_sub_process_run</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_run                 (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>サブcutterプロセスを実行します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>もし、<parameter>sub_process</parameter>が正常に終了した場合は<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでない場合は<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-run-async" role="function" condition="since:1.0.4">
<title>cut_sub_process_run_async ()</title>
<indexterm zone="cut-sub-process-run-async" role="1.0.4"><primary>cut_sub_process_run_async</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_run_async           (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>非同期でサブcutterコマンドを実行します。<parameter>sub_process</parameter>の結果は<link linkend="cut-sub-process-wait"><function>cut_sub_process_wait()</function></link>で取得できます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-wait" role="function" condition="since:1.0.4">
<title>cut_sub_process_wait ()</title>
<indexterm zone="cut-sub-process-wait" role="1.0.4"><primary>cut_sub_process_wait</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_wait                (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>非同期で実行されたサブcutterプロセスの終了を待ち、結果を返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>もし、<parameter>sub_process</parameter>が正常に終了した場合は<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでない場合は<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-is-success" role="function" condition="since:1.0.4">
<title>cut_sub_process_is_success ()</title>
<indexterm zone="cut-sub-process-is-success" role="1.0.4"><primary>cut_sub_process_is_success</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_is_success          (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para><parameter>sub_process</parameter>が正常に終了したかどうかを返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>もし、<parameter>sub_process</parameter>が正常に終了した場合は<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでない場合は<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-is-running" role="function" condition="since:1.0.4">
<title>cut_sub_process_is_running ()</title>
<indexterm zone="cut-sub-process-is-running" role="1.0.4"><primary>cut_sub_process_is_running</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_is_running          (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para><parameter>sub_process</parameter>が実行中かどうかを返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><parameter>sub_process</parameter>が実行中の場合は<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでない場合は<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-test-directory" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_test_directory ()</title>
<indexterm zone="cut-sub-process-get-test-directory" role="1.0.4"><primary>cut_sub_process_get_test_directory</primary></indexterm>
<programlisting>const <link linkend="char"><returnvalue>char</returnvalue></link> *        cut_sub_process_get_test_directory  (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>実行対象のテストがあるディレクトリを返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>テストディレクトリ</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-set-test-directory" role="function" condition="since:1.0.4">
<title>cut_sub_process_set_test_directory ()</title>
<indexterm zone="cut-sub-process-set-test-directory" role="1.0.4"><primary>cut_sub_process_set_test_directory</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_test_directory  (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> *test_directory</parameter>);</programlisting>
<para>実行対象のテストがあるディレクトリとして<parameter>test_directory</parameter>を指定します。これは必須のコマンドライン引数であるTEST_DIRECTORYと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>test_directory</parameter> :</term>
<listitem><simpara>テストディレクトリ</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-source-directory" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_source_directory ()</title>
<indexterm zone="cut-sub-process-get-source-directory" role="1.0.4"><primary>cut_sub_process_get_source_directory</primary></indexterm>
<programlisting>const <link linkend="char"><returnvalue>char</returnvalue></link> *        cut_sub_process_get_source_directory
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>ソースファイルがあるディレクトリを返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>ソースディレクトリ。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-set-source-directory" role="function" condition="since:1.0.4">
<title>cut_sub_process_set_source_directory ()</title>
<indexterm zone="cut-sub-process-set-source-directory" role="1.0.4"><primary>cut_sub_process_set_source_directory</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_source_directory
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> *source_directory</parameter>);</programlisting>
<para>ソースファイルがあるディレクトリとして<parameter>source_directory</parameter>を指定します。これは--source-directoryコマンドラインオプションと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>source_directory</parameter> :</term>
<listitem><simpara>ソースディレクトリ。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-multi-thread" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_multi_thread ()</title>
<indexterm zone="cut-sub-process-get-multi-thread" role="1.0.4"><primary>cut_sub_process_get_multi_thread</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_get_multi_thread    (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para><parameter>sub_process</parameter>をマルチスレッドモードで実行するかどうかを返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><parameter>sub_process</parameter>がマルチスレッドモードで実行されるなら<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでなければ<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-set-multi-thread" role="function" condition="since:1.0.4">
<title>cut_sub_process_set_multi_thread ()</title>
<indexterm zone="cut-sub-process-set-multi-thread" role="1.0.4"><primary>cut_sub_process_set_multi_thread</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_multi_thread    (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter><link linkend="cut-boolean"><type>cut_boolean</type></link> multi_thread</parameter>);</programlisting>
<para><parameter>sub_process</parameter>がマルチスレッドモードで実行されるかどうかを指定します。これは--multi-threadコマンドラインオプションと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>multi_thread</parameter> :</term>
<listitem><simpara>マルチスレッドモードで実行するなら<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-max-threads" role="function" condition="since:1.0.5">
<title>cut_sub_process_get_max_threads ()</title>
<indexterm zone="cut-sub-process-get-max-threads" role="1.0.5"><primary>cut_sub_process_get_max_threads</primary></indexterm>
<programlisting><link linkend="int"><returnvalue>int</returnvalue></link>                 cut_sub_process_get_max_threads     (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para><parameter>sub_process</parameter>中で同時に動く最大スレッド数を返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><parameter>sub_process</parameter>中で同時に動く最大スレッド数。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.5から</para></refsect2>
<refsect2 id="cut-sub-process-set-max-threads" role="function" condition="since:1.0.5">
<title>cut_sub_process_set_max_threads ()</title>
<indexterm zone="cut-sub-process-set-max-threads" role="1.0.5"><primary>cut_sub_process_set_max_threads</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_max_threads     (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> max_threads</parameter>);</programlisting>
<para><parameter>sub_process</parameter>中で同時に動く最大スレッド数を設定します。-1は制限がないことを意味します。これは--max-threadsコマンドラインオプションと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>max_threads</parameter> :</term>
<listitem><simpara>同時に動く最大スレッド数。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.5から</para></refsect2>
<refsect2 id="cut-sub-process-get-exclude-files" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_exclude_files ()</title>
<indexterm zone="cut-sub-process-get-exclude-files" role="1.0.4"><primary>cut_sub_process_get_exclude_files</primary></indexterm>
<programlisting>const <link linkend="char"><returnvalue>char</returnvalue></link> **       cut_sub_process_get_exclude_files   (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>テスト対象ファイルから除外されるファイル名を返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>テスト対象ファイルから除外されるファイル名。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-set-exclude-files" role="function" condition="since:1.0.4">
<title>cut_sub_process_set_exclude_files ()</title>
<indexterm zone="cut-sub-process-set-exclude-files" role="1.0.4"><primary>cut_sub_process_set_exclude_files</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_exclude_files   (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> **files</parameter>);</programlisting>
<para>テスト対象から除外されるファイル名を指定します。これは--exclude-fileコマンドラインオプションと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>files</parameter> :</term>
<listitem><simpara>テスト対象ファイルから除外されるファイル名。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-exclude-directories" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_exclude_directories ()</title>
<indexterm zone="cut-sub-process-get-exclude-directories" role="1.0.4"><primary>cut_sub_process_get_exclude_directories</primary></indexterm>
<programlisting>const <link linkend="char"><returnvalue>char</returnvalue></link> **       cut_sub_process_get_exclude_directories
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>テスト対象ディレクトリから除外されるディレクトリ名を返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>テスト対象ディレクトリから除外されるディレクトリ名。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-set-exclude-directories" role="function" condition="since:1.0.4">
<title>cut_sub_process_set_exclude_directories ()</title>
<indexterm zone="cut-sub-process-set-exclude-directories" role="1.0.4"><primary>cut_sub_process_set_exclude_directories</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_exclude_directories
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> **directories</parameter>);</programlisting>
<para>テスト対象ディレクトリから除外されるディレクトリ名を指定します。これは--exclude-directoryコマンドラインオプションと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>directories</parameter> :</term>
<listitem><simpara>テスト対象ディレクトリから除外されるディレクトリ名。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-target-test-case-names" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_target_test_case_names ()</title>
<indexterm zone="cut-sub-process-get-target-test-case-names" role="1.0.4"><primary>cut_sub_process_get_target_test_case_names</primary></indexterm>
<programlisting>const <link linkend="char"><returnvalue>char</returnvalue></link> **       cut_sub_process_get_target_test_case_names
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>実行されるテストケース名を返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>実行されるテストケース名。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-set-target-test-case-names" role="function" condition="since:1.0.4">
<title>cut_sub_process_set_target_test_case_names ()</title>
<indexterm zone="cut-sub-process-set-target-test-case-names" role="1.0.4"><primary>cut_sub_process_set_target_test_case_names</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_target_test_case_names
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> **names</parameter>);</programlisting>
<para>実行されるテストケース名を指定します。これは--test-caseコマンドラインオプションと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>names</parameter> :</term>
<listitem><simpara>実行されるテストケース名。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-target-test-names" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_target_test_names ()</title>
<indexterm zone="cut-sub-process-get-target-test-names" role="1.0.4"><primary>cut_sub_process_get_target_test_names</primary></indexterm>
<programlisting>const <link linkend="char"><returnvalue>char</returnvalue></link> **       cut_sub_process_get_target_test_names
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>実行されるテスト名を返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>実行されるテスト名。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-set-target-test-names" role="function" condition="since:1.0.4">
<title>cut_sub_process_set_target_test_names ()</title>
<indexterm zone="cut-sub-process-set-target-test-names" role="1.0.4"><primary>cut_sub_process_set_target_test_names</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_target_test_names
                                                        (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter>const <link linkend="char"><type>char</type></link> **names</parameter>);</programlisting>
<para>実行されるテスト名を指定します。これは--testコマンドラインオプションと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>names</parameter> :</term>
<listitem><simpara>実行されるテスト名。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-elapsed" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_elapsed ()</title>
<indexterm zone="cut-sub-process-get-elapsed" role="1.0.4"><primary>cut_sub_process_get_elapsed</primary></indexterm>
<programlisting><link linkend="double"><returnvalue>double</returnvalue></link>              cut_sub_process_get_elapsed         (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para><parameter>sub_process</parameter>を実行していた間の時間を取得します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><parameter>sub_process</parameter>を実行していた間の時間。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-total-elapsed" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_total_elapsed ()</title>
<indexterm zone="cut-sub-process-get-total-elapsed" role="1.0.4"><primary>cut_sub_process_get_total_elapsed</primary></indexterm>
<programlisting><link linkend="double"><returnvalue>double</returnvalue></link>              cut_sub_process_get_total_elapsed   (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>各テストで使われた時間の合計を返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara>各テストで使われた時間の合計。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-is-crashed" role="function" condition="since:1.0.4">
<title>cut_sub_process_is_crashed ()</title>
<indexterm zone="cut-sub-process-is-crashed" role="1.0.4"><primary>cut_sub_process_is_crashed</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_is_crashed          (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para><parameter>sub_process</parameter>が異常終了したかどうかを返します。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><parameter>sub_process</parameter>が異常終了したときは<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでない場合は<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-get-fatal-failures" role="function" condition="since:1.0.4">
<title>cut_sub_process_get_fatal_failures ()</title>
<indexterm zone="cut-sub-process-get-fatal-failures" role="1.0.4"><primary>cut_sub_process_get_fatal_failures</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_get_fatal_failures  (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para><parameter>sub_process</parameter>が「失敗は致命的」モードで動くかどうかを返します。「失敗は致命的」モードの詳細は<link linkend="cut-sub-process-set-fatal-failures"><function>cut_sub_process_set_fatal_failures()</function></link>を見てください。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><parameter>sub_process</parameter>が「失敗は致命的」モードで実行されるなら<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでなければ<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-set-fatal-failures" role="function" condition="since:1.0.4">
<title>cut_sub_process_set_fatal_failures ()</title>
<indexterm zone="cut-sub-process-set-fatal-failures" role="1.0.4"><primary>cut_sub_process_set_fatal_failures</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_set_fatal_failures  (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>,
                                                         <parameter><link linkend="cut-boolean"><type>cut_boolean</type></link> fatal_failures</parameter>);</programlisting>
<para><parameter>sub_process</parameter>が「失敗は致命的」モードで実行されるかどうかを設定します。このモードではすべての失敗は致命的な問題として扱われます。つまり、失敗時にテストが異常終了します。いくつかの環境ではブレークポイントが設定されます。</para>
<para>--fatal-failuresコマンドラインオプションと同じ意味を持ちます。</para><variablelist role="params">
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>fatal_failures</parameter> :</term>
<listitem><simpara>「失敗は致命的」モードで実行するなら<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-take-new-sub-process-group" role="function" condition="since:1.0.4">
<title>cut_take_new_sub_process_group ()</title>
<indexterm zone="cut-take-new-sub-process-group" role="1.0.4"><primary>cut_take_new_sub_process_group</primary></indexterm>
<programlisting><link linkend="CutSubProcessGroup"><returnvalue>CutSubProcessGroup</returnvalue></link> * cut_take_new_sub_process_group     (<parameter><type>void</type></parameter>);</programlisting>
<para>サブcuterプロセスのグループを作ります。作られたグループの所有者はCutterです。</para><variablelist role="params">
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>オブジェクト。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-group-add" role="function" condition="since:1.0.4">
<title>cut_sub_process_group_add ()</title>
<indexterm zone="cut-sub-process-group-add" role="1.0.4"><primary>cut_sub_process_group_add</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_group_add           (<parameter><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> *group</parameter>,
                                                         <parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para><parameter>sub_process</parameter>を<parameter>group</parameter>に追加します。</para><variablelist role="params">
<varlistentry><term><parameter>group</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sub_process</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcess"><type>CutSubProcess</type></link>オブジェクト。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-group-run" role="function" condition="since:1.0.4">
<title>cut_sub_process_group_run ()</title>
<indexterm zone="cut-sub-process-group-run" role="1.0.4"><primary>cut_sub_process_group_run</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_group_run           (<parameter><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> *group</parameter>);</programlisting>
<para><parameter>group</parameter>内のすべてのサブcutterプロセスを実行し、その結果を返します。</para><variablelist role="params">
<varlistentry><term><parameter>group</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><parameter>group</parameter>内のすべてのサブcutterプロセスが正常終了したら<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでない場合は<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-group-run-async" role="function" condition="since:1.0.4">
<title>cut_sub_process_group_run_async ()</title>
<indexterm zone="cut-sub-process-group-run-async" role="1.0.4"><primary>cut_sub_process_group_run_async</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                cut_sub_process_group_run_async     (<parameter><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> *group</parameter>);</programlisting>
<para><parameter>group</parameter>内のすべてのサブcutterプロセスを非同期で実行します。実行結果は<link linkend="cut-sub-process-group-wait"><function>cut_sub_process_group_wait()</function></link>で取得できます。</para><variablelist role="params">
<varlistentry><term><parameter>group</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>オブジェクト。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="cut-sub-process-group-wait" role="function" condition="since:1.0.4">
<title>cut_sub_process_group_wait ()</title>
<indexterm zone="cut-sub-process-group-wait" role="1.0.4"><primary>cut_sub_process_group_wait</primary></indexterm>
<programlisting><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>         cut_sub_process_group_wait          (<parameter><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> *group</parameter>);</programlisting>
<para><parameter>group</parameter>内の非同期で実行されたすべてのサブcutterプロセスの終了を待ち、終了結果を返します。</para><variablelist role="params">
<varlistentry><term><parameter>group</parameter> :</term>
<listitem><simpara><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>オブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>戻り値</emphasis> :</term><listitem><simpara><parameter>group</parameter>内のすべてのサブcutterプロセスが正常終了したら<link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link>、そうでない場合は<link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.4から</para></refsect2>
<refsect2 id="CutSubProcess" role="struct" condition="since:1.0.4">
<title>CutSubProcess</title>
<indexterm zone="CutSubProcess" role="1.0.4"><primary>CutSubProcess</primary></indexterm>
<programlisting>typedef struct _CutSubProcess CutSubProcess;</programlisting>
<para>サブcutterプロセスを表現するオブジェクトです。サブcutterプロセスのパラメタとテスト結果を持っています。</para>
<para>例: <informalexample><programlisting>
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));
</programlisting></informalexample></para><para role="since">1.0.4から</para></refsect2>
<refsect2 id="CutSubProcessGroup" role="struct" condition="since:1.0.4">
<title>CutSubProcessGroup</title>
<indexterm zone="CutSubProcessGroup" role="1.0.4"><primary>CutSubProcessGroup</primary></indexterm>
<programlisting>typedef struct _CutSubProcessGroup CutSubProcessGroup;</programlisting>
<para>サブcutterプロセスを実行するオブジェクトです。このオブジェクトは便利にテストを書くために導入されています。</para>
<para>例: <informalexample><programlisting>
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));
</programlisting></informalexample></para><para role="since">1.0.4から</para></refsect2>

</refsect1>

</refentry>
