You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2018/07/20 02:23:31 UTC
[46/51] [partial] mesos-site git commit: Updated the website built
from mesos SHA: 9147283.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/7fd1c58b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2tests_2utils_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2stout_2include_2stout_2tests_2utils_8hpp_source.html b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2tests_2utils_8hpp_source.html
index 16f2fbb..23df637 100644
--- a/content/api/latest/c++/3rdparty_2stout_2include_2stout_2tests_2utils_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2tests_2utils_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">utils.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="3rdparty_2stout_2include_2stout_2tests_2utils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</spa
n> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno">
12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_TESTS_UTILS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_TESTS_UTILS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <gtest/gtest.h></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="cod
e" href="stout_2include_2stout_2gtest_8hpp.html">stout/gtest.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="chdir_8hpp.html">stout/os/chdir.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="getcwd_8hpp.html">stout/os/getcwd.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="mkdtemp_8hpp.html">stout/os/mkdtemp.hpp</a>></span></div><div class="line"><a name="l00026"></a><span
class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="realpath_8hpp.html">stout/os/realpath.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="rmdir_8hpp.html">stout/os/rmdir.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#if __FreeBSD__</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="sysctl_8hpp.html">stout/os/sysctl.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a
name="l00033"></a><span class="lineno"><a class="line" href="classTemporaryDirectoryTest.html"> 33</a></span> <span class="keyword">class </span><a class="code" href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a> : <span class="keyword">public</span> ::testing::Test</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classTemporaryDirectoryTest.html#a8c276b7f4a8ac1d5ca5d575d56fbea12"> 36</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTemporaryDirectoryTest.html#a8c276b7f4a8ac1d5ca5d575d56fbea12">SetUp</a>()</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  {</div><div class="line"><a name="l00038"></a><span class="
lineno"> 38</span>  <span class="comment">// Save the current working directory.</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  cwd = <a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="comment">// Create a temporary directory for the test.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classTry.html">Try<std::string></a> directory = <a class="code" href="namespaceos.html#afe70fd86d13b8f10cafb222bb80adcf6">os::mkdtemp</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(directory) &l
t;< <span class="stringliteral">"Failed to mkdtemp"</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// We get the `realpath` of the temporary directory because some</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// platforms, like macOS, symlink `/tmp` to `/private/var`, but</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">// return the symlink name when creating temporary directories.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">// This is problematic because a lot of tests compare the</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="comment">// `realpath` of
a temporary file.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classResult.html">Result<std::string></a> <a class="code" href="namespaceos.html#aa533c79d98af12b40b567a851e442373">realpath</a> = <a class="code" href="namespaceos.html#aa533c79d98af12b40b567a851e442373">os::realpath</a>(directory.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>());</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(realpath) << <span class="stringliteral">"Failed to get realpath of '"</span> << directory.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  << <span class="stringliteral
">"': "</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  << (realpath.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>() ? realpath.<a class="code" href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>()</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  : <span class="stringliteral">"No such directory"</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a> = realpath.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> 
<span class="comment">// Run the test out of the temporary directory we created.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(<a class="code" href="namespaceos.html#a11febfefa1908b3cb87b77da5c8482c5">os::chdir</a>(<a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>()))</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  << <span class="stringliteral">"Failed to chdir into '"</span> << <a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>() << <span class="stringliteral">"'"</span>;</d
iv><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classTemporaryDirectoryTest.html#af398699f3f3f018086e72ea220d65dbd"> 62</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTemporaryDirectoryTest.html#af398699f3f3f018086e72ea220d65dbd">TearDown</a>()</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// Return to previous working directory and cleanup the sandbox.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(<a
class="code" href="namespaceos.html#a11febfefa1908b3cb87b77da5c8482c5">os::chdir</a>(cwd));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (<a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(<a class="code" href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">os::rmdir</a>(<a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>()));</div><div class="line"><a
name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// A temporary directory for test purposes.</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// Not to be confused with the "sandbox" that tasks are run in.</span></div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a"> 74</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>;</div><div class="line"><a name="l00075"></a><span class="lineno">
75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  std::string cwd;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> };</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#ifdef __FreeBSD__</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> isJailed() {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">int</span> mib[4];</div><div class="line"><a name="l00084"></a><span class="lineno">
84</span>  <span class="keywordtype">size_t</span> len = 4;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  ::sysctlnametomib(<span class="stringliteral">"security.jail.jailed"</span>, mib, &len);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classTry.html">Try<int></a> jailed = <a class="code" href="structos_1_1sysctl.html">os::sysctl</a>(mib[0], mib[1], mib[2]).<a class="code" href="structos_1_1sysctl.html#ae4fa1e9a1934a5f694a83ba10b008764">integer</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (jailed.<a class="code" href="classTry.html#a6543d7d5db4f298bcd673bf3cd509acc">isSome</a>()) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> jailed.<a class="code" href="classTry.html#a8bc7f43e75a47111ea1
8e9c83b007be5">get</a>() == 1;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#endif // __STOUT_TESTS_UTILS_HPP__</span></div><div class="ttc" id="realpath_8hpp_html"><div class="ttname"><a href="realpath_8hpp.html">realpath.hpp</a></div></div>
+<a href="3rdparty_2stout_2include_2stout_2tests_2utils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</spa
n> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno">
12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_TESTS_UTILS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_TESTS_UTILS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <gtest/gtest.h></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="cod
e" href="stout_2include_2stout_2gtest_8hpp.html">stout/gtest.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="chdir_8hpp.html">stout/os/chdir.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="getcwd_8hpp.html">stout/os/getcwd.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="mkdtemp_8hpp.html">stout/os/mkdtemp.hpp</a>></span></div><div class="line"><a name="l00026"></a><span
class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="realpath_8hpp.html">stout/os/realpath.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="rmdir_8hpp.html">stout/os/rmdir.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#if __FreeBSD__</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="sysctl_8hpp.html">stout/os/sysctl.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a
name="l00033"></a><span class="lineno"><a class="line" href="classTemporaryDirectoryTest.html"> 33</a></span> <span class="keyword">class </span><a class="code" href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a> : <span class="keyword">public</span> ::testing::Test</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classTemporaryDirectoryTest.html#ad2e713530533a81df53294d7cb06ecea"> 36</a></span>  <span class="keywordtype">void</span> <a class="code" href="classTemporaryDirectoryTest.html#ad2e713530533a81df53294d7cb06ecea">SetUp</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword"> </span>{</div><div class="line"><a n
ame="l00038"></a><span class="lineno"> 38</span>  <span class="comment">// Save the current working directory.</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  cwd = <a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="comment">// Create a temporary directory for the test.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classTry.html">Try<std::string></a> directory = <a class="code" href="namespaceos.html#afe70fd86d13b8f10cafb222bb80adcf6">os::mkdtemp</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90"
>ASSERT_SOME</a>(directory) << <span class="stringliteral">"Failed to mkdtemp"</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// We get the `realpath` of the temporary directory because some</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// platforms, like macOS, symlink `/tmp` to `/private/var`, but</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">// return the symlink name when creating temporary directories.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">// This is problematic because a lot of tests compare the</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span cl
ass="comment">// `realpath` of a temporary file.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classResult.html">Result<std::string></a> <a class="code" href="namespaceos.html#aa533c79d98af12b40b567a851e442373">realpath</a> = <a class="code" href="namespaceos.html#aa533c79d98af12b40b567a851e442373">os::realpath</a>(directory.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>());</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(realpath) << <span class="stringliteral">"Failed to get realpath of '"</span> << directory.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <&
lt; <span class="stringliteral">"': "</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  << (realpath.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>() ? realpath.<a class="code" href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>()</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  : <span class="stringliteral">"No such directory"</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a> = realpath.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class
="lineno"> 57</span>  <span class="comment">// Run the test out of the temporary directory we created.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(<a class="code" href="namespaceos.html#a11febfefa1908b3cb87b77da5c8482c5">os::chdir</a>(<a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>()))</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  << <span class="stringliteral">"Failed to chdir into '"</span> << <a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>() << <span class="stringliteral
">"'"</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classTemporaryDirectoryTest.html#a6a969f7ca1e9720dcec0eeb0b4fa5d47"> 62</a></span>  <span class="keywordtype">void</span> <a class="code" href="classTemporaryDirectoryTest.html#a6a969f7ca1e9720dcec0eeb0b4fa5d47">TearDown</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// Return to previous working directory and cleanup the sandbox.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="stout_2include_2stout_2gtest_8hp
p.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(<a class="code" href="namespaceos.html#a11febfefa1908b3cb87b77da5c8482c5">os::chdir</a>(cwd));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (<a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(<a class="code" href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">os::rmdir</a>(<a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>.<a class="code" href="classOption.html#a21358442c0fac
1cc978a67a9a9089a79">get</a>()));</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// A temporary directory for test purposes.</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// Not to be confused with the "sandbox" that tasks are run in.</span></div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a"> 74</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">sandbox</a>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  std::string cwd;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> };</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#ifdef __FreeBSD__</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> isJailed() {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">int</span> mib[4];</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordtype">size_t</span> len = 4;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  ::sysctlnametomib(<span class="stringliteral">"security.jail.jailed"</span>, mib, &len);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classTry.html">Try<int></a> jailed = <a class="code" href="structos_1_1sysctl.html">os::sysctl</a>(mib[0], mib[1], mib[2]).<a class="code" href="structos_1_1sysctl.html#ae4fa1e9a1934a5f694a83ba10b008764">integer</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (jailed.<a class="code" href="classTry.html#a6543d7d5db4f298bcd673bf3cd509acc">isSome</a>()) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> jai
led.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>() == 1;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#endif // __STOUT_TESTS_UTILS_HPP__</span></div><div class="ttc" id="realpath_8hpp_html"><div class="ttname"><a href="realpath_8hpp.html">realpath.hpp</a></div></div>
<div class="ttc" id="namespaceos_html_a84298b990ad52dfd353358427b04ff3f"><div class="ttname"><a href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">os::rmdir</a></div><div class="ttdeci">Try< Nothing > rmdir(const std::string &directory, bool recursive=true, bool removeRoot=true, bool continueOnError=false)</div><div class="ttdef"><b>Definition:</b> rmdir.hpp:42</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< std::string ></a></div></div>
<div class="ttc" id="classTry_html_a8bc7f43e75a47111ea18e9c83b007be5"><div class="ttname"><a href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">Try::get</a></div><div class="ttdeci">T & get()&</div><div class="ttdef"><b>Definition:</b> try.hpp:73</div></div>
@@ -61,7 +61,6 @@
<div class="ttc" id="classResult_html_a521adf96f5c27d26d6b1d580aae8aaee"><div class="ttname"><a href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">Result::error</a></div><div class="ttdeci">static Result< T > error(const std::string &message)</div><div class="ttdef"><b>Definition:</b> result.hpp:53</div></div>
<div class="ttc" id="namespaceos_html_a84a3290f051cdd50d88e0fd611645d4a"><div class="ttname"><a href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a></div><div class="ttdeci">std::string getcwd()</div><div class="ttdef"><b>Definition:</b> getcwd.hpp:23</div></div>
<div class="ttc" id="chdir_8hpp_html"><div class="ttname"><a href="chdir_8hpp.html">chdir.hpp</a></div></div>
-<div class="ttc" id="classTemporaryDirectoryTest_html_af398699f3f3f018086e72ea220d65dbd"><div class="ttname"><a href="classTemporaryDirectoryTest.html#af398699f3f3f018086e72ea220d65dbd">TemporaryDirectoryTest::TearDown</a></div><div class="ttdeci">virtual void TearDown()</div><div class="ttdef"><b>Definition:</b> utils.hpp:62</div></div>
<div class="ttc" id="classResult_html"><div class="ttname"><a href="classResult.html">Result</a></div><div class="ttdef"><b>Definition:</b> check.hpp:30</div></div>
<div class="ttc" id="classOption_html_a4e3bf8416d95246f43c91f1b5c309323"><div class="ttname"><a href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">Option::isSome</a></div><div class="ttdeci">bool isSome() const </div><div class="ttdef"><b>Definition:</b> option.hpp:115</div></div>
<div class="ttc" id="classTemporaryDirectoryTest_html"><div class="ttname"><a href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a></div><div class="ttdef"><b>Definition:</b> utils.hpp:33</div></div>
@@ -74,12 +73,13 @@
<div class="ttc" id="structos_1_1sysctl_html_ae4fa1e9a1934a5f694a83ba10b008764"><div class="ttname"><a href="structos_1_1sysctl.html#ae4fa1e9a1934a5f694a83ba10b008764">os::sysctl::integer</a></div><div class="ttdeci">Integer integer() const </div><div class="ttdef"><b>Definition:</b> sysctl.hpp:182</div></div>
<div class="ttc" id="mkdtemp_8hpp_html"><div class="ttname"><a href="mkdtemp_8hpp.html">mkdtemp.hpp</a></div></div>
<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
+<div class="ttc" id="classTemporaryDirectoryTest_html_ad2e713530533a81df53294d7cb06ecea"><div class="ttname"><a href="classTemporaryDirectoryTest.html#ad2e713530533a81df53294d7cb06ecea">TemporaryDirectoryTest::SetUp</a></div><div class="ttdeci">void SetUp() override</div><div class="ttdef"><b>Definition:</b> utils.hpp:36</div></div>
<div class="ttc" id="structos_1_1sysctl_html"><div class="ttname"><a href="structos_1_1sysctl.html">os::sysctl</a></div><div class="ttdef"><b>Definition:</b> sysctl.hpp:59</div></div>
-<div class="ttc" id="classTemporaryDirectoryTest_html_a8c276b7f4a8ac1d5ca5d575d56fbea12"><div class="ttname"><a href="classTemporaryDirectoryTest.html#a8c276b7f4a8ac1d5ca5d575d56fbea12">TemporaryDirectoryTest::SetUp</a></div><div class="ttdeci">virtual void SetUp()</div><div class="ttdef"><b>Definition:</b> utils.hpp:36</div></div>
<div class="ttc" id="classResult_html_aeca16ad17d299ad885c9b46c83b12a3d"><div class="ttname"><a href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">Result::isError</a></div><div class="ttdeci">bool isError() const </div><div class="ttdef"><b>Definition:</b> result.hpp:113</div></div>
<div class="ttc" id="classTemporaryDirectoryTest_html_aa550fd09eb1cff3070839435557f4b9a"><div class="ttname"><a href="classTemporaryDirectoryTest.html#aa550fd09eb1cff3070839435557f4b9a">TemporaryDirectoryTest::sandbox</a></div><div class="ttdeci">Option< std::string > sandbox</div><div class="ttdef"><b>Definition:</b> utils.hpp:74</div></div>
<div class="ttc" id="namespaceos_html_a11febfefa1908b3cb87b77da5c8482c5"><div class="ttname"><a href="namespaceos.html#a11febfefa1908b3cb87b77da5c8482c5">os::chdir</a></div><div class="ttdeci">Try< Nothing > chdir(const std::string &directory)</div><div class="ttdef"><b>Definition:</b> chdir.hpp:25</div></div>
<div class="ttc" id="stout_2include_2stout_2gtest_8hpp_html_a0add664e84bbf99f845f1b715dd63f90"><div class="ttname"><a href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a></div><div class="ttdeci">#define ASSERT_SOME(actual)</div><div class="ttdef"><b>Definition:</b> gtest.hpp:128</div></div>
+<div class="ttc" id="classTemporaryDirectoryTest_html_a6a969f7ca1e9720dcec0eeb0b4fa5d47"><div class="ttname"><a href="classTemporaryDirectoryTest.html#a6a969f7ca1e9720dcec0eeb0b4fa5d47">TemporaryDirectoryTest::TearDown</a></div><div class="ttdeci">void TearDown() override</div><div class="ttdef"><b>Definition:</b> utils.hpp:62</div></div>
<div class="ttc" id="rmdir_8hpp_html"><div class="ttname"><a href="rmdir_8hpp.html">rmdir.hpp</a></div></div>
<div class="ttc" id="namespaceos_html_afe70fd86d13b8f10cafb222bb80adcf6"><div class="ttname"><a href="namespaceos.html#afe70fd86d13b8f10cafb222bb80adcf6">os::mkdtemp</a></div><div class="ttdeci">Try< std::string > mkdtemp(const std::string &path=path::join(os::temp(),"XXXXXX"))</div><div class="ttdef"><b>Definition:</b> mkdtemp.hpp:38</div></div>
</div><!-- fragment --></div><!-- contents -->