1*132f818dSEnji Cooper<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2*132f818dSEnji Cooper<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> 3*132f818dSEnji Cooper<head> 4*132f818dSEnji Cooper<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> 5*132f818dSEnji Cooper<meta http-equiv="X-UA-Compatible" content="IE=11"/> 6*132f818dSEnji Cooper<meta name="generator" content="Doxygen 1.9.6"/> 7*132f818dSEnji Cooper<meta name="viewport" content="width=device-width, initial-scale=1"/> 8*132f818dSEnji Cooper<title>Lutok: anonymous_namespace{test_utils.hpp}::stack_balance_checker Class Reference</title> 9*132f818dSEnji Cooper<link href="tabs.css" rel="stylesheet" type="text/css"/> 10*132f818dSEnji Cooper<script type="text/javascript" src="jquery.js"></script> 11*132f818dSEnji Cooper<script type="text/javascript" src="dynsections.js"></script> 12*132f818dSEnji Cooper<link href="search/search.css" rel="stylesheet" type="text/css"/> 13*132f818dSEnji Cooper<script type="text/javascript" src="search/searchdata.js"></script> 14*132f818dSEnji Cooper<script type="text/javascript" src="search/search.js"></script> 15*132f818dSEnji Cooper<link href="doxygen.css" rel="stylesheet" type="text/css" /> 16*132f818dSEnji Cooper</head> 17*132f818dSEnji Cooper<body> 18*132f818dSEnji Cooper<div id="top"><!-- do not remove this div, it is closed by doxygen! --> 19*132f818dSEnji Cooper<div id="titlearea"> 20*132f818dSEnji Cooper<table cellspacing="0" cellpadding="0"> 21*132f818dSEnji Cooper <tbody> 22*132f818dSEnji Cooper <tr id="projectrow"> 23*132f818dSEnji Cooper <td id="projectalign"> 24*132f818dSEnji Cooper <div id="projectname">Lutok<span id="projectnumber"> 0.6.2</span> 25*132f818dSEnji Cooper </div> 26*132f818dSEnji Cooper </td> 27*132f818dSEnji Cooper </tr> 28*132f818dSEnji Cooper </tbody> 29*132f818dSEnji Cooper</table> 30*132f818dSEnji Cooper</div> 31*132f818dSEnji Cooper<!-- end header part --> 32*132f818dSEnji Cooper<!-- Generated by Doxygen 1.9.6 --> 33*132f818dSEnji Cooper<script type="text/javascript"> 34*132f818dSEnji Cooper/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ 35*132f818dSEnji Coopervar searchBox = new SearchBox("searchBox", "search/",'.html'); 36*132f818dSEnji Cooper/* @license-end */ 37*132f818dSEnji Cooper</script> 38*132f818dSEnji Cooper<script type="text/javascript" src="menudata.js"></script> 39*132f818dSEnji Cooper<script type="text/javascript" src="menu.js"></script> 40*132f818dSEnji Cooper<script type="text/javascript"> 41*132f818dSEnji Cooper/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ 42*132f818dSEnji Cooper$(function() { 43*132f818dSEnji Cooper initMenu('',true,false,'search.php','Search'); 44*132f818dSEnji Cooper $(document).ready(function() { init_search(); }); 45*132f818dSEnji Cooper}); 46*132f818dSEnji Cooper/* @license-end */ 47*132f818dSEnji Cooper</script> 48*132f818dSEnji Cooper<div id="main-nav"></div> 49*132f818dSEnji Cooper<!-- window showing the filter options --> 50*132f818dSEnji Cooper<div id="MSearchSelectWindow" 51*132f818dSEnji Cooper onmouseover="return searchBox.OnSearchSelectShow()" 52*132f818dSEnji Cooper onmouseout="return searchBox.OnSearchSelectHide()" 53*132f818dSEnji Cooper onkeydown="return searchBox.OnSearchSelectKey(event)"> 54*132f818dSEnji Cooper</div> 55*132f818dSEnji Cooper 56*132f818dSEnji Cooper<!-- iframe showing the search results (closed by default) --> 57*132f818dSEnji Cooper<div id="MSearchResultsWindow"> 58*132f818dSEnji Cooper<div id="MSearchResults"> 59*132f818dSEnji Cooper<div class="SRPage"> 60*132f818dSEnji Cooper<div id="SRIndex"> 61*132f818dSEnji Cooper<div id="SRResults"></div> 62*132f818dSEnji Cooper<div class="SRStatus" id="Loading">Loading...</div> 63*132f818dSEnji Cooper<div class="SRStatus" id="Searching">Searching...</div> 64*132f818dSEnji Cooper<div class="SRStatus" id="NoMatches">No Matches</div> 65*132f818dSEnji Cooper</div> 66*132f818dSEnji Cooper</div> 67*132f818dSEnji Cooper</div> 68*132f818dSEnji Cooper</div> 69*132f818dSEnji Cooper 70*132f818dSEnji Cooper<div id="nav-path" class="navpath"> 71*132f818dSEnji Cooper <ul> 72*132f818dSEnji Cooper<li class="navelem"><a class="el" href="a00067.html">anonymous_namespace{test_utils.hpp}</a></li><li class="navelem"><a class="el" href="a00923.html">stack_balance_checker</a></li> </ul> 73*132f818dSEnji Cooper</div> 74*132f818dSEnji Cooper</div><!-- top --> 75*132f818dSEnji Cooper<div class="header"> 76*132f818dSEnji Cooper <div class="summary"> 77*132f818dSEnji Cooper<a href="#pub-methods">Public Member Functions</a> | 78*132f818dSEnji Cooper<a href="#pri-attribs">Private Attributes</a> | 79*132f818dSEnji Cooper<a href="a00920.html">List of all members</a> </div> 80*132f818dSEnji Cooper <div class="headertitle"><div class="title">anonymous_namespace{test_utils.hpp}::stack_balance_checker Class Reference</div></div> 81*132f818dSEnji Cooper</div><!--header--> 82*132f818dSEnji Cooper<div class="contents"> 83*132f818dSEnji Cooper 84*132f818dSEnji Cooper<p>Ensures that the Lua stack maintains its original height upon exit. 85*132f818dSEnji Cooper <a href="a00923.html#details">More...</a></p> 86*132f818dSEnji Cooper 87*132f818dSEnji Cooper<p><code>#include <<a class="el" href="a00056_source.html">test_utils.hpp</a>></code></p> 88*132f818dSEnji Cooper<table class="memberdecls"> 89*132f818dSEnji Cooper<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a> 90*132f818dSEnji CooperPublic Member Functions</h2></td></tr> 91*132f818dSEnji Cooper<tr class="memitem:a1801f4117fb8801b914c7a834992fc1f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00923.html#a1801f4117fb8801b914c7a834992fc1f">stack_balance_checker</a> (<a class="el" href="a00919.html">lutok::state</a> &state_, const bool with_sentinel_=true)</td></tr> 92*132f818dSEnji Cooper<tr class="memdesc:a1801f4117fb8801b914c7a834992fc1f"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new stack balance checker. <br /></td></tr> 93*132f818dSEnji Cooper<tr class="separator:a1801f4117fb8801b914c7a834992fc1f"><td class="memSeparator" colspan="2"> </td></tr> 94*132f818dSEnji Cooper<tr class="memitem:a4a77624ad3c7c3968056993d05b8d076"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00923.html#a4a77624ad3c7c3968056993d05b8d076">~stack_balance_checker</a> (void)</td></tr> 95*132f818dSEnji Cooper<tr class="memdesc:a4a77624ad3c7c3968056993d05b8d076"><td class="mdescLeft"> </td><td class="mdescRight">Destructor for the object. <br /></td></tr> 96*132f818dSEnji Cooper<tr class="separator:a4a77624ad3c7c3968056993d05b8d076"><td class="memSeparator" colspan="2"> </td></tr> 97*132f818dSEnji Cooper</table><table class="memberdecls"> 98*132f818dSEnji Cooper<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a> 99*132f818dSEnji CooperPrivate Attributes</h2></td></tr> 100*132f818dSEnji Cooper<tr class="memitem:a5a82e10af0379f4961958389b461ad7b"><td class="memItemLeft" align="right" valign="top"><a id="a5a82e10af0379f4961958389b461ad7b" name="a5a82e10af0379f4961958389b461ad7b"></a> 101*132f818dSEnji Cooper<a class="el" href="a00919.html">lutok::state</a> & </td><td class="memItemRight" valign="bottom"><b>_state</b></td></tr> 102*132f818dSEnji Cooper<tr class="memdesc:a5a82e10af0379f4961958389b461ad7b"><td class="mdescLeft"> </td><td class="mdescRight">The Lua state. <br /></td></tr> 103*132f818dSEnji Cooper<tr class="separator:a5a82e10af0379f4961958389b461ad7b"><td class="memSeparator" colspan="2"> </td></tr> 104*132f818dSEnji Cooper<tr class="memitem:ae83eb0b565eeec675516b790d5526391"><td class="memItemLeft" align="right" valign="top"><a id="ae83eb0b565eeec675516b790d5526391" name="ae83eb0b565eeec675516b790d5526391"></a> 105*132f818dSEnji Cooperbool </td><td class="memItemRight" valign="bottom"><b>_with_sentinel</b></td></tr> 106*132f818dSEnji Cooper<tr class="memdesc:ae83eb0b565eeec675516b790d5526391"><td class="mdescLeft"> </td><td class="mdescRight">Whether to install a sentinel on the stack for balance enforcement. <br /></td></tr> 107*132f818dSEnji Cooper<tr class="separator:ae83eb0b565eeec675516b790d5526391"><td class="memSeparator" colspan="2"> </td></tr> 108*132f818dSEnji Cooper<tr class="memitem:ab9d0aae743f764d0b7a71e9c2202f9d9"><td class="memItemLeft" align="right" valign="top"><a id="ab9d0aae743f764d0b7a71e9c2202f9d9" name="ab9d0aae743f764d0b7a71e9c2202f9d9"></a> 109*132f818dSEnji Cooperunsigned int </td><td class="memItemRight" valign="bottom"><b>_old_count</b></td></tr> 110*132f818dSEnji Cooper<tr class="memdesc:ab9d0aae743f764d0b7a71e9c2202f9d9"><td class="mdescLeft"> </td><td class="mdescRight">The height of the stack on creation. <br /></td></tr> 111*132f818dSEnji Cooper<tr class="separator:ab9d0aae743f764d0b7a71e9c2202f9d9"><td class="memSeparator" colspan="2"> </td></tr> 112*132f818dSEnji Cooper</table> 113*132f818dSEnji Cooper<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 114*132f818dSEnji Cooper<div class="textblock"><p>Ensures that the Lua stack maintains its original height upon exit. </p> 115*132f818dSEnji Cooper<p>Use an instance of this class to check that a piece of code does not have side-effects on the Lua stack.</p> 116*132f818dSEnji Cooper<p>To be used within a test case only. </p> 117*132f818dSEnji Cooper</div><h2 class="groupheader">Constructor & Destructor Documentation</h2> 118*132f818dSEnji Cooper<a id="a1801f4117fb8801b914c7a834992fc1f" name="a1801f4117fb8801b914c7a834992fc1f"></a> 119*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a1801f4117fb8801b914c7a834992fc1f">◆ </a></span>stack_balance_checker()</h2> 120*132f818dSEnji Cooper 121*132f818dSEnji Cooper<div class="memitem"> 122*132f818dSEnji Cooper<div class="memproto"> 123*132f818dSEnji Cooper<table class="mlabels"> 124*132f818dSEnji Cooper <tr> 125*132f818dSEnji Cooper <td class="mlabels-left"> 126*132f818dSEnji Cooper <table class="memname"> 127*132f818dSEnji Cooper <tr> 128*132f818dSEnji Cooper <td class="memname">anonymous_namespace{test_utils.hpp}::stack_balance_checker::stack_balance_checker </td> 129*132f818dSEnji Cooper <td>(</td> 130*132f818dSEnji Cooper <td class="paramtype"><a class="el" href="a00919.html">lutok::state</a> & </td> 131*132f818dSEnji Cooper <td class="paramname"><em>state_</em>, </td> 132*132f818dSEnji Cooper </tr> 133*132f818dSEnji Cooper <tr> 134*132f818dSEnji Cooper <td class="paramkey"></td> 135*132f818dSEnji Cooper <td></td> 136*132f818dSEnji Cooper <td class="paramtype">const bool </td> 137*132f818dSEnji Cooper <td class="paramname"><em>with_sentinel_</em> = <code>true</code> </td> 138*132f818dSEnji Cooper </tr> 139*132f818dSEnji Cooper <tr> 140*132f818dSEnji Cooper <td></td> 141*132f818dSEnji Cooper <td>)</td> 142*132f818dSEnji Cooper <td></td><td></td> 143*132f818dSEnji Cooper </tr> 144*132f818dSEnji Cooper </table> 145*132f818dSEnji Cooper </td> 146*132f818dSEnji Cooper <td class="mlabels-right"> 147*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">inline</span></span> </td> 148*132f818dSEnji Cooper </tr> 149*132f818dSEnji Cooper</table> 150*132f818dSEnji Cooper</div><div class="memdoc"> 151*132f818dSEnji Cooper 152*132f818dSEnji Cooper<p>Constructs a new stack balance checker. </p> 153*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd> 154*132f818dSEnji Cooper <table class="params"> 155*132f818dSEnji Cooper <tr><td class="paramname">state_</td><td>The Lua state to validate. </td></tr> 156*132f818dSEnji Cooper <tr><td class="paramname">with_sentinel_</td><td>If true, insert a sentinel item into the stack and validate upon exit that the item is still there. This is an attempt to ensure that already-existing items are not removed from the stack by the code under test. </td></tr> 157*132f818dSEnji Cooper </table> 158*132f818dSEnji Cooper </dd> 159*132f818dSEnji Cooper</dl> 160*132f818dSEnji Cooper 161*132f818dSEnji Cooper</div> 162*132f818dSEnji Cooper</div> 163*132f818dSEnji Cooper<a id="a4a77624ad3c7c3968056993d05b8d076" name="a4a77624ad3c7c3968056993d05b8d076"></a> 164*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a4a77624ad3c7c3968056993d05b8d076">◆ </a></span>~stack_balance_checker()</h2> 165*132f818dSEnji Cooper 166*132f818dSEnji Cooper<div class="memitem"> 167*132f818dSEnji Cooper<div class="memproto"> 168*132f818dSEnji Cooper<table class="mlabels"> 169*132f818dSEnji Cooper <tr> 170*132f818dSEnji Cooper <td class="mlabels-left"> 171*132f818dSEnji Cooper <table class="memname"> 172*132f818dSEnji Cooper <tr> 173*132f818dSEnji Cooper <td class="memname">anonymous_namespace{test_utils.hpp}::stack_balance_checker::~stack_balance_checker </td> 174*132f818dSEnji Cooper <td>(</td> 175*132f818dSEnji Cooper <td class="paramtype">void </td> 176*132f818dSEnji Cooper <td class="paramname"></td><td>)</td> 177*132f818dSEnji Cooper <td></td> 178*132f818dSEnji Cooper </tr> 179*132f818dSEnji Cooper </table> 180*132f818dSEnji Cooper </td> 181*132f818dSEnji Cooper <td class="mlabels-right"> 182*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">inline</span></span> </td> 183*132f818dSEnji Cooper </tr> 184*132f818dSEnji Cooper</table> 185*132f818dSEnji Cooper</div><div class="memdoc"> 186*132f818dSEnji Cooper 187*132f818dSEnji Cooper<p>Destructor for the object. </p> 188*132f818dSEnji Cooper<p>If the stack height does not match the height when the instance was created, this fails the test case. </p> 189*132f818dSEnji Cooper 190*132f818dSEnji Cooper</div> 191*132f818dSEnji Cooper</div> 192*132f818dSEnji Cooper<hr/>The documentation for this class was generated from the following file:<ul> 193*132f818dSEnji Cooper<li><a class="el" href="a00056_source.html">test_utils.hpp</a></li> 194*132f818dSEnji Cooper</ul> 195*132f818dSEnji Cooper</div><!-- contents --> 196*132f818dSEnji Cooper<!-- start footer part --> 197*132f818dSEnji Cooper<hr class="footer"/><address class="footer"><small> 198*132f818dSEnji CooperGenerated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 199*132f818dSEnji Cooper</small></address> 200*132f818dSEnji Cooper</body> 201*132f818dSEnji Cooper</html> 202