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/05/31 03:12:41 UTC

[21/46] mesos-site git commit: Updated the website built from mesos SHA: a52e528.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/e42c5d57/content/api/latest/c++/mock__docker_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/mock__docker_8hpp_source.html b/content/api/latest/c++/mock__docker_8hpp_source.html
index 629ceff..cab89b7 100644
--- a/content/api/latest/c++/mock__docker_8hpp_source.html
+++ b/content/api/latest/c++/mock__docker_8hpp_source.html
@@ -52,60 +52,60 @@
 <div class="title">mock_docker.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="mock__docker_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>&#160;<span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">// regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><spa
 n class="lineno">    6</span>&#160;<span class="comment">// &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//     http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// dist
 ributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef __TESTS_MOCKDOCKER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define __TESTS_MOCKDOCKER_HPP__</span></div><div class="
 line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;gmock/gmock.h&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class
 ="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="resources_8hpp.html">mesos/resources.hpp</a>&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slave_2container__logger_8hpp.html">mesos/slave/container_logger.hpp</a>&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="future_8hpp.html">process/future.hpp</a>&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="owned_8hpp.html">process/owned.hpp</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="linen
 o">   33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">process/shared.hpp</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="json_8hpp.html">stout/json.hpp</a>&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="slave_2containerizer_2docker_8hpp.html">slave/containerizer/docker.hpp</a>&quot;</span></div><div class="line"><a name="l
 00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="components_8hpp.html">slave/containerizer/mesos/isolators/gpu/components.hpp</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;using ::testing::_;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;using ::testing::Invoke;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">using</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NvidiaComponents.html">mesos::internal::slave::NvidiaComponents</a>;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#16
 0;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">// Definition of a mock Docker to be used in tests with gmock.</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html">   52</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1t
 ests_1_1MockDocker.html">MockDocker</a> : <span class="keyword">public</span> <a class="code" href="classDocker.html">Docker</a></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a7cb4dbff2995fd68670da9702246672b">MockDocker</a>(</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;      <span class="keyword">const</span> std::string&amp; <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;      <span class="keyword">const</span> std::string&amp; socket,</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;      <span class="keyword">c
 onst</span> <a class="code" href="classOption.html">Option&lt;JSON::Object&gt;</a>&amp; config = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a685c68f87dc5987215611c11b1b8d8da">~MockDocker</a>();</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a0561a3c8e5d2286627453b511f803d4d">MOCK_CONST_METHOD3</a>(</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;      <a class="code" href="classDocker.html#a4c921c0018b3ca12ad726617d2938710">run</a>,</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;      <a class="code" href="classprocess_1_
 1Future.html">process::Future</a>&lt;<a class="code" href="classOption.html">Option&lt;int&gt;</a>&gt;(</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;          <span class="keyword">const</span> <a class="code" href="classDocker_1_1RunOptions.html">Docker::RunOptions</a>&amp; options,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>&amp;,</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>&amp;));</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1
 MockDocker.html#ae85681ccc730211e96c15f662c2d06f7">MOCK_CONST_METHOD2</a>(</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;      <a class="code" href="classDocker.html#ae3d964240a23f43633d7f8c740ce246b">ps</a>,</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future</a>&lt;std::list&lt;Docker::Container&gt;&gt;(</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;          <span class="keywordtype">bool</span>, <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp;));</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a0561a3c8e5d2286627453b511f803d4d">MOCK_CONST_METHOD3</a>(</d
 iv><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;      <a class="code" href="classDocker.html#ad4131f2a6b66ab4661339c51d20d812d">pull</a>,</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Docker::Image&gt;</a>(</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;          <span class="keyword">const</span> std::string&amp;,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;          <span class="keyword">const</span> std::string&amp;,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;          <span class="keywordtype">bool</span>));</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1t
 ests_1_1MockDocker.html#a0561a3c8e5d2286627453b511f803d4d">MOCK_CONST_METHOD3</a>(</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;      <a class="code" href="classDocker.html#a4f45c8632608059b07157a65033474fc">stop</a>,</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>(</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;          <span class="keyword">const</span> std::string&amp;,</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;          <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>&amp;,</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;          <span class="keywordtype">bool</span>));</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div cl
 ass="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#ae85681ccc730211e96c15f662c2d06f7">MOCK_CONST_METHOD2</a>(</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;      <a class="code" href="classDocker.html#a3be28ab0231c0fefaf839661b790c457">inspect</a>,</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Docker::Container&gt;</a>(</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;          <span class="keyword">const</span> std::string&amp;,</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;          <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Duration&gt;</a>&amp;));</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#16
 0;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a8073b72f047203776ff3b313eef31526">   93</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Option&lt;int&gt;</a>&gt; <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a8073b72f047203776ff3b313eef31526">_run</a>(</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;      <span class="keyword">const</span> <a class="code" href="classDocker_1_1RunOptions.html">Docker::RunOptions</a>&amp; runOptions,</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>&amp; _stdout,</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;      <span class="keyword">const</span> <a class="code
 " href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>&amp; _stderr)<span class="keyword"> const</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#a4c921c0018b3ca12ad726617d2938710">Docker::run</a>(</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        runOptions,</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        _stdout,</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        _stderr);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  }</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"
 ><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#acb65df9983566558465b3a3464724c12">  104</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;std::list&lt;Docker::Container&gt;</a>&gt; <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#acb65df9983566558465b3a3464724c12">_ps</a>(</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;      <span class="keywordtype">bool</span> all,</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; <a class="code" href="namespaceos_1_1libraries_1_1Library.html#ab0e1a0e311049b6d685de1068e8f4690">prefix</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00108"></
 a><span class="lineno">  108</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#ae3d964240a23f43633d7f8c740ce246b">Docker::ps</a>(all, prefix);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  }</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#afe6010e3ea6c5ee3538baaf2af6289b3">  111</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Docker::Image&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#afe6010e3ea6c5ee3538baaf2af6289b3">_pull</a>(</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;      <span class="keyword">const</span> std::string&amp; directory,</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&
 #160;      <span class="keyword">const</span> std::string&amp; <a class="code" href="namespacemesos_1_1uri_1_1docker.html#abbd9f55734f0b832bc5a87c3ee5d449e">image</a>,</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;      <span class="keywordtype">bool</span> force)<span class="keyword"> const</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#ad4131f2a6b66ab4661339c51d20d812d">Docker::pull</a>(directory, image, force);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  }</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDoc
 ker.html#a9eda8808316703e3f20865fe5a536f49">  119</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a9eda8808316703e3f20865fe5a536f49">_stop</a>(</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;      <span class="keyword">const</span> std::string&amp; containerName,</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;      <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>&amp; timeout,</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;      <span class="keywordtype">bool</span> <span class="keyword">remove</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00124"></a><span class="lin
 eno">  124</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#a4f45c8632608059b07157a65033474fc">Docker::stop</a>(containerName, timeout, <span class="keyword">remove</span>);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  }</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#ab833bff8d560a4af5dd80dd37cc73b93">  127</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Docker::Container&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#ab833bff8d560a4af5dd80dd37cc73b93">_inspect</a>(</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;      <span class="keyword">const</span> std::string&amp; containerName,</div><div class="line"><a name="l00
 129"></a><span class="lineno">  129</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Duration&gt;</a>&amp; retryInterval)</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;  {</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#a3be28ab0231c0fefaf839661b790c457">Docker::inspect</a>(containerName, retryInterval);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;  }</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">// Definition of a mock DockerContai
 nerizer to be used in tests with gmock.</span></div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">  137</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">MockDockerContainerizer</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html">slave::DockerContainerizer</a> {</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">MockDockerContainerizer</a>(</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;      <span class="keyword">const</span> <a class="code" href="class
 mesos_1_1internal_1_1slave_1_1Flags.html">slave::Flags</a>&amp; <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;      <a class="code" href="classmesos_1_1internal_1_1slave_1_1Fetcher.html">slave::Fetcher</a>* fetcher,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;mesos::slave::ContainerLogger&gt;</a>&amp; logger,</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;      <a class="code" href="classprocess_1_1Shared.html">process::Shared&lt;Docker&gt;</a> <a class="code" href="namespacedocker.html">docker</a>,</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;NvidiaComponents&gt;</a>&amp; nvidia = <a c
 lass="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">MockDockerContainerizer</a>(</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;slave::DockerContainerizerProcess&gt;</a>&amp; <a class="code" href="namespaceprocess.html">process</a>);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">MockDockerContainerizer</a>();</div><div class="line"><a name="l00150"><
 /a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a0e3293396509e28707b65c0fb53d720c">  151</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a0e3293396509e28707b65c0fb53d720c">initialize</a>()</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;  {</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="comment">// NOTE: See TestContainerizer::setup for why we use</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="comment">// &#39;EXPECT_CALL&#39; and &#39;WillRepeatedly&#39; here instead of</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="comment">// &#39;ON_CALL&#
 39; and &#39;WillByDefault&#39;.</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    EXPECT_CALL(*<span class="keyword">this</span>, <a class="code" href="namespacemesos_1_1internal_1_1local.html#a49af0f1418069661970870214d98d0c4">launch</a>(_, _, _, _))</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;      .WillRepeatedly(Invoke(<span class="keyword">this</span>, &amp;<a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a7428a926b7066d86f6cce6b71fa11e6b">MockDockerContainerizer::_launch</a>));</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    EXPECT_CALL(*<span class="keyword">this</span>, <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>(_, _))</div><div class="line"><a name="l00160"></a><span cl
 ass="lineno">  160</span>&#160;      .WillRepeatedly(Invoke(<span class="keyword">this</span>, &amp;<a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a55a74a8cbacea3c7590e5e5e3e81ba31">MockDockerContainerizer::_update</a>));</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;  }</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  MOCK_METHOD4(</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;      <a class="code" href="namespacemesos_1_1internal_1_1local.html#a49af0f1418069661970870214d98d0c4">launch</a>,</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;slave::Containerizer::LaunchResult&gt;</a>(</div><div class="line"><a name="l00166"></a><span class="lineno"
 >  166</span>&#160;          <span class="keyword">const</span> ContainerID&amp;,</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;          <span class="keyword">const</span> mesos::slave::ContainerConfig&amp;,</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;          <span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp;,</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;          <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp;));</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  MOCK_METHOD2(</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;      <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">
 update</a>,</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>(</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;          <span class="keyword">const</span> ContainerID&amp;,</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;          <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&amp;));</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  <span class="comment">// Default &#39;launch&#39; implementation (necessary because we can&#39;t just</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  <span class="comment">// use &amp;slave::DockerContainerizer::launch with &#39;Invoke&#39;).</span
 ></div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a7428a926b7066d86f6cce6b71fa11e6b">  179</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;slave::Containerizer::LaunchResult&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a7428a926b7066d86f6cce6b71fa11e6b">_launch</a>(</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;      <span class="keyword">const</span> ContainerID&amp; containerId,</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;      <span class="keyword">const</span> mesos::slave::ContainerConfig&amp; containerConfig,</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;      <span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; <a class="code" href="namespacemesos_1
 _1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; pidCheckpointPath)</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  {</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html#a61ba4cf750d8896d2034af8d9128c218">slave::DockerContainerizer::launch</a>(</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        containerId,</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        containerConfig,</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        environment,</div><div class
 ="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        pidCheckpointPath);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;  }</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a55a74a8cbacea3c7590e5e5e3e81ba31">  192</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a55a74a8cbacea3c7590e5e5e3e81ba31">_update</a>(</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;      <span class="keyword">const</span> ContainerID&amp; containerId,</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;      <span class="keyword">const</span> <a class="code" href="
 classmesos_1_1Resources.html">Resources</a>&amp; resources)</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;  {</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html#a2ca322cbd1737f4f03c5b96ee882e5a6">slave::DockerContainerizer::update</a>(</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        containerId,</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        resources);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;  }</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;};</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="l
 ine"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment">// Definition of a mock DockerContainerizerProcess to be used in tests</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="comment">// with gmock.</span></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">  205</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">MockDockerContainerizerProcess</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizerProcess.html">slave::DockerContainerizerProcess</a></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;{</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="keyword">publ
 ic</span>:</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">MockDockerContainerizerProcess</a>(</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">slave::Flags</a>&amp; <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;      <a class="code" href="classmesos_1_1internal_1_1slave_1_1Fetcher.html">slave::Fetcher</a>* fetcher,</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;mesos::slave::ContainerLogger&gt;</a>&amp; logger,</div><div class="line"><a name="l00212"></a><span class="lineno">  212
 </span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Shared.html">process::Shared&lt;Docker&gt;</a>&amp; <a class="code" href="namespacedocker.html">docker</a>,</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;NvidiaComponents&gt;</a>&amp; nvidia = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">MockDockerContainerizerProcess</a>();</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;  MOCK_METHOD1(</div><div 
 class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;      <a class="code" href="namespaceflags.html#a27c0d145bbd7c2870512fd59a50222d9">fetch</a>,</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>(<span class="keyword">const</span> ContainerID&amp;));</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;  MOCK_METHOD1(</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;      <a class="code" href="classDocker.html#ad4131f2a6b66ab4661339c51d20d812d">pull</a>,</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>(<span class="keyword">const</span> ContainerID&amp;));</div><div clas
 s="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#acfec378344dbde665f5758af9f55b974">  225</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#acfec378344dbde665f5758af9f55b974">_fetch</a>(<span class="keyword">const</span> ContainerID&amp; containerId)</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;  {</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizerProcess.html#aebc5890cccfbeaf44b48be7b33c676e9">slave::DockerContainerizerProcess::fetch</a>(containerId);</div><div class="line">
 <a name="l00228"></a><span class="lineno">  228</span>&#160;  }</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#ad452ce42356e37f52a734dbd408aaf02">  230</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#ad452ce42356e37f52a734dbd408aaf02">_pull</a>(<span class="keyword">const</span> ContainerID&amp; containerId)</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;  {</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizerProcess.html#acdb0e3fe92ec605185e566fb27e7aeff">slave
 ::DockerContainerizerProcess::pull</a>(containerId);</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  }</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;};</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;} <span class="comment">// namespace tests {</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;} <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;} <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="preprocessor">#endif // __TESTS_MOCKDOCKER_HPP__</span></div><div class="ttc" id="namespacepath_htm
 l"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<a href="mock__docker_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>&#160;<span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">// regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><spa
 n class="lineno">    6</span>&#160;<span class="comment">// &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//     http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// dist
 ributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef __TESTS_MOCKDOCKER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define __TESTS_MOCKDOCKER_HPP__</span></div><div class="
 line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;gmock/gmock.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="resources_8hpp.html">mesos/resources.hpp</a>&gt;<
 /span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slave_2container__logger_8hpp.html">mesos/slave/container_logger.hpp</a>&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="future_8hpp.html">process/future.hpp</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="owned_8hpp.html">process/owned.hpp</a>&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html
 ">process/shared.hpp</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="json_8hpp.html">stout/json.hpp</a>&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="slave_2containerizer_2docker_8hpp.html">slave/containerizer/docker.hpp</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span
  class="preprocessor">#include &quot;<a class="code" href="components_8hpp.html">slave/containerizer/mesos/isolators/gpu/components.hpp</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;using ::testing::_;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;using ::testing::Invoke;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">using</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NvidiaComponents.html">mesos::internal::slave::NvidiaComponents</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">namespace </span><a class="code
 " href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">// Definition of a mock Docker to be used in tests with gmock.</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html">   51</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html">MockDocker</a> : <span class="keyword">public</span> <a class="code" href="classDocker.html">Docker</a></div><div 
 class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a7cb4dbff2995fd68670da9702246672b">MockDocker</a>(</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;      <span class="keyword">const</span> std::string&amp; <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;      <span class="keyword">const</span> std::string&amp; socket,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;JSON::Object&gt;</a>&amp; config = <a class="code" href="structNone.html">Non
 e</a>());</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a685c68f87dc5987215611c11b1b8d8da">~MockDocker</a>();</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a0561a3c8e5d2286627453b511f803d4d">MOCK_CONST_METHOD3</a>(</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;      <a class="code" href="classDocker.html#a4c921c0018b3ca12ad726617d2938710">run</a>,</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future</a>&lt;<a class="code" href="classOption.html">Option&lt;int&gt;</a>&gt;(</div><div class="line"><a name="l00
 063"></a><span class="lineno">   63</span>&#160;          <span class="keyword">const</span> <a class="code" href="classDocker_1_1RunOptions.html">Docker::RunOptions</a>&amp; options,</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>&amp;,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>&amp;));</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a8589c9051ba96dca1090a867ecc1da82">MOCK_CONST_METHOD2</a>(</div><div class="line"><a name="l00068"></a><span class="lineno"
 >   68</span>&#160;      <a class="code" href="classDocker.html#a5ed360ee69fa51d583742bdf1e76e2c0">ps</a>,</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future</a>&lt;std::vector&lt;Docker::Container&gt;&gt;(</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;          <span class="keywordtype">bool</span>, <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp;));</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a0561a3c8e5d2286627453b511f803d4d">MOCK_CONST_METHOD3</a>(</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;      <a class="code" href="classDocker.html#ad4131f2a6b
 66ab4661339c51d20d812d">pull</a>,</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Docker::Image&gt;</a>(</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;          <span class="keyword">const</span> std::string&amp;,</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;          <span class="keyword">const</span> std::string&amp;,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;          <span class="keywordtype">bool</span>));</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a0561a3c8e5d2286627453b511f803d4d">MOCK_CONST_METHOD3</a>(</div><div class="line"><a name="l00080"></a><span clas
 s="lineno">   80</span>&#160;      <a class="code" href="classDocker.html#a4f45c8632608059b07157a65033474fc">stop</a>,</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>(</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;          <span class="keyword">const</span> std::string&amp;,</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;          <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>&amp;,</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;          <span class="keywordtype">bool</span>));</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDoc
 ker.html#a8589c9051ba96dca1090a867ecc1da82">MOCK_CONST_METHOD2</a>(</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;      <a class="code" href="classDocker.html#a3be28ab0231c0fefaf839661b790c457">inspect</a>,</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Docker::Container&gt;</a>(</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;          <span class="keyword">const</span> std::string&amp;,</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;          <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Duration&gt;</a>&amp;));</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.h
 tml#a8073b72f047203776ff3b313eef31526">   92</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Option&lt;int&gt;</a>&gt; <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a8073b72f047203776ff3b313eef31526">_run</a>(</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;      <span class="keyword">const</span> <a class="code" href="classDocker_1_1RunOptions.html">Docker::RunOptions</a>&amp; runOptions,</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>&amp; _stdout,</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>&amp; _stderr)<span class="keyword"> const</span></div><div cla
 ss="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#a4c921c0018b3ca12ad726617d2938710">Docker::run</a>(</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        runOptions,</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        _stdout,</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        _stderr);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  }</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a047b723dade233ef8cca866fc3838cb5">  103</a></span>&#160;  <a c
 lass="code" href="classprocess_1_1Future.html">process::Future&lt;std::vector&lt;Docker::Container&gt;</a>&gt; <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a047b723dade233ef8cca866fc3838cb5">_ps</a>(</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;      <span class="keywordtype">bool</span> all,</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; <a class="code" href="namespaceos_1_1libraries_1_1Library.html#ab0e1a0e311049b6d685de1068e8f4690">prefix</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#a5ed360ee69
 fa51d583742bdf1e76e2c0">Docker::ps</a>(all, prefix);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  }</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#afe6010e3ea6c5ee3538baaf2af6289b3">  110</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Docker::Image&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#afe6010e3ea6c5ee3538baaf2af6289b3">_pull</a>(</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;      <span class="keyword">const</span> std::string&amp; directory,</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;      <span class="keyword">const</span> std::string&amp; <a class="code" href="namespacemesos_1_1uri_1_1docker.html#abbd9f55734f0
 b832bc5a87c3ee5d449e">image</a>,</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;      <span class="keywordtype">bool</span> force)<span class="keyword"> const</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#ad4131f2a6b66ab4661339c51d20d812d">Docker::pull</a>(directory, image, force);</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a9eda8808316703e3f20865fe5a536f49">  118</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&
 lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a9eda8808316703e3f20865fe5a536f49">_stop</a>(</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;      <span class="keyword">const</span> std::string&amp; containerName,</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;      <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>&amp; timeout,</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;      <span class="keywordtype">bool</span> <span class="keyword">remove</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#a4f45c8632608059b07157a650334
 74fc">Docker::stop</a>(containerName, timeout, <span class="keyword">remove</span>);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  }</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#ab833bff8d560a4af5dd80dd37cc73b93">  126</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Docker::Container&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#ab833bff8d560a4af5dd80dd37cc73b93">_inspect</a>(</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;      <span class="keyword">const</span> std::string&amp; containerName,</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option
 &lt;Duration&gt;</a>&amp; retryInterval)</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  {</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classDocker.html#a3be28ab0231c0fefaf839661b790c457">Docker::inspect</a>(containerName, retryInterval);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  }</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;};</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">// Definition of a mock DockerContainerizer to be used in tests with gmock.</span></div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="c
 lassmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">  136</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">MockDockerContainerizer</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html">slave::DockerContainerizer</a> {</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">MockDockerContainerizer</a>(</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">slave::Flags</a>&amp; <a class="code" href="namespaceflags.html">flags</a>,</div><div class="
 line"><a name="l00140"></a><span class="lineno">  140</span>&#160;      <a class="code" href="classmesos_1_1internal_1_1slave_1_1Fetcher.html">slave::Fetcher</a>* fetcher,</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;mesos::slave::ContainerLogger&gt;</a>&amp; logger,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;      <a class="code" href="classprocess_1_1Shared.html">process::Shared&lt;Docker&gt;</a> <a class="code" href="namespacedocker.html">docker</a>,</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;NvidiaComponents&gt;</a>&amp; nvidia = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</di
 v><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">MockDockerContainerizer</a>(</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;slave::DockerContainerizerProcess&gt;</a>&amp; <a class="code" href="namespaceprocess.html">process</a>);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">MockDockerContainerizer</a>();</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class
 mesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a0e3293396509e28707b65c0fb53d720c">  150</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a0e3293396509e28707b65c0fb53d720c">initialize</a>()</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;  {</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="comment">// NOTE: See TestContainerizer::setup for why we use</span></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="comment">// &#39;EXPECT_CALL&#39; and &#39;WillRepeatedly&#39; here instead of</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="comment">// &#39;ON_CALL&#39; and &#39;WillByDefault&#39;.</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    EXPECT_C
 ALL(*<span class="keyword">this</span>, <a class="code" href="namespacemesos_1_1internal_1_1local.html#a49af0f1418069661970870214d98d0c4">launch</a>(_, _, _, _))</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;      .WillRepeatedly(Invoke(<span class="keyword">this</span>, &amp;<a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a7428a926b7066d86f6cce6b71fa11e6b">MockDockerContainerizer::_launch</a>));</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    EXPECT_CALL(*<span class="keyword">this</span>, <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>(_, _))</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;      .WillRepeatedly(Invoke(<span class="keyword">this</span>, &amp;<a class="code" href="classmesos_1_
 1internal_1_1tests_1_1MockDockerContainerizer.html#a55a74a8cbacea3c7590e5e5e3e81ba31">MockDockerContainerizer::_update</a>));</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;  }</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;  MOCK_METHOD4(</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;      <a class="code" href="namespacemesos_1_1internal_1_1local.html#a49af0f1418069661970870214d98d0c4">launch</a>,</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;slave::Containerizer::LaunchResult&gt;</a>(</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;          <span class="keyword">const</span> ContainerID&amp;,</div><div class="line"><a name="l00166"></a><span cla
 ss="lineno">  166</span>&#160;          <span class="keyword">const</span> mesos::slave::ContainerConfig&amp;,</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;          <span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp;,</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;          <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp;));</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;  MOCK_METHOD2(</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;      <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>,</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;      <a class="code" href="classprocess
 _1_1Future.html">process::Future&lt;Nothing&gt;</a>(</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;          <span class="keyword">const</span> ContainerID&amp;,</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;          <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&amp;));</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <span class="comment">// Default &#39;launch&#39; implementation (necessary because we can&#39;t just</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  <span class="comment">// use &amp;slave::DockerContainerizer::launch with &#39;Invoke&#39;).</span></div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerC
 ontainerizer.html#a7428a926b7066d86f6cce6b71fa11e6b">  178</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;slave::Containerizer::LaunchResult&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a7428a926b7066d86f6cce6b71fa11e6b">_launch</a>(</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;      <span class="keyword">const</span> ContainerID&amp; containerId,</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;      <span class="keyword">const</span> mesos::slave::ContainerConfig&amp; containerConfig,</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;      <span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00182"></a><span class="l
 ineno">  182</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; pidCheckpointPath)</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  {</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html#a61ba4cf750d8896d2034af8d9128c218">slave::DockerContainerizer::launch</a>(</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        containerId,</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        containerConfig,</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        environment,</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        pidCheckpointPath);</div><div class="line"><a name="l00189"
 ></a><span class="lineno">  189</span>&#160;  }</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a55a74a8cbacea3c7590e5e5e3e81ba31">  191</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a55a74a8cbacea3c7590e5e5e3e81ba31">_update</a>(</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;      <span class="keyword">const</span> ContainerID&amp; containerId,</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&amp; resources)</div><div class="line"><a name="l00194"></a><span class="lineno">  194</spa
 n>&#160;  {</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html#a2ca322cbd1737f4f03c5b96ee882e5a6">slave::DockerContainerizer::update</a>(</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        containerId,</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        resources);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;  }</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;};</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment">// Definition of a mock DockerContainerizerProce
 ss to be used in tests</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment">// with gmock.</span></div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">  204</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">MockDockerContainerizerProcess</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizerProcess.html">slave::DockerContainerizerProcess</a></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;  <a class="code" href="classmesos_1_1int
 ernal_1_1tests_1_1MockDockerContainerizerProcess.html">MockDockerContainerizerProcess</a>(</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">slave::Flags</a>&amp; <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;      <a class="code" href="classmesos_1_1internal_1_1slave_1_1Fetcher.html">slave::Fetcher</a>* fetcher,</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;mesos::slave::ContainerLogger&gt;</a>&amp; logger,</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Shared.html">process::Shared&lt;Docker&gt;<
 /a>&amp; <a class="code" href="namespacedocker.html">docker</a>,</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;NvidiaComponents&gt;</a>&amp; nvidia = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">MockDockerContainerizerProcess</a>();</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;  MOCK_METHOD1(</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;      <a class="code" href="namespaceflags.html#a27c0d145bbd7c
 2870512fd59a50222d9">fetch</a>,</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>(<span class="keyword">const</span> ContainerID&amp;));</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;  MOCK_METHOD1(</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;      <a class="code" href="classDocker.html#ad4131f2a6b66ab4661339c51d20d812d">pull</a>,</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;      <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>(<span class="keyword">const</span> ContainerID&amp;));</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno">
 <a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#acfec378344dbde665f5758af9f55b974">  224</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#acfec378344dbde665f5758af9f55b974">_fetch</a>(<span class="keyword">const</span> ContainerID&amp; containerId)</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;  {</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizerProcess.html#aebc5890cccfbeaf44b48be7b33c676e9">slave::DockerContainerizerProcess::fetch</a>(containerId);</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  }</div><div class="line"><a name="l00228"></a><span class="lineno">  228<
 /span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#ad452ce42356e37f52a734dbd408aaf02">  229</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#ad452ce42356e37f52a734dbd408aaf02">_pull</a>(<span class="keyword">const</span> ContainerID&amp; containerId)</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  {</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizerProcess.html#acdb0e3fe92ec605185e566fb27e7aeff">slave::DockerContainerizerProcess::pull</a>(containerId);</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160
 ;  }</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;};</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;} <span class="comment">// namespace tests {</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;} <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;} <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="preprocessor">#endif // __TESTS_MOCKDOCKER_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
 <div class="ttc" id="resources_8hpp_html"><div class="ttname"><a href="resources_8hpp.html">resources.hpp</a></div></div>
 <div class="ttc" id="classmesos_1_1internal_1_1slave_1_1DockerContainerizerProcess_html_acdb0e3fe92ec605185e566fb27e7aeff"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1DockerContainerizerProcess.html#acdb0e3fe92ec605185e566fb27e7aeff">mesos::internal::slave::DockerContainerizerProcess::pull</a></div><div class="ttdeci">virtual process::Future&lt; Nothing &gt; pull(const ContainerID &amp;containerId)</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer_html"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">mesos::internal::tests::MockDockerContainerizer</a></div><div class="ttdef"><b>Definition:</b> mock_docker.hpp:137</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer_html"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html">mesos::internal::tests::MockDockerContainerizer</a></div><div class="ttdef"><b>Definition:</b> mock_docker.hpp:136</div></div>
 <div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option&lt; JSON::Object &gt;</a></div></div>
 <div class="ttc" id="namespacerouting_1_1filter_1_1basic_html_a088d88712e011acb0673da92045b365b"><div class="ttname"><a href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">routing::filter::basic::update</a></div><div class="ttdeci">Try&lt; bool &gt; update(const std::string &amp;link, const Handle &amp;parent, uint16_t protocol, const action::Mirror &amp;mirror)</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MockDocker_html_acb65df9983566558465b3a3464724c12"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#acb65df9983566558465b3a3464724c12">mesos::internal::tests::MockDocker::_ps</a></div><div class="ttdeci">process::Future&lt; std::list&lt; Docker::Container &gt; &gt; _ps(bool all, const Option&lt; std::string &gt; &amp;prefix) const </div><div class="ttdef"><b>Definition:</b> mock_docker.hpp:104</div></div>
 <div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Fetcher_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Fetcher.html">mesos::internal::slave::Fetcher</a></div><div class="ttdef"><b>Definition:</b> fetcher.hpp:49</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1DockerContainerizer_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html">mesos::internal::slave::DockerContainerizer</a></div><div class="ttdef"><b>Definition:</b> docker.hpp:64</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1DockerContainerizer_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html">mesos::internal::slave::DockerContainerizer</a></div><div class="ttdef"><b>Definition:</b> docker.hpp:63</div></div>
 <div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MockDocker_html_a7cb4dbff2995fd68670da9702246672b"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a7cb4dbff2995fd68670da9702246672b">mesos::internal::tests::MockDocker::MockDocker</a></div><div class="ttdeci">MockDocker(const std::string &amp;path, const std::string &amp;socket, const Option&lt; JSON::Object &gt; &amp;config=None())</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MockDocker_html_a9eda8808316703e3f20865fe5a536f49"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a9eda8808316703e3f20865fe5a536f49">mesos::internal::tests::MockDocker::_stop</a></div><div class="ttdeci">process::Future&lt; Nothing &gt; _stop(const std::string &amp;containerName, const Duration &amp;timeout, bool remove) const </div><div class="ttdef"><b>Definition:</b> mock_docker.hpp:119</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess_html"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">mesos::internal::tests::MockDockerContainerizerProcess</a></div><div class="ttdef"><b>Definition:</b> mock_docker.hpp:205</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MockDocker_html_a9eda8808316703e3f20865fe5a536f49"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a9eda8808316703e3f20865fe5a536f49">mesos::internal::tests::MockDocker::_stop</a></div><div class="ttdeci">process::Future&lt; Nothing &gt; _stop(const std::string &amp;containerName, const Duration &amp;timeout, bool remove) const </div><div class="ttdef"><b>Definition:</b> mock_docker.hpp:118</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess_html"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html">mesos::internal::tests::MockDockerContainerizerP

<TRUNCATED>