blob: 2eeea6d4d0a4826942f7445ce4bbfc13b2bd55ee [file] [log] [blame]
<!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: crashpad::test::WinMultiprocess Class 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="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="namespacecrashpad_1_1test.html">test</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html">WinMultiprocess</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classcrashpad_1_1test_1_1WinMultiprocess-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::test::WinMultiprocess Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Manages a multiprocess test on Windows.
<a href="classcrashpad_1_1test_1_1WinMultiprocess.html#details">More...</a></p>
<p><code>#include &quot;test/win/win_multiprocess.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::test::WinMultiprocess:</div>
<div class="dyncontent">
<div class="center">
<img src="classcrashpad_1_1test_1_1WinMultiprocess.png" usemap="#crashpad::test::WinMultiprocess_map" alt=""/>
<map id="crashpad::test::WinMultiprocess_map" name="crashpad::test::WinMultiprocess_map">
<area href="classcrashpad_1_1test_1_1WinMultiprocessWithTempDir.html" title="Manages a multiprocess test on Windows with a parent-created temporary directory. ..." alt="crashpad::test::WinMultiprocessWithTempDir" shape="rect" coords="0,56,260,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a6bece6599f0ff54cdcc7a99550c4f1a6"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a6bece6599f0ff54cdcc7a99550c4f1a6"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a6bece6599f0ff54cdcc7a99550c4f1a6">Run</a> ()</td></tr>
<tr class="memdesc:a6bece6599f0ff54cdcc7a99550c4f1a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the test. <a href="#a6bece6599f0ff54cdcc7a99550c4f1a6">More...</a><br /></td></tr>
<tr class="separator:a6bece6599f0ff54cdcc7a99550c4f1a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a26a2a41fe6294ebc0d34c92e4f932356"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a26a2a41fe6294ebc0d34c92e4f932356">SetExpectedChildExitCode</a> (unsigned int exit_code)</td></tr>
<tr class="memdesc:a26a2a41fe6294ebc0d34c92e4f932356"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the expected exit code of the child process. <a href="#a26a2a41fe6294ebc0d34c92e4f932356">More...</a><br /></td></tr>
<tr class="separator:a26a2a41fe6294ebc0d34c92e4f932356"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab11e2ba1a50fe8c3be21517d167f9928"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#ab11e2ba1a50fe8c3be21517d167f9928">ReadPipeHandle</a> () const</td></tr>
<tr class="memdesc:ab11e2ba1a50fe8c3be21517d167f9928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the read pipe's file handle. <a href="#ab11e2ba1a50fe8c3be21517d167f9928">More...</a><br /></td></tr>
<tr class="separator:ab11e2ba1a50fe8c3be21517d167f9928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34fd7345b612ccfb7efcfebfb4d8400f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a34fd7345b612ccfb7efcfebfb4d8400f">WritePipeHandle</a> () const</td></tr>
<tr class="memdesc:a34fd7345b612ccfb7efcfebfb4d8400f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the write pipe's file handle. <a href="#a34fd7345b612ccfb7efcfebfb4d8400f">More...</a><br /></td></tr>
<tr class="separator:a34fd7345b612ccfb7efcfebfb4d8400f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af569275d7c83a780319919c06ab7a3ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#af569275d7c83a780319919c06ab7a3ab">CloseReadPipe</a> ()</td></tr>
<tr class="memdesc:af569275d7c83a780319919c06ab7a3ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the read pipe. <a href="#af569275d7c83a780319919c06ab7a3ab">More...</a><br /></td></tr>
<tr class="separator:af569275d7c83a780319919c06ab7a3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab2cac6c2bd29bbb1fbac7de41f82fa5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#aab2cac6c2bd29bbb1fbac7de41f82fa5">CloseWritePipe</a> ()</td></tr>
<tr class="memdesc:aab2cac6c2bd29bbb1fbac7de41f82fa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the write pipe. <a href="#aab2cac6c2bd29bbb1fbac7de41f82fa5">More...</a><br /></td></tr>
<tr class="separator:aab2cac6c2bd29bbb1fbac7de41f82fa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51bbd60b4e28ecca486c97f86601d480"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a51bbd60b4e28ecca486c97f86601d480">ChildProcess</a> () const</td></tr>
<tr class="memdesc:a51bbd60b4e28ecca486c97f86601d480"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a handle to the child process. <a href="#a51bbd60b4e28ecca486c97f86601d480">More...</a><br /></td></tr>
<tr class="separator:a51bbd60b4e28ecca486c97f86601d480"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Manages a multiprocess test on Windows. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a51bbd60b4e28ecca486c97f86601d480"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51bbd60b4e28ecca486c97f86601d480">&#9670;&nbsp;</a></span>ChildProcess()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HANDLE crashpad::test::WinMultiprocess::ChildProcess </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a handle to the child process. </p>
<p>This method may only be called by the parent process. </p>
</div>
</div>
<a id="af569275d7c83a780319919c06ab7a3ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af569275d7c83a780319919c06ab7a3ab">&#9670;&nbsp;</a></span>CloseReadPipe()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void crashpad::test::WinMultiprocess::CloseReadPipe </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Closes the read pipe. </p>
<p>This method may be called by either the parent or the child process. <a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#ab11e2ba1a50fe8c3be21517d167f9928" title="Returns the read pipe&#39;s file handle. ">ReadPipeHandle()</a> must not be called after this. </p>
</div>
</div>
<a id="aab2cac6c2bd29bbb1fbac7de41f82fa5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab2cac6c2bd29bbb1fbac7de41f82fa5">&#9670;&nbsp;</a></span>CloseWritePipe()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void crashpad::test::WinMultiprocess::CloseWritePipe </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Closes the write pipe. </p>
<p>This method may be called by either the parent or the child process. An attempt to read from the read pipe in the partner process will indicate end-of-file. <a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a34fd7345b612ccfb7efcfebfb4d8400f" title="Returns the write pipe&#39;s file handle. ">WritePipeHandle()</a> must not be called after this. </p>
</div>
</div>
<a id="ab11e2ba1a50fe8c3be21517d167f9928"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab11e2ba1a50fe8c3be21517d167f9928">&#9670;&nbsp;</a></span>ReadPipeHandle()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::test::WinMultiprocess::ReadPipeHandle </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the read pipe's file handle. </p>
<p>This method may be called by either the parent or the child process. Anything written to the write pipe in the partner process will appear on this file handle in this process.</p>
<p>It is an error to call this after <a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#af569275d7c83a780319919c06ab7a3ab" title="Closes the read pipe. ">CloseReadPipe()</a> has been called.</p>
<dl class="section return"><dt>Returns</dt><dd>The read pipe's file handle. </dd></dl>
</div>
</div>
<a id="a6bece6599f0ff54cdcc7a99550c4f1a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bece6599f0ff54cdcc7a99550c4f1a6">&#9670;&nbsp;</a></span>Run()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void crashpad::test::WinMultiprocess::Run </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs the test. </p>
<p>This method establishes the testing environment by respawning the process as a child with additional flags.</p>
<p>In the parent process, WinMultiprocessParent() is run, and in the child WinMultiprocessChild(). </p>
</div>
</div>
<a id="a26a2a41fe6294ebc0d34c92e4f932356"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26a2a41fe6294ebc0d34c92e4f932356">&#9670;&nbsp;</a></span>SetExpectedChildExitCode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void crashpad::test::WinMultiprocess::SetExpectedChildExitCode </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>exit_code</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the expected exit code of the child process. </p>
<p>The default expected termination code is <code>EXIT_SUCCESS</code> (<code>0</code>).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">exit_code</td><td>The expected exit status of the child. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a34fd7345b612ccfb7efcfebfb4d8400f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34fd7345b612ccfb7efcfebfb4d8400f">&#9670;&nbsp;</a></span>WritePipeHandle()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::test::WinMultiprocess::WritePipeHandle </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the write pipe's file handle. </p>
<p>This method may be called by either the parent or the child process. Anything written to this file handle in this process will appear on the read pipe in the partner process.</p>
<p>It is an error to call this after <a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#aab2cac6c2bd29bbb1fbac7de41f82fa5" title="Closes the write pipe. ">CloseWritePipe()</a> has been called.</p>
<dl class="section return"><dt>Returns</dt><dd>The write pipe's file handle. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>test/win/win_multiprocess.h</li>
<li>test/win/win_multiprocess.cc</li>
</ul>
</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>