<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: test/multiprocess_exec.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crashpad
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">multiprocess_exec.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &quot;base/files/file_path.h&quot;</code><br />
<code>#include &quot;base/macros.h&quot;</code><br />
<code>#include &quot;build/build_config.h&quot;</code><br />
<code>#include &quot;test/multiprocess.h&quot;</code><br />
<code>#include &quot;test/process_type.h&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1internal_1_1AppendMultiprocessTest.html">crashpad::test::internal::AppendMultiprocessTest</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper class used by <a class="el" href="multiprocess__exec_8h.html#a62b5891d00df060b50ee76f74b1156b3" title="Registers a function that can be invoked as a child process by MultiprocessExec. ">CRASHPAD_CHILD_TEST_MAIN()</a> to insert a child function into the global mapping.  <a href="classcrashpad_1_1test_1_1internal_1_1AppendMultiprocessTest.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1MultiprocessExec.html">crashpad::test::MultiprocessExec</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manages an <code>exec()</code>-based multiprocess test.  <a href="classcrashpad_1_1test_1_1MultiprocessExec.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacecrashpad"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html">crashpad</a></td></tr>
<tr class="memdesc:namespacecrashpad"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main namespace. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacecrashpad_1_1test"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1test.html">crashpad::test</a></td></tr>
<tr class="memdesc:namespacecrashpad_1_1test"><td class="mdescLeft">&#160;</td><td class="mdescRight">The testing namespace, for use in test code only. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a62b5891d00df060b50ee76f74b1156b3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="multiprocess__exec_8h.html#a62b5891d00df060b50ee76f74b1156b3">CRASHPAD_CHILD_TEST_MAIN</a>(test_main)</td></tr>
<tr class="memdesc:a62b5891d00df060b50ee76f74b1156b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a function that can be invoked as a child process by MultiprocessExec.  <a href="#a62b5891d00df060b50ee76f74b1156b3">More...</a><br /></td></tr>
<tr class="separator:a62b5891d00df060b50ee76f74b1156b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a267cf8ce376c3cfa6203e6986aa331af"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><b>crashpad::test::internal::CheckedInvokeMultiprocessChild</b> (const std::string &amp;test_name)</td></tr>
<tr class="memdesc:a267cf8ce376c3cfa6203e6986aa331af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to run a child test function by name, registered by <a class="el" href="multiprocess__exec_8h.html#a62b5891d00df060b50ee76f74b1156b3" title="Registers a function that can be invoked as a child process by MultiprocessExec. ">CRASHPAD_CHILD_TEST_MAIN()</a>.  <a href="multiprocess__exec_8cc.html#a267cf8ce376c3cfa6203e6986aa331af">More...</a><br /></td></tr>
<tr class="separator:a267cf8ce376c3cfa6203e6986aa331af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:aec28b7ccaf21ebed92786858066c358f"><td class="memItemLeft" align="right" valign="top"><a id="aec28b7ccaf21ebed92786858066c358f"></a>
constexpr char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="multiprocess__exec_8h.html#aec28b7ccaf21ebed92786858066c358f">crashpad::test::internal::kChildTestFunction</a> [] = &quot;--child-test-function=&quot;</td></tr>
<tr class="memdesc:aec28b7ccaf21ebed92786858066c358f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command line argument used to indicate that a child test function should be run. <br /></td></tr>
<tr class="separator:aec28b7ccaf21ebed92786858066c358f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a62b5891d00df060b50ee76f74b1156b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62b5891d00df060b50ee76f74b1156b3">&#9670;&nbsp;</a></span>CRASHPAD_CHILD_TEST_MAIN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CRASHPAD_CHILD_TEST_MAIN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">test_main</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">int</span> test_main();                                                \</div><div class="line">  namespace {                                                     \</div><div class="line">  ::crashpad::test::internal::AppendMultiprocessTest              \</div><div class="line">      AddMultiprocessTest##_##test_main(#test_main, (test_main)); \</div><div class="line">  } <span class="comment">/* namespace */</span>                                               \</div><div class="line">  int test_main()</div></div><!-- fragment -->
<p>Registers a function that can be invoked as a child process by MultiprocessExec. </p>
<p>Used as:</p>
<div class="fragment"><div class="line"><a class="code" href="multiprocess__exec_8h.html#a62b5891d00df060b50ee76f74b1156b3">CRASHPAD_CHILD_TEST_MAIN</a>(MyChildTestBody) {</div><div class="line">   ... child body ...</div><div class="line">}</div></div><!-- fragment --><p>In the main (parent) test body, this function can be run in a child process via MultiprocessExec::SetChildTestMainFunction(). </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="file_a267cf8ce376c3cfa6203e6986aa331af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_a267cf8ce376c3cfa6203e6986aa331af">&#9670;&nbsp;</a></span>CheckedInvokeMultiprocessChild()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crashpad::test::internal::CheckedInvokeMultiprocessChild </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>test_name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used to run a child test function by name, registered by <a class="el" href="multiprocess__exec_8h.html#a62b5891d00df060b50ee76f74b1156b3" title="Registers a function that can be invoked as a child process by MultiprocessExec. ">CRASHPAD_CHILD_TEST_MAIN()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>The exit code of the child process after running the function named by <em>test_name</em>. Aborts with a CHECK() if <em>test_name</em> wasn't registered. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
