<areahref="classcrashpad_1_1test_1_1Multiprocess.html"title="Manages a multiprocess test. "alt="crashpad::test::Multiprocess"shape="rect"coords="0,0,196,24"/>
<trclass="memdesc:ab9452634e0a74a66a319385e6d8ffc4a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets the command to <code>exec()</code> in the child. <ahref="#ab9452634e0a74a66a319385e6d8ffc4a">More...</a><br/></td></tr>
<trclass="inherit_header pub_methods_classcrashpad_1_1test_1_1Multiprocess"><tdcolspan="2"onclick="javascript:toggleInherit('pub_methods_classcrashpad_1_1test_1_1Multiprocess')"><imgsrc="closed.png"alt="-"/> Public Member Functions inherited from <aclass="el"href="classcrashpad_1_1test_1_1Multiprocess.html">crashpad::test::Multiprocess</a></td></tr>
<trclass="memdesc:a619dd6b1fd2a909df6f3d6b2e1c75ad2 inherit pub_methods_classcrashpad_1_1test_1_1Multiprocess"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets the expected termination reason and code. <ahref="classcrashpad_1_1test_1_1Multiprocess.html#a619dd6b1fd2a909df6f3d6b2e1c75ad2">More...</a><br/></td></tr>
<trclass="memdesc:a4fbe35bfe7dd75624b417c435ae2208b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Establishes the proper testing environment prior to forking. <ahref="#a4fbe35bfe7dd75624b417c435ae2208b">More...</a><br/></td></tr>
<trclass="inherit_header pro_methods_classcrashpad_1_1test_1_1Multiprocess"><tdcolspan="2"onclick="javascript:toggleInherit('pro_methods_classcrashpad_1_1test_1_1Multiprocess')"><imgsrc="closed.png"alt="-"/> Protected Member Functions inherited from <aclass="el"href="classcrashpad_1_1test_1_1Multiprocess.html">crashpad::test::Multiprocess</a></td></tr>
<trclass="memitem:adedaaa5fbbb57de1ae5af8ef7c84b4bf inherit pub_types_classcrashpad_1_1test_1_1Multiprocess"><tdclass="memItemLeft"align="right"valign="top">enum  </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classcrashpad_1_1test_1_1Multiprocess.html#adedaaa5fbbb57de1ae5af8ef7c84b4bf">TerminationReason</a> : bool <trclass="memdesc:adedaaa5fbbb57de1ae5af8ef7c84b4bf"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The termination type for a child process. <ahref="classcrashpad_1_1test_1_1Multiprocess.html#adedaaa5fbbb57de1ae5af8ef7c84b4bf">More...</a><br/></td></tr>
<divclass="textblock"><p>Manages an <code>exec()</code>-based multiprocess test. </p>
<p>These tests are based on <code>fork()</code> and <code>exec()</code>. The parent process is able to communicate with the child in the same manner as a base-class <aclass="el"href="classcrashpad_1_1test_1_1Multiprocess.html"title="Manages a multiprocess test. ">Multiprocess</a> parent. The read and write pipes appear in the child process on stdin and stdout, respectively.</p>
<p>Subclasses are expected to implement the parent in the same was as a base-class <aclass="el"href="classcrashpad_1_1test_1_1Multiprocess.html"title="Manages a multiprocess test. ">Multiprocess</a> parent. The child must be implemented in an executable to be set by <aclass="el"href="classcrashpad_1_1test_1_1MultiprocessExec.html#ab9452634e0a74a66a319385e6d8ffc4a"title="Sets the command to exec() in the child. ">SetChildCommand()</a>. </p>
</div><h2class="groupheader">Member Function Documentation</h2>
<p>Establishes the proper testing environment prior to forking. </p>
<p>Subclasses that solely implement a test should not need to override this method. Subclasses that do not implement tests but instead implement additional testing features on top of this class may override this method provided that they call the superclass’ implementation first as follows:</p>
<divclass="fragment"><divclass="line"><spanclass="keywordtype">void</span><aclass="code"href="classcrashpad_1_1test_1_1MultiprocessExec.html#a4fbe35bfe7dd75624b417c435ae2208b">PreFork</a>()<spanclass="keyword"> override </span>{</div><divclass="line"> ASSERT_NO_FATAL_FAILURE(<aclass="code"href="classcrashpad_1_1test_1_1Multiprocess.html#a122d18401346cf600a4f6ab63d83c8ca">Multiprocess::PreFork</a>());</div><divclass="line"></div><divclass="line"><spanclass="comment">// Place subclass-specific pre-fork code here.</span></div><divclass="line">}</div></div><!-- fragment --><p>Subclass implementations may signal failure by raising their own fatal gtest assertions. </p>
<p>Reimplemented from <aclass="el"href="classcrashpad_1_1test_1_1Multiprocess.html#a122d18401346cf600a4f6ab63d83c8ca">crashpad::test::Multiprocess</a>.</p>
<p>Sets the command to <code>exec()</code> in the child. </p>
<p>This method must be called before the test can be <aclass="el"href="classcrashpad_1_1test_1_1Multiprocess.html#a801aa7a78b2254c31c3ef7e0b24208e3"title="Runs the test. ">Run()</a>.</p>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">arguments</td><td>The command-line arguments to pass to the child process in its <code>argv[]</code> vector. This vector must begin at <code>argv[1]</code>, as <em>command</em> is implicitly used as <code>argv[0]</code>. This argument may be <code>nullptr</code> if no command-line arguments are to be passed. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>test/multiprocess_exec.h</li>
<li>test/multiprocess_exec_posix.cc</li>
<li>test/multiprocess_exec_win.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hrclass="footer"/><addressclass="footer"><small>
Generated by  <ahref="http://www.doxygen.org/index.html">