Files
metasploit-gs/api/Metasploit/Framework/Spec/Constants/Suite.html
T
jenkins-metasploit c3f5bd3de2 Reboot gh-pages
2026-05-08 17:08:43 +00:00

735 lines
32 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Module: Metasploit::Framework::Spec::Constants::Suite
&mdash; Documentation by YARD 0.9.37
</title>
<link rel="stylesheet" href="../../../../css/style.css" type="text/css" />
<link rel="stylesheet" href="../../../../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Metasploit::Framework::Spec::Constants::Suite";
relpath = '../../../../';
</script>
<script type="text/javascript" charset="utf-8" src="../../../../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../../../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../../../../class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../../../../_index.html">Index (S)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span>
&raquo;
<span class="title">Suite</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../../../../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Module: Metasploit::Framework::Spec::Constants::Suite
</h1>
<div class="box_info">
<dl>
<dt>Defined in:</dt>
<dd>lib/metasploit/framework/spec/constants/suite.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>Logs if constants created by module loading are left over after suite has completed.</p>
</div>
</div>
<div class="tags">
</div>
<h2>
Constant Summary
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
</h2>
<dl class="constants">
<dt id="LOGS_PATHNAME-constant" class="">LOGS_PATHNAME =
<div class="docstring">
<div class="discussion">
<p>CONSTANTS</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Pathname</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>log/metasploit/framework/spec/constants/suite</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span></pre></dd>
</dl>
<h2>
Class Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#configure!-class_method" title="configure! (class method)">.<strong>configure!</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Configures after(:suite) callback for RSpec to check for leaked constants.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#define_task-class_method" title="define_task (class method)">.<strong>define_task</strong> &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Adds action to spec` task so that `rake spec` fails if `log/leaked-constants.log` exists after printing out the leaked constants.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#log_leaked_constants-class_method" title="log_leaked_constants (class method)">.<strong>log_leaked_constants</strong>(hook, message) &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Logs leaked constants to LOG_PATHNAME and prints message` to stderr.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#log_pathname-class_method" title="log_pathname (class method)">.<strong>log_pathname</strong>(hook) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#print_leaked_constants-class_method" title="print_leaked_constants (class method)">.<strong>print_leaked_constants</strong>(hook) &#x21d2; true, false </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Prints logged leaked constants to stderr.</p>
</div></span>
</li>
</ul>
<div id="class_method_details" class="method_details_list">
<h2>Class Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="configure!-class_method">
.<strong>configure!</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Configures after(:suite) callback for RSpec to check for leaked constants.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/spec/constants/suite.rb', line 35</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_configure!'>configure!</span>
<span class='kw'>unless</span> <span class='ivar'>@configured</span>
<span class='const'>RSpec</span><span class='period'>.</span><span class='id identifier rubyid_configure'>configure</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
<span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_before'>before</span><span class='lparen'>(</span><span class='symbol'>:suite</span><span class='rparen'>)</span> <span class='kw'>do</span>
<span class='const'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Metasploit::Framework::Spec::Constants::Suite (module)">Suite</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_leaked_constants'><span class='object_link'><a href="#log_leaked_constants-class_method" title="Metasploit::Framework::Spec::Constants::Suite.log_leaked_constants (method)">log_leaked_constants</a></span></span><span class='lparen'>(</span>
<span class='symbol'>:before</span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Modules are being loaded outside callbacks before suite starts.</span><span class='tstring_end'>&#39;</span></span>
<span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_after'>after</span><span class='lparen'>(</span><span class='symbol'>:suite</span><span class='rparen'>)</span> <span class='kw'>do</span>
<span class='const'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Metasploit::Framework::Spec::Constants::Suite (module)">Suite</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_leaked_constants'><span class='object_link'><a href="#log_leaked_constants-class_method" title="Metasploit::Framework::Spec::Constants::Suite.log_leaked_constants (method)">log_leaked_constants</a></span></span><span class='lparen'>(</span>
<span class='symbol'>:after</span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Modules are being loaded inside callbacks or examples during suite run.</span><span class='tstring_end'>&#39;</span></span>
<span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='ivar'>@configured</span> <span class='op'>=</span> <span class='kw'>true</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="define_task-class_method">
.<strong>define_task</strong> &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Adds action to spec` task so that `rake spec` fails if `log/leaked-constants.log` exists after printing out the leaked constants.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/spec/constants/suite.rb', line 61</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_define_task'>define_task</span>
<span class='const'>Rake</span><span class='op'>::</span><span class='const'>Task</span><span class='period'>.</span><span class='id identifier rubyid_define_task'>define_task</span><span class='lparen'>(</span><span class='symbol'>:spec</span><span class='rparen'>)</span> <span class='kw'>do</span>
<span class='id identifier rubyid_leaked_before'>leaked_before</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Metasploit::Framework::Spec::Constants::Suite (module)">Suite</a></span></span><span class='period'>.</span><span class='id identifier rubyid_print_leaked_constants'><span class='object_link'><a href="#print_leaked_constants-class_method" title="Metasploit::Framework::Spec::Constants::Suite.print_leaked_constants (method)">print_leaked_constants</a></span></span><span class='lparen'>(</span><span class='symbol'>:before</span><span class='rparen'>)</span>
<span class='id identifier rubyid_leaked_after'>leaked_after</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Metasploit::Framework::Spec::Constants::Suite (module)">Suite</a></span></span><span class='period'>.</span><span class='id identifier rubyid_print_leaked_constants'><span class='object_link'><a href="#print_leaked_constants-class_method" title="Metasploit::Framework::Spec::Constants::Suite.print_leaked_constants (method)">print_leaked_constants</a></span></span><span class='lparen'>(</span><span class='symbol'>:after</span><span class='rparen'>)</span>
<span class='comment'># leaks after suite can be be cleaned up by {Metasploit::Framework::Spec::Constants::Each.configure!}, but
</span> <span class='comment'># leaks before suite require user intervention to find the leaks since it&#39;s a programming error in how the specs
</span> <span class='comment'># are written where Modules are being loaded in the context scope.
</span> <span class='kw'>if</span> <span class='id identifier rubyid_leaked_after'>leaked_after</span>
<span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span>
<span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Add `Metasploit::Framework::Spec::Constants::Each.configure!` to `spec/spec_helper.rb` </span><span class='tstring_end'>&quot;</span></span> \
<span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>**NOTE: `Metasploit::Framework::Spec::Constants::Each` may report false leaks if `after(:all)` </span><span class='tstring_end'>&quot;</span></span> \
<span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is used to clean up constants instead of `after(:each)`**</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_leaked_before'>leaked_before</span> <span class='op'>||</span> <span class='id identifier rubyid_leaked_after'>leaked_after</span>
<span class='id identifier rubyid_exit'>exit</span> <span class='int'>1</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="log_leaked_constants-class_method">
.<strong>log_leaked_constants</strong>(hook, message) &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Logs leaked constants to LOG_PATHNAME and prints message` to stderr.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>message</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>additional message printed to stderr when there is at least one leaked constant.</p>
</div>
</li>
<li>
<span class='name'>hook</span>
<span class='type'>(<tt>:after</tt>, <tt>:before</tt>)</span>
&mdash;
<div class='inline'>
<p>Whether the log is recording leaked constants :before` the suite runs or `:after` the suite runs.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/spec/constants/suite.rb', line 14</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_log_leaked_constants'>log_leaked_constants</span><span class='lparen'>(</span><span class='id identifier rubyid_hook'>hook</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
<span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='int'>0</span>
<span class='id identifier rubyid_hook_log_pathname'>hook_log_pathname</span> <span class='op'>=</span> <span class='id identifier rubyid_log_pathname'>log_pathname</span><span class='lparen'>(</span><span class='id identifier rubyid_hook'>hook</span><span class='rparen'>)</span>
<span class='id identifier rubyid_hook_log_pathname'>hook_log_pathname</span><span class='period'>.</span><span class='id identifier rubyid_parent'>parent</span><span class='period'>.</span><span class='id identifier rubyid_mkpath'>mkpath</span>
<span class='id identifier rubyid_hook_log_pathname'>hook_log_pathname</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>w</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span>
<span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span><span class='period'>.</span><span class='id identifier rubyid_each'><span class='object_link'><a href="../Constants.html#each-class_method" title="Metasploit::Framework::Spec::Constants.each (method)">each</a></span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_child_name'>child_name</span><span class='op'>|</span>
<span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_child_name'>child_name</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>&gt;</span> <span class='int'>0</span>
<span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_count'>count</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>constant</span><span class='tstring_end'>&#39;</span></span><span class='period'>.</span><span class='id identifier rubyid_pluralize'>pluralize</span><span class='lparen'>(</span><span class='id identifier rubyid_count'>count</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'> leaked under </span><span class='tstring_end'>&quot;</span></span> \
<span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html#PARENT_CONSTANT-constant" title="Metasploit::Framework::Spec::Constants::PARENT_CONSTANT (constant)">PARENT_CONSTANT</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>. </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_content'> See </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_hook_log_pathname'>hook_log_pathname</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span> \
<span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>for details.</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>else</span>
<span class='id identifier rubyid_hook_log_pathname'>hook_log_pathname</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="log_pathname-class_method">
.<strong>log_pathname</strong>(hook) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>hook</span>
<span class='type'>(<tt>:after</tt>, <tt>:before</tt>)</span>
&mdash;
<div class='inline'>
<p>Whether the log is recording leaked constants :before` the suite runs or `:after` the suite runs.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
84
85
86</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/spec/constants/suite.rb', line 84</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_log_pathname'>log_pathname</span><span class='lparen'>(</span><span class='id identifier rubyid_hook'>hook</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="#LOGS_PATHNAME-constant" title="Metasploit::Framework::Spec::Constants::Suite::LOGS_PATHNAME (constant)">LOGS_PATHNAME</a></span></span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_hook'>hook</span><span class='embexpr_end'>}</span><span class='tstring_content'>.log</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="print_leaked_constants-class_method">
.<strong>print_leaked_constants</strong>(hook) &#x21d2; <tt>true</tt>, <tt>false</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Prints logged leaked constants to stderr.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>hook</span>
<span class='type'>(<tt>:after</tt>, <tt>:before</tt>)</span>
&mdash;
<div class='inline'>
<p>Whether the log is recording leaked constants :before` the suite runs or `:after` the suite runs.</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>true</tt>)</span>
&mdash;
<div class='inline'>
<p>if leaks printed</p>
</div>
</li>
<li>
<span class='type'>(<tt>false</tt>)</span>
&mdash;
<div class='inline'>
<p>otherwise</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/spec/constants/suite.rb', line 94</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_print_leaked_constants'>print_leaked_constants</span><span class='lparen'>(</span><span class='id identifier rubyid_hook'>hook</span><span class='rparen'>)</span>
<span class='id identifier rubyid_hook_log_pathname'>hook_log_pathname</span> <span class='op'>=</span> <span class='id identifier rubyid_log_pathname'>log_pathname</span><span class='lparen'>(</span><span class='id identifier rubyid_hook'>hook</span><span class='rparen'>)</span>
<span class='id identifier rubyid_leaks'>leaks</span> <span class='op'>=</span> <span class='kw'>false</span>
<span class='kw'>if</span> <span class='id identifier rubyid_hook_log_pathname'>hook_log_pathname</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span>
<span class='id identifier rubyid_leaks'>leaks</span> <span class='op'>=</span> <span class='kw'>true</span>
<span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Leaked constants detected under </span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html#PARENT_CONSTANT-constant" title="Metasploit::Framework::Spec::Constants::PARENT_CONSTANT (constant)">PARENT_CONSTANT</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_hook'>hook</span><span class='embexpr_end'>}</span><span class='tstring_content'> suite:</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_hook_log_pathname'>hook_log_pathname</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span>
<span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_each_line'>each_line</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_line'>line</span><span class='op'>|</span>
<span class='id identifier rubyid_constant_name'>constant_name</span> <span class='op'>=</span> <span class='id identifier rubyid_line'>line</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
<span class='id identifier rubyid_full_name'>full_name</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Spec.html" title="Metasploit::Framework::Spec (module)">Spec</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Constants.html" title="Metasploit::Framework::Spec::Constants (module)">Constants</a></span></span><span class='period'>.</span><span class='id identifier rubyid_full_name'><span class='object_link'><a href="../Constants.html#full_name-class_method" title="Metasploit::Framework::Spec::Constants.full_name (method)">full_name</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_constant_name'>constant_name</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_full_name'>full_name</span>
<span class='id identifier rubyid_formatted_full_name'>formatted_full_name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> # </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_full_name'>full_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span>
<span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_constant_name'>constant_name</span><span class='embexpr_end'>}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_formatted_full_name'>formatted_full_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_leaks'>leaks</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:02:53 2026 by
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.37 (ruby-3.1.5).
</div>
</div>
</body>
</html>