<!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/gtest_disabled.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>  </div>
  <div class="headertitle">
<div class="title">gtest_disabled.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/macros.h&quot;</code><br />
<code>#include &quot;gtest/gtest.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_1DisabledTestGtestEnvironment.html">crashpad::test::DisabledTestGtestEnvironment</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides support for dynamically disabled gtest tests.  <a href="classcrashpad_1_1test_1_1DisabledTestGtestEnvironment.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:a0f5509ed17584c8eded42d3b5126b524"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gtest__disabled_8h.html#a0f5509ed17584c8eded42d3b5126b524">DISABLED_TEST</a>()</td></tr>
<tr class="memdesc:a0f5509ed17584c8eded42d3b5126b524"><td class="mdescLeft">&#160;</td><td class="mdescRight">Displays a message about a test being disabled, and returns early.  <a href="#a0f5509ed17584c8eded42d3b5126b524">More...</a><br /></td></tr>
<tr class="separator:a0f5509ed17584c8eded42d3b5126b524"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a0f5509ed17584c8eded42d3b5126b524"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f5509ed17584c8eded42d3b5126b524">&#9670;&nbsp;</a></span>DISABLED_TEST</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DISABLED_TEST</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> {                                                                     <a class="code" href="classcrashpad_1_1test_1_1DisabledTestGtestEnvironment.html#a3237662339dd97372cf7cda76e93006b">\</a></div><div class="line"><a class="code" href="classcrashpad_1_1test_1_1DisabledTestGtestEnvironment.html#a3237662339dd97372cf7cda76e93006b">    ::crashpad::test::DisabledTestGtestEnvironment::Get</a>()-&gt;<a class="code" href="classcrashpad_1_1test_1_1DisabledTestGtestEnvironment.html#a8aaa29daafabda72d94a15984bac3267">DisabledTest</a>(); \</div><div class="line">    return;                                                                \</div><div class="line">  } <span class="keywordflow">while</span> (<span class="keyword">false</span>)</div><div class="ttc" id="classcrashpad_1_1test_1_1DisabledTestGtestEnvironment_html_a8aaa29daafabda72d94a15984bac3267"><div class="ttname"><a href="classcrashpad_1_1test_1_1DisabledTestGtestEnvironment.html#a8aaa29daafabda72d94a15984bac3267">crashpad::test::DisabledTestGtestEnvironment::DisabledTest</a></div><div class="ttdeci">void DisabledTest()</div><div class="ttdoc">Displays a message about a test being disabled, and arranges for this information to be duplicated in...</div><div class="ttdef"><b>Definition:</b> gtest_disabled.cc:40</div></div>
<div class="ttc" id="classcrashpad_1_1test_1_1DisabledTestGtestEnvironment_html_a3237662339dd97372cf7cda76e93006b"><div class="ttname"><a href="classcrashpad_1_1test_1_1DisabledTestGtestEnvironment.html#a3237662339dd97372cf7cda76e93006b">crashpad::test::DisabledTestGtestEnvironment::Get</a></div><div class="ttdeci">static DisabledTestGtestEnvironment * Get()</div><div class="ttdoc">Returns the DisabledTestGtestEnvironment singleton instance, creating it if necessary. </div><div class="ttdef"><b>Definition:</b> gtest_disabled.cc:33</div></div>
</div><!-- fragment -->
<p>Displays a message about a test being disabled, and returns early. </p>
<p>gtest only provides a mechanism for tests to be disabled statically, by prefixing test case names or test names with <code>DISABLED_</code>. When it is necessary to disable tests dynamically, gtest provides no assistance. This macro displays a message about the disabled test and returns early. The dynamically disabled test will also be displayed during gtest global test environment tear-down before the test executable exits.</p>
<p>This macro may only be invoked from the context of a gtest test.</p>
<p>There’s a long-standing <a href="https://groups.google.com/d/topic/googletestframework/Nwh3u7YFuN4">gtest feature request</a> to provide this functionality directly in gtest, but since it hasn’t been implemented, this macro provides a local mechanism to achieve it. </p>

</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>
