<?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">Multi Process</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>
  CUTTER Library
</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Multi Process</refname>
<refpurpose>Utilities to run your tests on multi
processes.</refpurpose>
</refnamediv>

<refsect1 id="cutter-Multi-Process.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_return" colwidth="150px"/>
<colspec colname="functions_name"/>
<tbody>
<row><entry role="function_type"><link linkend="CutSubProcess"><returnvalue>CutSubProcess</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="cut-take-new-sub-process">cut_take_new_sub_process</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-run">cut_sub_process_run</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-run-async">cut_sub_process_run_async</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-wait">cut_sub_process_wait</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-is-success">cut_sub_process_is_success</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-is-running">cut_sub_process_is_running</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="cut-sub-process-get-test-directory">cut_sub_process_get_test_directory</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-test-directory">cut_sub_process_set_test_directory</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="cut-sub-process-get-source-directory">cut_sub_process_get_source_directory</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-source-directory">cut_sub_process_set_source_directory</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-get-multi-thread">cut_sub_process_get_multi_thread</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-multi-thread">cut_sub_process_set_multi_thread</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="int"><returnvalue>int</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-get-max-threads">cut_sub_process_get_max_threads</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-max-threads">cut_sub_process_set_max_threads</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;**
</entry><entry role="function_name"><link linkend="cut-sub-process-get-exclude-files">cut_sub_process_get_exclude_files</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-exclude-files">cut_sub_process_set_exclude_files</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;**
</entry><entry role="function_name"><link linkend="cut-sub-process-get-exclude-directories">cut_sub_process_get_exclude_directories</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-exclude-directories">cut_sub_process_set_exclude_directories</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;**
</entry><entry role="function_name"><link linkend="cut-sub-process-get-target-test-case-names">cut_sub_process_get_target_test_case_names</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-target-test-case-names">cut_sub_process_set_target_test_case_names</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;**
</entry><entry role="function_name"><link linkend="cut-sub-process-get-target-test-names">cut_sub_process_get_target_test_names</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-target-test-names">cut_sub_process_set_target_test_names</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="double"><returnvalue>double</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-get-elapsed">cut_sub_process_get_elapsed</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="double"><returnvalue>double</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-get-total-elapsed">cut_sub_process_get_total_elapsed</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-is-crashed">cut_sub_process_is_crashed</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-get-fatal-failures">cut_sub_process_get_fatal_failures</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-set-fatal-failures">cut_sub_process_set_fatal_failures</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="CutSubProcessGroup"><returnvalue>CutSubProcessGroup</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="cut-take-new-sub-process-group">cut_take_new_sub_process_group</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-group-add">cut_sub_process_group_add</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-group-run">cut_sub_process_group_run</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-group-run-async">cut_sub_process_group_run_async</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cut-boolean"><returnvalue>cut_boolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="cut-sub-process-group-wait">cut_sub_process_group_wait</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="cutter-Multi-Process.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="name" colwidth="150px"/>
<colspec colname="description"/>
<tbody>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="CutSubProcessGroup">CutSubProcessGroup</link></entry></row>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="CutSubProcess">CutSubProcess</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="cutter-Multi-Process.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>
</screen>
</refsect1>


<refsect1 id="cutter-Multi-Process.description" role="desc">
<title role="desc.title">Description</title>
<para>If your test target supports multi-process and/or
multi-thread, you need to test them. You can use
<link linkend="CutSubProcess"><type>CutSubProcess</type></link> and <link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> to do it.</para>
<para><link linkend="CutSubProcess"><type>CutSubProcess</type></link> runs your test on another process and
forwards results of it to a test on your main
process. You will get results of test on another process
as results of test on your main process.</para>
<para><link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link> is a convenience object to run some
<link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para>

</refsect1>
<refsect1 id="cutter-Multi-Process.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="cut-take-new-sub-process" role="function" condition="since:1.0.4">
<title>cut_take_new_sub_process&#160;()</title>
<indexterm zone="cut-take-new-sub-process" role="1.0.4"><primary>cut_take_new_sub_process</primary></indexterm>
<programlisting language="C"><link linkend="CutSubProcess"><returnvalue>CutSubProcess</returnvalue></link>&#160;*
cut_take_new_sub_process (<parameter>const <link linkend="char"><type>char</type></link> *test_directory</parameter>);</programlisting>
<para>Creates sub cutter process that runs tests under
<parameter>test_directory</parameter>
 and returns it. A created sub process
is owned by Cutter.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>test_directory</para></entry>
<entry role="parameter_description"><para>a directory includes sub process test.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para>
<para></para>
</refsect3><para role="since">Since 1.0.4</para></refsect2>
<refsect2 id="cut-sub-process-run" role="function" condition="since:1.0.4">
<title>cut_sub_process_run&#160;()</title>
<indexterm zone="cut-sub-process-run" role="1.0.4"><primary>cut_sub_process_run</primary></indexterm>
<programlisting language="C"><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>Runs sub cutter process.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if <parameter>sub_process</parameter>
is completed
successfully, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link> otherwise.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-run-async" role="1.0.4"><primary>cut_sub_process_run_async</primary></indexterm>
<programlisting language="C"><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>Runs sub cutter process asynchronously. The result of
<parameter>sub_process</parameter>
 can be gotten by <link linkend="cut-sub-process-wait"><function>cut_sub_process_wait()</function></link>.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since 1.0.4</para></refsect2>
<refsect2 id="cut-sub-process-wait" role="function" condition="since:1.0.4">
<title>cut_sub_process_wait&#160;()</title>
<indexterm zone="cut-sub-process-wait" role="1.0.4"><primary>cut_sub_process_wait</primary></indexterm>
<programlisting language="C"><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>Waits for sub cutter process that is ran asynchronously
to complete and returns the result.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if <parameter>sub_process</parameter>
is completed
successfully, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link> otherwise.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-is-success" role="1.0.4"><primary>cut_sub_process_is_success</primary></indexterm>
<programlisting language="C"><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>Returns whether <parameter>sub_process</parameter>
 is completed successfully or
not.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if <parameter>sub_process</parameter>
is completed
successfully, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link> otherwise.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-is-running" role="1.0.4"><primary>cut_sub_process_is_running</primary></indexterm>
<programlisting language="C"><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>Returns whether <parameter>sub_process</parameter>
 is running or not.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if <parameter>sub_process</parameter>
is running, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>
otherwise.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-test-directory" role="1.0.4"><primary>cut_sub_process_get_test_directory</primary></indexterm>
<programlisting language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
cut_sub_process_get_test_directory (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>Returns a test directory that has tests to be ran.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> a test directory.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-set-test-directory" role="1.0.4"><primary>cut_sub_process_set_test_directory</primary></indexterm>
<programlisting language="C"><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>Sets <parameter>test_directory</parameter>
 as a test directory that has tests
to be ran. This is same as TEST_DIRECTORY required
command line argument.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>test_directory</para></entry>
<entry role="parameter_description"><para>a test directory.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-source-directory" role="1.0.4"><primary>cut_sub_process_get_source_directory</primary></indexterm>
<programlisting language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
cut_sub_process_get_source_directory (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>Returns a source directory that has source files.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> a source directory.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-set-source-directory" role="1.0.4"><primary>cut_sub_process_set_source_directory</primary></indexterm>
<programlisting language="C"><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>Sets <parameter>source_directory</parameter>
 as a source directory that has
source files. This is same as --source-directory command
line option.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>source_directory</para></entry>
<entry role="parameter_description"><para>a source directory.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-multi-thread" role="1.0.4"><primary>cut_sub_process_get_multi_thread</primary></indexterm>
<programlisting language="C"><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>Returns whether <parameter>sub_process</parameter>
 is ran in multi-thread mode.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if <parameter>sub_process</parameter>
is ran in multi-thread
mode, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link> otherwise.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-set-multi-thread" role="1.0.4"><primary>cut_sub_process_set_multi_thread</primary></indexterm>
<programlisting language="C"><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>Sets whether <parameter>sub_process</parameter>
 is ran in multi-thread mode or
not. This is same as --multi-thread command line option.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>multi_thread</para></entry>
<entry role="parameter_description"><para><link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> to be ran in multi-thread mode.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-max-threads" role="1.0.5"><primary>cut_sub_process_get_max_threads</primary></indexterm>
<programlisting language="C"><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>Returns how many threads are used concurrently at a
maximum in <parameter>sub_process</parameter>
.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> max number of threads used concurrently at a
maximum in <parameter>sub_process</parameter>
.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-set-max-threads" role="1.0.5"><primary>cut_sub_process_set_max_threads</primary></indexterm>
<programlisting language="C"><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>Sets how many threads are used concurrently at a
maximum in <parameter>sub_process</parameter>
. -1 means no limit. This is same
as --max-threads command line option.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>max_threads</para></entry>
<entry role="parameter_description"><para>max number of threads used concurrently at
a maximum.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-exclude-files" role="1.0.4"><primary>cut_sub_process_get_exclude_files</primary></indexterm>
<programlisting language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;**
cut_sub_process_get_exclude_files (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>Returns file names that are excluded from target test
files.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> file names that are excluded from target test files.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-set-exclude-files" role="1.0.4"><primary>cut_sub_process_set_exclude_files</primary></indexterm>
<programlisting language="C"><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>Sets file names that are excluded from target test files.
This is same as --exclude-file command line option.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>files</para></entry>
<entry role="parameter_description"><para>file names that are excluded from target test
files.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-exclude-directories" role="1.0.4"><primary>cut_sub_process_get_exclude_directories</primary></indexterm>
<programlisting language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;**
cut_sub_process_get_exclude_directories
                               (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>Returns directory names that are excluded from target
test directories.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> directory names that are excluded from target
test directories.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-set-exclude-directories" role="1.0.4"><primary>cut_sub_process_set_exclude_directories</primary></indexterm>
<programlisting language="C"><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>Sets directory names that are excluded from target test
directories. This is same as --exclude-directory command line
option.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>directories</para></entry>
<entry role="parameter_description"><para>directory names that are excluded from
target test directories.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</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 language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;**
cut_sub_process_get_target_test_case_names
                               (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>Returns test case names that are ran.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> test case names that are ran.</para>
<para></para>
</refsect3><para role="since">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&#160;()</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 language="C"><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>Sets test case names that are ran. This is same as
--test-case command line option.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>names</para></entry>
<entry role="parameter_description"><para>test case names that are ran.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</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 language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;**
cut_sub_process_get_target_test_names (<parameter><link linkend="CutSubProcess"><type>CutSubProcess</type></link> *sub_process</parameter>);</programlisting>
<para>Returns test names that are ran.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> test names that are ran.</para>
<para></para>
</refsect3><para role="since">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&#160;()</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 language="C"><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>Sets test names that are ran. This is same as --test
command line option.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>names</para></entry>
<entry role="parameter_description"><para>test names that are ran.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-elapsed" role="1.0.4"><primary>cut_sub_process_get_elapsed</primary></indexterm>
<programlisting language="C"><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>Gets the time while <parameter>sub_process</parameter>
 was running.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> the time while <parameter>sub_process</parameter>
was running.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-total-elapsed" role="1.0.4"><primary>cut_sub_process_get_total_elapsed</primary></indexterm>
<programlisting language="C"><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>Gets the sum of times that are used by each test.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> the sum of times that are used by each test.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-is-crashed" role="1.0.4"><primary>cut_sub_process_is_crashed</primary></indexterm>
<programlisting language="C"><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>Returns whether <parameter>sub_process</parameter>
 was crashed or not.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if <parameter>sub_process</parameter>
was crashed, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link>
otherwise.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-get-fatal-failures" role="1.0.4"><primary>cut_sub_process_get_fatal_failures</primary></indexterm>
<programlisting language="C"><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>Returns whether <parameter>sub_process</parameter>
 is ran in fatal-failures
mode. See <link linkend="cut-sub-process-set-fatal-failures"><function>cut_sub_process_set_fatal_failures()</function></link> more
details of fatal-failures mode.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if <parameter>sub_process</parameter>
is ran in fatal-failures
mode, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link> otherwise.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-set-fatal-failures" role="1.0.4"><primary>cut_sub_process_set_fatal_failures</primary></indexterm>
<programlisting language="C"><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>Sets whether <parameter>sub_process</parameter>
 is ran in fatal-failures mode or
not. In this mode, all failures are treated as fatal
problems. It means that test is aborted on failure. On
some environments, breakpoint is set.</para>
<para>This is same as --fatal-failures command line option.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>fatal_failures</para></entry>
<entry role="parameter_description"><para><link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> to be ran in fatal-failures mode.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-take-new-sub-process-group" role="1.0.4"><primary>cut_take_new_sub_process_group</primary></indexterm>
<programlisting language="C"><link linkend="CutSubProcessGroup"><returnvalue>CutSubProcessGroup</returnvalue></link>&#160;*
cut_take_new_sub_process_group (<parameter><type>void</type></parameter>);</programlisting>
<para>Creates a group of sub cutter process. A created group
is owned by Cutter.</para>
<refsect3 role="returns">
<title>Returns</title>
<para> a <link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-group-add" role="1.0.4"><primary>cut_sub_process_group_add</primary></indexterm>
<programlisting language="C"><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>Adds <parameter>sub_process</parameter>
 to <parameter>group</parameter>
.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>group</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>sub_process</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcess"><type>CutSubProcess</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-group-run" role="1.0.4"><primary>cut_sub_process_group_run</primary></indexterm>
<programlisting language="C"><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>Runs all sub cutter processes of <parameter>group</parameter>
 and returns the
result of them.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>group</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if all sub cutter processes of <parameter>group</parameter>
are completed successfully, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link> otherwise.</para>
<para></para>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-group-run-async" role="1.0.4"><primary>cut_sub_process_group_run_async</primary></indexterm>
<programlisting language="C"><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>Runs all sub cutter processes of <parameter>group</parameter>

asynchronously. The result of them can be gotten by
<link linkend="cut-sub-process-group-wait"><function>cut_sub_process_group_wait()</function></link>.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>group</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">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&#160;()</title>
<indexterm zone="cut-sub-process-group-wait" role="1.0.4"><primary>cut_sub_process_group_wait</primary></indexterm>
<programlisting language="C"><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>Waits for all sub cutter processes of <parameter>group</parameter>
 that are ran
asynchronously to complete and returns the result.</para>
<refsect3 role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>group</para></entry>
<entry role="parameter_description"><para>a <link linkend="CutSubProcessGroup"><type>CutSubProcessGroup</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 role="returns">
<title>Returns</title>
<para> <link linkend="CUT-TRUE:CAPS"><literal>CUT_TRUE</literal></link> if all sub cutter processes of <parameter>group</parameter>
are completed successfully, <link linkend="CUT-FALSE:CAPS"><literal>CUT_FALSE</literal></link> otherwise.</para>
<para></para>
</refsect3><para role="since">Since 1.0.4</para></refsect2>

</refsect1>
<refsect1 id="cutter-Multi-Process.other_details" role="details">
<title role="details.title">Types and Values</title>
<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 language="C">typedef struct _CutSubProcessGroup CutSubProcessGroup;</programlisting>
<para>An object to run sub cutter processes. This is just for
convenience.</para>
<para>e.g.:</para>
<informalexample><programlisting><![CDATA[
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>
<para role="since">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 language="C">typedef struct _CutSubProcess CutSubProcess;</programlisting>
<para>An object to represent sub cutter process. It contains
sub cutter process's parameters and results of sub cutter
process.</para>
<para>e.g.:</para>
<informalexample><programlisting><![CDATA[
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>
<para role="since">Since 1.0.4</para></refsect2>

</refsect1>

</refentry>
