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