coverage/index.html in vagrant-windows-1.3.0.pre.2 vs coverage/index.html in vagrant-windows-1.3.0.pre.3
- old
+ new
@@ -12,31 +12,31 @@
<body>
<div id="loading">
<img src="./assets/0.7.1/loading.gif" alt="loading"/>
</div>
<div id="wrapper" style="display:none;">
- <div class="timestamp">Generated <abbr class="timeago" title="2013-10-30T09:37:37-07:00">2013-10-30T09:37:37-07:00</abbr></div>
+ <div class="timestamp">Generated <abbr class="timeago" title="2013-11-04T14:20:57-08:00">2013-11-04T14:20:57-08:00</abbr></div>
<ul class="group_tabs"></ul>
<div id="content">
<div class="file_list_container" id="AllFiles">
<h2>
<span class="group_name">All Files</span>
- (<span class="covered_percent"><span class="red">56.36%</span></span>
+ (<span class="covered_percent"><span class="red">72.51%</span></span>
covered at
<span class="covered_strength">
<span class="green">
- 1.11
+ 1.42
</span>
</span> hits/line)
</h2>
<a name="AllFiles"></a>
<div>
- <b>26</b> files in total.
- <b>731</b> relevant lines.
- <span class="green"><b>412</b> lines covered</span> and
- <span class="red"><b>319</b> lines missed </span>
+ <b>29</b> files in total.
+ <b>793</b> relevant lines.
+ <span class="green"><b>575</b> lines covered</span> and
+ <span class="red"><b>218</b> lines missed </span>
</div>
<table class="file_list">
<thead>
<tr>
<th>File</th>
@@ -50,59 +50,69 @@
</thead>
<tbody>
<tr>
<td class="strong"><a href="#a339881f7104a1cf05fd48bd4ccc36f8b0bb43e2" class="src_link" title="lib/vagrant-windows.rb">lib/vagrant-windows.rb</a></td>
- <td class="green strong">90.91 %</td>
+ <td class="green strong">100.0 %</td>
<td>24</td>
<td>11</td>
- <td>10</td>
- <td>1</td>
- <td>1.3</td>
+ <td>11</td>
+ <td>0</td>
+ <td>2.6</td>
</tr>
<tr>
<td class="strong"><a href="#dec1987bc6b58f2134e55c26a9e0d4f67a0e5a04" class="src_link" title="lib/vagrant-windows/communication/guestnetwork.rb">lib/vagrant-windows/communication/guestnetwork.rb</a></td>
- <td class="red strong">35.0 %</td>
+ <td class="yellow strong">81.67 %</td>
<td>133</td>
<td>60</td>
- <td>21</td>
- <td>39</td>
- <td>0.4</td>
+ <td>49</td>
+ <td>11</td>
+ <td>1.5</td>
</tr>
<tr>
<td class="strong"><a href="#9c5c265071fce540a59ec662bb558312c6c54c4b" class="src_link" title="lib/vagrant-windows/communication/winrmcommunicator.rb">lib/vagrant-windows/communication/winrmcommunicator.rb</a></td>
- <td class="red strong">39.71 %</td>
- <td>147</td>
- <td>68</td>
- <td>27</td>
- <td>41</td>
- <td>0.4</td>
+ <td class="red strong">75.0 %</td>
+ <td>108</td>
+ <td>56</td>
+ <td>42</td>
+ <td>14</td>
+ <td>1.3</td>
</tr>
<tr>
<td class="strong"><a href="#46df79007581e23184efb74db86daf5c58254ec5" class="src_link" title="lib/vagrant-windows/communication/winrmfinder.rb">lib/vagrant-windows/communication/winrmfinder.rb</a></td>
- <td class="red strong">70.83 %</td>
- <td>48</td>
- <td>24</td>
- <td>17</td>
- <td>7</td>
- <td>1.2</td>
+ <td class="red strong">78.26 %</td>
+ <td>51</td>
+ <td>23</td>
+ <td>18</td>
+ <td>5</td>
+ <td>1.3</td>
</tr>
<tr>
<td class="strong"><a href="#206e71d4215a183bebef0dee5b2d9ce2fe77aea6" class="src_link" title="lib/vagrant-windows/communication/winrmshell.rb">lib/vagrant-windows/communication/winrmshell.rb</a></td>
- <td class="red strong">41.1 %</td>
- <td>139</td>
- <td>73</td>
- <td>30</td>
- <td>43</td>
- <td>0.4</td>
+ <td class="green strong">92.5 %</td>
+ <td>159</td>
+ <td>80</td>
+ <td>74</td>
+ <td>6</td>
+ <td>5.4</td>
</tr>
<tr>
+ <td class="strong"><a href="#defc50d3a200328d3130424dcb644d83faccadaa" class="src_link" title="lib/vagrant-windows/communication/winrmshell_factory.rb">lib/vagrant-windows/communication/winrmshell_factory.rb</a></td>
+ <td class="yellow strong">90.0 %</td>
+ <td>34</td>
+ <td>10</td>
+ <td>9</td>
+ <td>1</td>
+ <td>0.9</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#ec6c148e559f5558fb277fea15c45c85fa409d28" class="src_link" title="lib/vagrant-windows/config/windows.rb">lib/vagrant-windows/config/windows.rb</a></td>
<td class="red strong">76.19 %</td>
<td>35</td>
<td>21</td>
<td>16</td>
@@ -140,16 +150,16 @@
<td>1.3</td>
</tr>
<tr>
<td class="strong"><a href="#54eeb382b101f2c6d7d6a73b691b4d03621b9f54" class="src_link" title="lib/vagrant-windows/helper.rb">lib/vagrant-windows/helper.rb</a></td>
- <td class="green strong">100.0 %</td>
- <td>33</td>
+ <td class="red strong">75.0 %</td>
+ <td>40</td>
+ <td>16</td>
<td>12</td>
- <td>12</td>
- <td>0</td>
- <td>1.9</td>
+ <td>4</td>
+ <td>1.3</td>
</tr>
<tr>
<td class="strong"><a href="#1ec97590bc444a2aa68922561c688c654fd3dfff" class="src_link" title="lib/vagrant-windows/monkey_patches/lib/vagrant/machine.rb">lib/vagrant-windows/monkey_patches/lib/vagrant/machine.rb</a></td>
<td class="red strong">47.06 %</td>
@@ -190,26 +200,26 @@
<td>0</td>
</tr>
<tr>
<td class="strong"><a href="#445364063a8c3e2a428ea7fe4036b1ec8a3a1277" class="src_link" title="lib/vagrant-windows/monkey_patches/plugins/provisioners/chef/provisioner/chef_solo.rb">lib/vagrant-windows/monkey_patches/plugins/provisioners/chef/provisioner/chef_solo.rb</a></td>
- <td class="red strong">32.14 %</td>
- <td>131</td>
- <td>56</td>
- <td>18</td>
- <td>38</td>
+ <td class="red strong">34.0 %</td>
+ <td>118</td>
+ <td>50</td>
+ <td>17</td>
+ <td>33</td>
<td>0.3</td>
</tr>
<tr>
<td class="strong"><a href="#9387455ce27f9821d2f4388bcb52524681914003" class="src_link" title="lib/vagrant-windows/monkey_patches/plugins/provisioners/puppet/provisioner/puppet.rb">lib/vagrant-windows/monkey_patches/plugins/provisioners/puppet/provisioner/puppet.rb</a></td>
- <td class="red strong">21.05 %</td>
- <td>118</td>
- <td>57</td>
- <td>12</td>
- <td>45</td>
- <td>0.2</td>
+ <td class="red strong">26.15 %</td>
+ <td>129</td>
+ <td>65</td>
+ <td>17</td>
+ <td>48</td>
+ <td>0.3</td>
</tr>
<tr>
<td class="strong"><a href="#6093af51a0c7e6f795cd8cd2111d8d673bde18c3" class="src_link" title="lib/vagrant-windows/monkey_patches/plugins/provisioners/puppet/provisioner/puppet_server.rb">lib/vagrant-windows/monkey_patches/plugins/provisioners/puppet/provisioner/puppet_server.rb</a></td>
<td class="green strong">100.0 %</td>
@@ -220,15 +230,15 @@
<td>0</td>
</tr>
<tr>
<td class="strong"><a href="#8dd805604e0326933cecd09151f4d1dac947b74c" class="src_link" title="lib/vagrant-windows/monkey_patches/plugins/provisioners/shell/provisioner.rb">lib/vagrant-windows/monkey_patches/plugins/provisioners/shell/provisioner.rb</a></td>
- <td class="red strong">32.43 %</td>
+ <td class="red strong">31.58 %</td>
<td>89</td>
- <td>37</td>
+ <td>38</td>
<td>12</td>
- <td>25</td>
+ <td>26</td>
<td>0.3</td>
</tr>
<tr>
<td class="strong"><a href="#ee8701360a03270a2ab0f3354046766cf5f92da8" class="src_link" title="lib/vagrant-windows/plugin.rb">lib/vagrant-windows/plugin.rb</a></td>
@@ -239,15 +249,25 @@
<td>22</td>
<td>0.6</td>
</tr>
<tr>
+ <td class="strong"><a href="#2942f83d8bbaec9486dce51dfc24c9b92f3ea2ee" class="src_link" title="lib/vagrant-windows/windows_machine.rb">lib/vagrant-windows/windows_machine.rb</a></td>
+ <td class="red strong">68.0 %</td>
+ <td>76</td>
+ <td>25</td>
+ <td>17</td>
+ <td>8</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#13b6aec4445d4eeafa03e964d1e1486037abd7a4" class="src_link" title="spec/vagrant-windows/helper_spec.rb">spec/vagrant-windows/helper_spec.rb</a></td>
<td class="green strong">100.0 %</td>
- <td>57</td>
- <td>29</td>
- <td>29</td>
+ <td>39</td>
+ <td>19</td>
+ <td>19</td>
<td>0</td>
<td>1.0</td>
</tr>
<tr>
@@ -269,10 +289,20 @@
<td>0</td>
<td>1.8</td>
</tr>
<tr>
+ <td class="strong"><a href="#43f77545cf4f67647d0945fb930bc745e38cb962" class="src_link" title="spec/vagrant-windows/windows_machine_spec.rb">spec/vagrant-windows/windows_machine_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>44</td>
+ <td>28</td>
+ <td>28</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#5a677aee80d575d53b9b20a950767cd27c7f2e9e" class="src_link" title="spec/vagrant-windows/winrm_config_spec.rb">spec/vagrant-windows/winrm_config_spec.rb</a></td>
<td class="green strong">100.0 %</td>
<td>31</td>
<td>20</td>
<td>20</td>
@@ -280,36 +310,36 @@
<td>3.9</td>
</tr>
<tr>
<td class="strong"><a href="#844842835a3c9ba296ba1e91954dcd0979df99b4" class="src_link" title="spec/vagrant-windows/winrmcommunicator_spec.rb">spec/vagrant-windows/winrmcommunicator_spec.rb</a></td>
- <td class="red strong">50.0 %</td>
- <td>28</td>
- <td>14</td>
- <td>7</td>
- <td>7</td>
- <td>0.5</td>
+ <td class="green strong">100.0 %</td>
+ <td>47</td>
+ <td>24</td>
+ <td>24</td>
+ <td>0</td>
+ <td>1.1</td>
</tr>
<tr>
<td class="strong"><a href="#5bf85486dfa43acdf015a1bc09ffbc798937c5ed" class="src_link" title="spec/vagrant-windows/winrmfinder_spec.rb">spec/vagrant-windows/winrmfinder_spec.rb</a></td>
<td class="green strong">100.0 %</td>
- <td>44</td>
- <td>24</td>
- <td>24</td>
+ <td>42</td>
+ <td>22</td>
+ <td>22</td>
<td>0</td>
<td>1.2</td>
</tr>
<tr>
<td class="strong"><a href="#25447093b9cbe29e6009455b5e95c517f212a004" class="src_link" title="spec/vagrant-windows/winrmshell_spec.rb">spec/vagrant-windows/winrmshell_spec.rb</a></td>
- <td class="red strong">45.0 %</td>
+ <td class="green strong">100.0 %</td>
<td>39</td>
<td>20</td>
- <td>9</td>
- <td>11</td>
- <td>0.5</td>
+ <td>20</td>
+ <td>0</td>
+ <td>1.5</td>
</tr>
</tbody>
</table>
</div>
@@ -327,15 +357,15 @@
<div class="source_files">
<div class="source_table" id="a339881f7104a1cf05fd48bd4ccc36f8b0bb43e2">
<div class="header">
<h3>lib/vagrant-windows.rb</h3>
- <h4><span class="green">90.91 %</span> covered</h4>
+ <h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>11</b> relevant lines.
- <span class="green"><b>10</b> lines covered</span> and
- <span class="red"><b>1</b> lines missed.</span>
+ <span class="green"><b>11</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -368,12 +398,12 @@
<span class="hits">1</span>
<code class="ruby"> def self.vagrant_windows_root</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="6">
- <span class="hits">3</span>
+ <li class="covered" data-hits="8" data-linenumber="6">
+ <span class="hits">8</span>
<code class="ruby"> @vagrant_windows_root ||= Pathname.new(File.expand_path("../../", __FILE__))</code>
</li>
<li class="never" data-hits="" data-linenumber="7">
@@ -392,13 +422,13 @@
<span class="hits">1</span>
<code class="ruby"> def self.load_script(script_file_name)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="10">
+ <li class="covered" data-hits="5" data-linenumber="10">
+ <span class="hits">5</span>
-
<code class="ruby"> File.read(expand_script_path(script_file_name))</code>
</li>
<li class="never" data-hits="" data-linenumber="11">
@@ -440,12 +470,12 @@
<span class="hits">1</span>
<code class="ruby"> def self.expand_script_path(script_file_name)</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="18">
- <span class="hits">2</span>
+ <li class="covered" data-hits="7" data-linenumber="18">
+ <span class="hits">7</span>
<code class="ruby"> File.expand_path("lib/vagrant-windows/scripts/#{script_file_name}", VagrantWindows.vagrant_windows_root)</code>
</li>
<li class="never" data-hits="" data-linenumber="19">
@@ -489,15 +519,15 @@
</div>
<div class="source_table" id="dec1987bc6b58f2134e55c26a9e0d4f67a0e5a04">
<div class="header">
<h3>lib/vagrant-windows/communication/guestnetwork.rb</h3>
- <h4><span class="red">35.0 %</span> covered</h4>
+ <h4><span class="yellow">81.67 %</span> covered</h4>
<div>
<b>60</b> relevant lines.
- <span class="green"><b>21</b> lines covered</span> and
- <span class="red"><b>39</b> lines missed.</span>
+ <span class="green"><b>49</b> lines covered</span> and
+ <span class="red"><b>11</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -608,25 +638,25 @@
<span class="hits">1</span>
<code class="ruby"> def initialize(winrmshell)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="19">
+ <li class="covered" data-hits="1" data-linenumber="19">
+ <span class="hits">1</span>
-
<code class="ruby"> @logger = Log4r::Logger.new("vagrant_windows::communication::winrmshell")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="20">
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
-
<code class="ruby"> @logger.debug("initializing WinRMShell")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="21">
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
-
<code class="ruby"> @winrmshell = winrmshell</code>
</li>
<li class="never" data-hits="" data-linenumber="22">
@@ -668,13 +698,13 @@
<span class="hits">1</span>
<code class="ruby"> def network_adapters()</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="29">
+ <li class="covered" data-hits="3" data-linenumber="29">
+ <span class="hits">3</span>
-
<code class="ruby"> wsman_version() == 2? network_adapters_v2_winrm() : network_adapters_v3_winrm() </code>
</li>
<li class="never" data-hits="" data-linenumber="30">
@@ -710,49 +740,49 @@
<span class="hits">1</span>
<code class="ruby"> def is_dhcp_enabled(nic_index)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="36">
+ <li class="covered" data-hits="3" data-linenumber="36">
+ <span class="hits">3</span>
-
<code class="ruby"> has_dhcp_enabled = false</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="37">
+ <li class="covered" data-hits="3" data-linenumber="37">
+ <span class="hits">3</span>
-
<code class="ruby"> cmd = "Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter \"Index=#{nic_index} and DHCPEnabled=True\""</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="38">
+ <li class="covered" data-hits="3" data-linenumber="38">
+ <span class="hits">3</span>
-
<code class="ruby"> @winrmshell.powershell(cmd) do |type, line|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="39">
+ <li class="covered" data-hits="6" data-linenumber="39">
+ <span class="hits">6</span>
-
<code class="ruby"> has_dhcp_enabled = !line.nil?</code>
</li>
<li class="never" data-hits="" data-linenumber="40">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="41">
+ <li class="covered" data-hits="3" data-linenumber="41">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.debug("NIC #{nic_index} has DHCP enabled: #{has_dhcp_enabled}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="42">
+ <li class="covered" data-hits="3" data-linenumber="42">
+ <span class="hits">3</span>
-
<code class="ruby"> has_dhcp_enabled</code>
</li>
<li class="never" data-hits="" data-linenumber="43">
@@ -794,19 +824,19 @@
<span class="hits">1</span>
<code class="ruby"> def configure_dhcp_interface(nic_index, net_connection_id)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="50">
+ <li class="covered" data-hits="1" data-linenumber="50">
+ <span class="hits">1</span>
-
<code class="ruby"> @logger.info("Configuring NIC #{net_connection_id} for DHCP")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="51">
+ <li class="covered" data-hits="1" data-linenumber="51">
+ <span class="hits">1</span>
-
<code class="ruby"> if !is_dhcp_enabled(nic_index)</code>
</li>
<li class="missed" data-hits="0" data-linenumber="52">
@@ -878,31 +908,31 @@
<span class="hits">1</span>
<code class="ruby"> def configure_static_interface(nic_index, net_connection_id, ip, netmask)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="64">
+ <li class="covered" data-hits="1" data-linenumber="64">
+ <span class="hits">1</span>
-
<code class="ruby"> @logger.info("Configuring NIC #{net_connection_id} using static ip #{ip}")</code>
</li>
<li class="never" data-hits="" data-linenumber="65">
<code class="ruby"> #netsh interface ip set address "Local Area Connection 2" static 192.168.33.10 255.255.255.0</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="66">
+ <li class="covered" data-hits="1" data-linenumber="66">
+ <span class="hits">1</span>
-
<code class="ruby"> netsh = "netsh interface ip set address \"#{net_connection_id}\" static #{ip} #{netmask}"</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="67">
+ <li class="covered" data-hits="1" data-linenumber="67">
+ <span class="hits">1</span>
-
<code class="ruby"> @winrmshell.powershell(netsh)</code>
</li>
<li class="never" data-hits="" data-linenumber="68">
@@ -938,25 +968,25 @@
<span class="hits">1</span>
<code class="ruby"> def set_all_networks_to_work()</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="74">
+ <li class="covered" data-hits="1" data-linenumber="74">
+ <span class="hits">1</span>
-
<code class="ruby"> @logger.info("Setting all networks to 'Work Network'")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="75">
+ <li class="covered" data-hits="1" data-linenumber="75">
+ <span class="hits">1</span>
-
<code class="ruby"> command = VagrantWindows.load_script("set_work_network.ps1")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="76">
+ <li class="covered" data-hits="1" data-linenumber="76">
+ <span class="hits">1</span>
-
<code class="ruby"> @winrmshell.powershell(command)</code>
</li>
<li class="never" data-hits="" data-linenumber="77">
@@ -1016,49 +1046,49 @@
<span class="hits">1</span>
<code class="ruby"> def wsman_version()</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="87">
+ <li class="covered" data-hits="3" data-linenumber="87">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.debug("querying WSMan version")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="88">
+ <li class="covered" data-hits="3" data-linenumber="88">
+ <span class="hits">3</span>
-
<code class="ruby"> version = ''</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="89">
+ <li class="covered" data-hits="3" data-linenumber="89">
+ <span class="hits">3</span>
-
<code class="ruby"> @winrmshell.powershell(PS_GET_WSMAN_VER) do |type, line|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="90">
+ <li class="covered" data-hits="6" data-linenumber="90">
+ <span class="hits">6</span>
-
<code class="ruby"> version = version + "#{line}" if type == :stdout && !line.nil?</code>
</li>
<li class="never" data-hits="" data-linenumber="91">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="92">
+ <li class="covered" data-hits="3" data-linenumber="92">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.debug("wsman version: #{version}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="93">
+ <li class="covered" data-hits="3" data-linenumber="93">
+ <span class="hits">3</span>
-
<code class="ruby"> Integer(version)</code>
</li>
<li class="never" data-hits="" data-linenumber="94">
@@ -1106,13 +1136,13 @@
<span class="hits">1</span>
<code class="ruby"> def network_adapters_v2_winrm()</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="102">
+ <li class="covered" data-hits="3" data-linenumber="102">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.debug("querying network adapters")</code>
</li>
<li class="never" data-hits="" data-linenumber="103">
@@ -1124,25 +1154,25 @@
<code class="ruby"> # http://msdn.microsoft.com/en-us/library/windows/desktop/aa394216(v=vs.85).aspx</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="105">
+ <li class="covered" data-hits="3" data-linenumber="105">
+ <span class="hits">3</span>
-
<code class="ruby"> adapters = @winrmshell.wql(WQL_NET_ADAPTERS_V2)[:win32_network_adapter]</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="106">
+ <li class="covered" data-hits="3" data-linenumber="106">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.debug("#{adapters.inspect}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="107">
+ <li class="covered" data-hits="3" data-linenumber="107">
+ <span class="hits">3</span>
-
<code class="ruby"> return adapters</code>
</li>
<li class="never" data-hits="" data-linenumber="108">
@@ -1305,15 +1335,15 @@
</div>
<div class="source_table" id="9c5c265071fce540a59ec662bb558312c6c54c4b">
<div class="header">
<h3>lib/vagrant-windows/communication/winrmcommunicator.rb</h3>
- <h4><span class="red">39.71 %</span> covered</h4>
+ <h4><span class="red">75.0 %</span> covered</h4>
<div>
- <b>68</b> relevant lines.
- <span class="green"><b>27</b> lines covered</span> and
- <span class="red"><b>41</b> lines missed.</span>
+ <b>56</b> relevant lines.
+ <span class="green"><b>42</b> lines covered</span> and
+ <span class="red"><b>14</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -1331,11 +1361,11 @@
</li>
<li class="covered" data-hits="1" data-linenumber="3">
<span class="hits">1</span>
- <code class="ruby">require_relative '../errors'</code>
+ <code class="ruby">require_relative 'winrmshell_factory'</code>
</li>
<li class="covered" data-hits="1" data-linenumber="4">
<span class="hits">1</span>
@@ -1346,857 +1376,623 @@
<span class="hits">1</span>
<code class="ruby">require_relative 'winrmfinder'</code>
</li>
- <li class="never" data-hits="" data-linenumber="6">
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
-
- <code class="ruby"></code>
+ <code class="ruby">require_relative '../errors'</code>
</li>
<li class="covered" data-hits="1" data-linenumber="7">
<span class="hits">1</span>
- <code class="ruby">module VagrantWindows</code>
+ <code class="ruby">require_relative '../windows_machine'</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="8">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="8">
- <code class="ruby"> module Communication</code>
+
+ <code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="9">
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
-
- <code class="ruby"> # Provides communication with the VM via WinRM.</code>
+ <code class="ruby">module VagrantWindows</code>
</li>
<li class="covered" data-hits="1" data-linenumber="10">
<span class="hits">1</span>
- <code class="ruby"> class WinRMCommunicator < Vagrant.plugin("2", :communicator)</code>
+ <code class="ruby"> module Communication</code>
</li>
<li class="never" data-hits="" data-linenumber="11">
- <code class="ruby"></code>
+ <code class="ruby"> # Provides communication channel for Vagrant commands via WinRM.</code>
</li>
<li class="covered" data-hits="1" data-linenumber="12">
<span class="hits">1</span>
- <code class="ruby"> attr_reader :logger</code>
+ <code class="ruby"> class WinRMCommunicator < Vagrant.plugin("2", :communicator)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="13">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="13">
- <code class="ruby"> attr_reader :machine</code>
- </li>
-
- <li class="covered" data-hits="1" data-linenumber="14">
- <span class="hits">1</span>
- <code class="ruby"> attr_reader :winrm_finder</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="15">
-
-
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="16">
+ <li class="covered" data-hits="1" data-linenumber="14">
<span class="hits">1</span>
<code class="ruby"> def self.match?(machine)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="17">
+ <li class="missed" data-hits="0" data-linenumber="15">
- <code class="ruby"> machine.config.vm.guest.eql? :windows</code>
+ <code class="ruby"> VagrantWindows::WindowsMachine.is_windows?(machine)</code>
</li>
- <li class="never" data-hits="" data-linenumber="18">
+ <li class="never" data-hits="" data-linenumber="16">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="19">
+ <li class="never" data-hits="" data-linenumber="17">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="20">
+ <li class="covered" data-hits="1" data-linenumber="18">
<span class="hits">1</span>
<code class="ruby"> def initialize(machine)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="21">
+ <li class="covered" data-hits="1" data-linenumber="19">
+ <span class="hits">1</span>
+ <code class="ruby"> @windows_machine = VagrantWindows::WindowsMachine.new(machine)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
- <code class="ruby"> @machine = machine</code>
+ <code class="ruby"> @winrm_shell_factory = WinRMShellFactory.new(@windows_machine, WinRMFinder.new(@windows_machine))</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="22">
+ <li class="never" data-hits="" data-linenumber="21">
- <code class="ruby"> @logger = Log4r::Logger.new("vagrant_windows::communication::winrmcommunicator")</code>
+ <code class="ruby"> </code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
-
- <code class="ruby"> @logger.debug("initializing WinRMCommunicator")</code>
+ <code class="ruby"> @logger = Log4r::Logger.new("vagrant_windows::communication::winrmcommunicator")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="24">
+ <li class="covered" data-hits="1" data-linenumber="23">
+ <span class="hits">1</span>
-
- <code class="ruby"> @winrm_finder = WinRMFinder.new(machine)</code>
+ <code class="ruby"> @logger.debug("initializing WinRMCommunicator")</code>
</li>
- <li class="never" data-hits="" data-linenumber="25">
+ <li class="never" data-hits="" data-linenumber="24">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="26">
+ <li class="never" data-hits="" data-linenumber="25">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="27">
+ <li class="covered" data-hits="1" data-linenumber="26">
<span class="hits">1</span>
<code class="ruby"> def ready?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="28">
+ <li class="missed" data-hits="0" data-linenumber="27">
- <code class="ruby"> logger.debug("Checking whether WinRM is ready...")</code>
+ <code class="ruby"> @logger.debug("Checking whether WinRM is ready...")</code>
</li>
- <li class="never" data-hits="" data-linenumber="29">
+ <li class="never" data-hits="" data-linenumber="28">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="30">
+ <li class="missed" data-hits="0" data-linenumber="29">
- <code class="ruby"> Timeout.timeout(@machine.config.winrm.timeout) do</code>
+ <code class="ruby"> Timeout.timeout(@windows_machine.winrm_config.timeout) do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="31">
+ <li class="missed" data-hits="0" data-linenumber="30">
- <code class="ruby"> session.powershell("hostname")</code>
+ <code class="ruby"> winrmshell.powershell("hostname")</code>
</li>
- <li class="never" data-hits="" data-linenumber="32">
+ <li class="never" data-hits="" data-linenumber="31">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="33">
+ <li class="never" data-hits="" data-linenumber="32">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="34">
+ <li class="missed" data-hits="0" data-linenumber="33">
- <code class="ruby"> logger.info("WinRM is ready!")</code>
+ <code class="ruby"> @logger.info("WinRM is ready!")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="35">
+ <li class="missed" data-hits="0" data-linenumber="34">
<code class="ruby"> return true</code>
</li>
- <li class="never" data-hits="" data-linenumber="36">
+ <li class="never" data-hits="" data-linenumber="35">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="37">
+ <li class="never" data-hits="" data-linenumber="36">
<code class="ruby"> rescue Vagrant::Errors::VagrantError => e</code>
</li>
- <li class="never" data-hits="" data-linenumber="38">
+ <li class="never" data-hits="" data-linenumber="37">
<code class="ruby"> # We catch a `VagrantError` which would signal that something went</code>
</li>
- <li class="never" data-hits="" data-linenumber="39">
+ <li class="never" data-hits="" data-linenumber="38">
<code class="ruby"> # wrong expectedly in the `connect`, which means we didn't connect.</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="40">
+ <li class="missed" data-hits="0" data-linenumber="39">
<code class="ruby"> @logger.info("WinRM not up: #{e.inspect}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="41">
+ <li class="missed" data-hits="0" data-linenumber="40">
<code class="ruby"> return false</code>
</li>
- <li class="never" data-hits="" data-linenumber="42">
+ <li class="never" data-hits="" data-linenumber="41">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="43">
+ <li class="never" data-hits="" data-linenumber="42">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="44">
+ <li class="covered" data-hits="1" data-linenumber="43">
<span class="hits">1</span>
<code class="ruby"> def execute(command, opts={}, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="45">
+ <li class="covered" data-hits="4" data-linenumber="44">
+ <span class="hits">4</span>
-
<code class="ruby"> opts = {</code>
</li>
- <li class="never" data-hits="" data-linenumber="46">
+ <li class="never" data-hits="" data-linenumber="45">
<code class="ruby"> :error_check => true,</code>
</li>
- <li class="never" data-hits="" data-linenumber="47">
+ <li class="never" data-hits="" data-linenumber="46">
<code class="ruby"> :error_class => VagrantWindows::Errors::WinRMExecutionError,</code>
</li>
- <li class="never" data-hits="" data-linenumber="48">
+ <li class="never" data-hits="" data-linenumber="47">
<code class="ruby"> :error_key => :winrm_execution_error,</code>
</li>
- <li class="never" data-hits="" data-linenumber="49">
+ <li class="never" data-hits="" data-linenumber="48">
<code class="ruby"> :command => command,</code>
</li>
- <li class="never" data-hits="" data-linenumber="50">
+ <li class="never" data-hits="" data-linenumber="49">
<code class="ruby"> :shell => :powershell</code>
</li>
- <li class="never" data-hits="" data-linenumber="51">
+ <li class="never" data-hits="" data-linenumber="50">
<code class="ruby"> }.merge(opts || {})</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="52">
+ <li class="covered" data-hits="4" data-linenumber="51">
+ <span class="hits">4</span>
-
<code class="ruby"> exit_status = do_execute(command, opts[:shell], &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="53">
+ <li class="covered" data-hits="4" data-linenumber="52">
+ <span class="hits">4</span>
-
<code class="ruby"> if opts[:error_check] && exit_status != 0</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="54">
+ <li class="covered" data-hits="2" data-linenumber="53">
+ <span class="hits">2</span>
-
<code class="ruby"> raise_execution_error(opts, exit_status)</code>
</li>
- <li class="never" data-hits="" data-linenumber="55">
+ <li class="never" data-hits="" data-linenumber="54">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="56">
+ <li class="covered" data-hits="2" data-linenumber="55">
+ <span class="hits">2</span>
-
<code class="ruby"> exit_status</code>
</li>
- <li class="never" data-hits="" data-linenumber="57">
+ <li class="never" data-hits="" data-linenumber="56">
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="58">
+ <li class="covered" data-hits="1" data-linenumber="57">
<span class="hits">1</span>
<code class="ruby"> alias_method :sudo, :execute</code>
</li>
- <li class="never" data-hits="" data-linenumber="59">
+ <li class="never" data-hits="" data-linenumber="58">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="60">
+ <li class="covered" data-hits="1" data-linenumber="59">
<span class="hits">1</span>
<code class="ruby"> def test(command, opts=nil)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="61">
+ <li class="missed" data-hits="0" data-linenumber="60">
<code class="ruby"> @logger.debug("Testing: #{command}")</code>
</li>
- <li class="never" data-hits="" data-linenumber="62">
+ <li class="never" data-hits="" data-linenumber="61">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="63">
+ <li class="never" data-hits="" data-linenumber="62">
<code class="ruby"> # HACK: to speed up Vagrant 1.2 OS detection, skip checking for *nix OS</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="64">
+ <li class="missed" data-hits="0" data-linenumber="63">
<code class="ruby"> return false unless (command =~ /^uname|^cat \/etc|^cat \/proc|grep 'Fedora/).nil?</code>
</li>
- <li class="never" data-hits="" data-linenumber="65">
+ <li class="never" data-hits="" data-linenumber="64">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="66">
+ <li class="missed" data-hits="0" data-linenumber="65">
<code class="ruby"> opts = { :error_check => false }.merge(opts || {})</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="67">
+ <li class="missed" data-hits="0" data-linenumber="66">
<code class="ruby"> execute(command, opts) == 0</code>
</li>
- <li class="never" data-hits="" data-linenumber="68">
+ <li class="never" data-hits="" data-linenumber="67">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="69">
+ <li class="never" data-hits="" data-linenumber="68">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="70">
+ <li class="covered" data-hits="1" data-linenumber="69">
<span class="hits">1</span>
<code class="ruby"> def upload(from, to)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="71">
+ <li class="covered" data-hits="2" data-linenumber="70">
+ <span class="hits">2</span>
-
<code class="ruby"> @logger.debug("Uploading: #{from} to #{to}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="72">
+ <li class="covered" data-hits="2" data-linenumber="71">
+ <span class="hits">2</span>
-
- <code class="ruby"> file = "winrm-upload-#{rand()}"</code>
+ <code class="ruby"> winrmshell.upload(from, to)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="73">
+ <li class="never" data-hits="" data-linenumber="72">
- <code class="ruby"> file_name = (session.cmd("echo %TEMP%\\#{file}"))[:data][0][:stdout].chomp</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="74">
-
-
- <code class="ruby"> session.powershell <<-EOH</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="75">
-
-
- <code class="ruby"> if(Test-Path #{to})</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="76">
-
-
- <code class="ruby"> {</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="77">
-
-
- <code class="ruby"> rm #{to}</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="78">
-
-
- <code class="ruby"> }</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="79">
-
-
- <code class="ruby"> EOH</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="80">
-
-
- <code class="ruby"> Base64.encode64(IO.binread(from)).gsub("\n",'').chars.to_a.each_slice(8000-file_name.size) do |chunk|</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="81">
-
-
- <code class="ruby"> out = session.cmd("echo #{chunk.join} >> \"#{file_name}\"")</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="82">
-
-
- <code class="ruby"> end</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="83">
-
-
- <code class="ruby"> session.powershell("mkdir $([System.IO.Path]::GetDirectoryName(\"#{to}\"))")</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="84">
-
-
- <code class="ruby"> session.powershell <<-EOH</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="85">
-
-
- <code class="ruby"> $base64_string = Get-Content \"#{file_name}\"</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="86">
-
-
- <code class="ruby"> $bytes = [System.Convert]::FromBase64String($base64_string) </code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="87">
-
-
- <code class="ruby"> $new_file = [System.IO.Path]::GetFullPath(\"#{to}\")</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="88">
-
-
- <code class="ruby"> [System.IO.File]::WriteAllBytes($new_file,$bytes)</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="89">
-
-
- <code class="ruby"> EOH</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="90">
-
-
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="91">
+ <li class="never" data-hits="" data-linenumber="73">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="92">
+ <li class="covered" data-hits="1" data-linenumber="74">
<span class="hits">1</span>
<code class="ruby"> def download(from, to=nil)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="93">
+ <li class="missed" data-hits="0" data-linenumber="75">
<code class="ruby"> @logger.warn("Downloading: #{from} to #{to} not supported on Windows guests")</code>
</li>
- <li class="never" data-hits="" data-linenumber="94">
+ <li class="never" data-hits="" data-linenumber="76">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="95">
+ <li class="never" data-hits="" data-linenumber="77">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="96">
-
-
- <code class="ruby"> # Runs a remote WQL query against the VM</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="97">
-
-
- <code class="ruby"> #</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="98">
-
-
- <code class="ruby"> # Note: This is not part of the standard Vagrant communicator interface, but</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="99">
-
-
- <code class="ruby"> # guest capabilities may need to use this.</code>
- </li>
-
- <li class="covered" data-hits="1" data-linenumber="100">
+ <li class="covered" data-hits="1" data-linenumber="78">
<span class="hits">1</span>
- <code class="ruby"> def wql(query)</code>
+ <code class="ruby"> def winrmshell=(winrmshell)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="101">
-
-
- <code class="ruby"> session.wql(query)</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="102">
-
-
- <code class="ruby"> end</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="103">
-
-
- <code class="ruby"> </code>
- </li>
-
- <li class="covered" data-hits="1" data-linenumber="104">
+ <li class="covered" data-hits="1" data-linenumber="79">
<span class="hits">1</span>
- <code class="ruby"> def set_winrmshell(winrmshell)</code>
+ <code class="ruby"> @winrmshell = winrmshell</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="105">
+ <li class="never" data-hits="" data-linenumber="80">
- <code class="ruby"> @session = winrmshell</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="106">
-
-
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="107">
+ <li class="never" data-hits="" data-linenumber="81">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="108">
+ <li class="covered" data-hits="1" data-linenumber="82">
<span class="hits">1</span>
- <code class="ruby"> def session</code>
+ <code class="ruby"> def winrmshell</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="109">
+ <li class="covered" data-hits="6" data-linenumber="83">
+ <span class="hits">6</span>
-
- <code class="ruby"> @session ||= new_session</code>
+ <code class="ruby"> @winrmshell ||= @winrm_shell_factory.create_winrm_shell()</code>
</li>
- <li class="never" data-hits="" data-linenumber="110">
+ <li class="never" data-hits="" data-linenumber="84">
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="111">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="85">
- <code class="ruby"> alias_method :winrmshell, :session</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="112">
-
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="113">
+ <li class="never" data-hits="" data-linenumber="86">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="114">
+ <li class="covered" data-hits="1" data-linenumber="87">
<span class="hits">1</span>
<code class="ruby"> protected</code>
</li>
- <li class="never" data-hits="" data-linenumber="115">
+ <li class="never" data-hits="" data-linenumber="88">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="116">
+ <li class="covered" data-hits="1" data-linenumber="89">
<span class="hits">1</span>
<code class="ruby"> def do_execute(command, shell, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="117">
+ <li class="covered" data-hits="4" data-linenumber="90">
+ <span class="hits">4</span>
-
<code class="ruby"> if shell.eql? :cmd</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="118">
+ <li class="missed" data-hits="0" data-linenumber="91">
- <code class="ruby"> session.cmd(command, &block)[:exitcode]</code>
+ <code class="ruby"> winrmshell.cmd(command, &block)[:exitcode]</code>
</li>
- <li class="never" data-hits="" data-linenumber="119">
+ <li class="never" data-hits="" data-linenumber="92">
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="120">
+ <li class="covered" data-hits="4" data-linenumber="93">
+ <span class="hits">4</span>
-
<code class="ruby"> command = VagrantWindows.load_script("command_alias.ps1") << "\r\n" << command</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="121">
+ <li class="covered" data-hits="4" data-linenumber="94">
+ <span class="hits">4</span>
-
- <code class="ruby"> session.powershell(command, &block)[:exitcode]</code>
+ <code class="ruby"> winrmshell.powershell(command, &block)[:exitcode]</code>
</li>
- <li class="never" data-hits="" data-linenumber="122">
+ <li class="never" data-hits="" data-linenumber="95">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="123">
+ <li class="never" data-hits="" data-linenumber="96">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="124">
+ <li class="never" data-hits="" data-linenumber="97">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="125">
+ <li class="covered" data-hits="1" data-linenumber="98">
<span class="hits">1</span>
<code class="ruby"> def raise_execution_error(opts, exit_code)</code>
</li>
- <li class="never" data-hits="" data-linenumber="126">
+ <li class="never" data-hits="" data-linenumber="99">
<code class="ruby"> # The error classes expect the translation key to be _key, but that makes for an ugly</code>
</li>
- <li class="never" data-hits="" data-linenumber="127">
+ <li class="never" data-hits="" data-linenumber="100">
<code class="ruby"> # configuration parameter, so we set it here from `error_key`</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="128">
+ <li class="covered" data-hits="2" data-linenumber="101">
+ <span class="hits">2</span>
-
<code class="ruby"> msg = "Command execution failed with an exit code of #{exit_code}"</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="129">
+ <li class="covered" data-hits="2" data-linenumber="102">
+ <span class="hits">2</span>
-
<code class="ruby"> error_opts = opts.merge(:_key => opts[:error_key], :message => msg)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="130">
+ <li class="covered" data-hits="2" data-linenumber="103">
+ <span class="hits">2</span>
-
<code class="ruby"> raise opts[:error_class], error_opts</code>
</li>
- <li class="never" data-hits="" data-linenumber="131">
+ <li class="never" data-hits="" data-linenumber="104">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="132">
+ <li class="never" data-hits="" data-linenumber="105">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="133">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="106">
- <code class="ruby"> def new_session</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="134">
-
- <code class="ruby"> WinRMShell.new(</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="135">
-
-
- <code class="ruby"> @winrm_finder.winrm_host_address(),</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="136">
-
-
- <code class="ruby"> @machine.config.winrm.username,</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="137">
-
-
- <code class="ruby"> @machine.config.winrm.password,</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="138">
-
-
- <code class="ruby"> {</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="139">
-
-
- <code class="ruby"> :port => @winrm_finder.winrm_host_port(),</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="140">
-
-
- <code class="ruby"> :timeout_in_seconds => @machine.config.winrm.timeout,</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="141">
-
-
- <code class="ruby"> :max_tries => @machine.config.winrm.max_tries</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="142">
-
-
- <code class="ruby"> })</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="143">
-
-
- <code class="ruby"> end</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="144">
-
-
- <code class="ruby"> </code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="145">
-
-
<code class="ruby"> end #WinRM class</code>
</li>
- <li class="never" data-hits="" data-linenumber="146">
+ <li class="never" data-hits="" data-linenumber="107">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="147">
+ <li class="never" data-hits="" data-linenumber="108">
<code class="ruby">end</code>
</li>
@@ -2205,15 +2001,15 @@
</div>
<div class="source_table" id="46df79007581e23184efb74db86daf5c58254ec5">
<div class="header">
<h3>lib/vagrant-windows/communication/winrmfinder.rb</h3>
- <h4><span class="red">70.83 %</span> covered</h4>
+ <h4><span class="red">78.26 %</span> covered</h4>
<div>
- <b>24</b> relevant lines.
- <span class="green"><b>17</b> lines covered</span> and
- <span class="red"><b>7</b> lines missed.</span>
+ <b>23</b> relevant lines.
+ <span class="green"><b>18</b> lines covered</span> and
+ <span class="red"><b>5</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -2228,281 +2024,299 @@
<span class="hits">1</span>
<code class="ruby">require_relative '../errors'</code>
</li>
- <li class="never" data-hits="" data-linenumber="3">
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+ <code class="ruby">require_relative '../windows_machine'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="4">
+ <li class="covered" data-hits="1" data-linenumber="5">
<span class="hits">1</span>
<code class="ruby">module VagrantWindows</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="5">
+ <li class="covered" data-hits="1" data-linenumber="6">
<span class="hits">1</span>
<code class="ruby"> module Communication</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="6">
+ <li class="covered" data-hits="1" data-linenumber="7">
<span class="hits">1</span>
<code class="ruby"> class WinRMFinder</code>
</li>
- <li class="never" data-hits="" data-linenumber="7">
+ <li class="never" data-hits="" data-linenumber="8">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="8">
+ <li class="covered" data-hits="1" data-linenumber="9">
<span class="hits">1</span>
<code class="ruby"> attr_reader :logger</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="9">
+ <li class="covered" data-hits="1" data-linenumber="10">
<span class="hits">1</span>
- <code class="ruby"> attr_reader :machine</code>
+ <code class="ruby"> attr_reader :windows_machine</code>
</li>
- <li class="never" data-hits="" data-linenumber="10">
+ <li class="never" data-hits="" data-linenumber="11">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="11">
+ <li class="covered" data-hits="1" data-linenumber="12">
<span class="hits">1</span>
- <code class="ruby"> def initialize(machine)</code>
+ <code class="ruby"> def initialize(windows_machine)</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="12">
- <span class="hits">3</span>
+ <li class="covered" data-hits="4" data-linenumber="13">
+ <span class="hits">4</span>
- <code class="ruby"> @machine = machine</code>
+ <code class="ruby"> @windows_machine = windows_machine</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="13">
- <span class="hits">3</span>
+ <li class="covered" data-hits="4" data-linenumber="14">
+ <span class="hits">4</span>
<code class="ruby"> @logger = Log4r::Logger.new("vagrant_windows::communication::winrmfinder")</code>
</li>
- <li class="never" data-hits="" data-linenumber="14">
+ <li class="never" data-hits="" data-linenumber="15">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="15">
+ <li class="never" data-hits="" data-linenumber="16">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="16">
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"> # Finds the address of the Windows machine.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> # Raises a Vagrant::Errors::SSHNotReady if WinRM is not responding yet.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"> # @return [String] The IP of the Windows machine</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
<span class="hits">1</span>
<code class="ruby"> def winrm_host_address</code>
</li>
- <li class="never" data-hits="" data-linenumber="17">
+ <li class="never" data-hits="" data-linenumber="22">
<code class="ruby"> # Get the SSH info for the machine, raise an exception if the</code>
</li>
- <li class="never" data-hits="" data-linenumber="18">
+ <li class="never" data-hits="" data-linenumber="23">
<code class="ruby"> # provider is saying that the machine is not ready.</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="19">
+ <li class="covered" data-hits="3" data-linenumber="24">
<span class="hits">3</span>
- <code class="ruby"> ssh_info = @machine.ssh_info</code>
+ <code class="ruby"> ssh_info = @windows_machine.ssh_info</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="20">
+ <li class="covered" data-hits="3" data-linenumber="25">
<span class="hits">3</span>
<code class="ruby"> raise VagrantWindows::Errors::WinRMNotReady if ssh_info.nil?</code>
</li>
- <li class="never" data-hits="" data-linenumber="21">
+ <li class="never" data-hits="" data-linenumber="26">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="22">
+ <li class="never" data-hits="" data-linenumber="27">
<code class="ruby"> # if the configuration has a host value, that takes precedence</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="23">
+ <li class="covered" data-hits="2" data-linenumber="28">
<span class="hits">2</span>
- <code class="ruby"> host = @machine.config.winrm.host || ssh_info[:host]</code>
+ <code class="ruby"> host = @windows_machine.winrm_config.host || ssh_info[:host]</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="24">
+ <li class="covered" data-hits="2" data-linenumber="29">
<span class="hits">2</span>
<code class="ruby"> @logger.info("WinRM host: #{host}")</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="25">
+ <li class="covered" data-hits="2" data-linenumber="30">
<span class="hits">2</span>
<code class="ruby"> host</code>
</li>
- <li class="never" data-hits="" data-linenumber="26">
+ <li class="never" data-hits="" data-linenumber="31">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="27">
+ <li class="never" data-hits="" data-linenumber="32">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="28">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="33">
- <code class="ruby"> def winrm_host_port</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="29">
-
- <code class="ruby"> expected_guest_port = @machine.config.winrm.guest_port</code>
+ <code class="ruby"> # Finds the IP port of the Windows machine's WinRM service.</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="30">
+ <li class="never" data-hits="" data-linenumber="34">
- <code class="ruby"> @logger.debug("Searching for WinRM port: #{expected_guest_port.inspect}")</code>
+ <code class="ruby"> #</code>
</li>
- <li class="never" data-hits="" data-linenumber="31">
+ <li class="never" data-hits="" data-linenumber="35">
- <code class="ruby"></code>
+ <code class="ruby"> # @return [String] The port of the Windows machine's WinRM service</code>
</li>
- <li class="never" data-hits="" data-linenumber="32">
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
-
- <code class="ruby"> # Look for the forwarded port only by comparing the guest port</code>
+ <code class="ruby"> def winrm_host_port</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="33">
+ <li class="missed" data-hits="0" data-linenumber="37">
- <code class="ruby"> begin</code>
+ <code class="ruby"> expected_guest_port = @windows_machine.winrm_config.guest_port</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="34">
+ <li class="missed" data-hits="0" data-linenumber="38">
- <code class="ruby"> @machine.provider.driver.read_forwarded_ports.each do |_, _, hostport, guestport|</code>
+ <code class="ruby"> @logger.debug("Searching for WinRM port: #{expected_guest_port.inspect}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="35">
+ <li class="never" data-hits="" data-linenumber="39">
- <code class="ruby"> return hostport if guestport == expected_guest_port</code>
+ <code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="36">
+ <li class="never" data-hits="" data-linenumber="40">
- <code class="ruby"> end</code>
+ <code class="ruby"> # Look for the forwarded port only by comparing the guest port</code>
</li>
- <li class="never" data-hits="" data-linenumber="37">
+ <li class="missed" data-hits="0" data-linenumber="41">
- <code class="ruby"> rescue NoMethodError => e</code>
+ <code class="ruby"> @windows_machine.read_forwarded_ports().each do |_, _, hostport, guestport|</code>
</li>
- <li class="never" data-hits="" data-linenumber="38">
+ <li class="missed" data-hits="0" data-linenumber="42">
- <code class="ruby"> # VMWare provider doesn't support read_forwarded_ports</code>
+ <code class="ruby"> return hostport if guestport == expected_guest_port</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="39">
+ <li class="never" data-hits="" data-linenumber="43">
- <code class="ruby"> @logger.debug(e.message)</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="40">
-
-
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="41">
+ <li class="never" data-hits="" data-linenumber="44">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="42">
+ <li class="never" data-hits="" data-linenumber="45">
<code class="ruby"> # We tried, give up and use the configured port as-is</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="43">
+ <li class="missed" data-hits="0" data-linenumber="46">
- <code class="ruby"> @machine.config.winrm.port</code>
+ <code class="ruby"> @windows_machine.winrm_config.port</code>
</li>
- <li class="never" data-hits="" data-linenumber="44">
+ <li class="never" data-hits="" data-linenumber="47">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="45">
+ <li class="never" data-hits="" data-linenumber="48">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="46">
+ <li class="never" data-hits="" data-linenumber="49">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="47">
+ <li class="never" data-hits="" data-linenumber="50">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="48">
+ <li class="never" data-hits="" data-linenumber="51">
<code class="ruby">end</code>
</li>
@@ -2511,15 +2325,15 @@
</div>
<div class="source_table" id="206e71d4215a183bebef0dee5b2d9ce2fe77aea6">
<div class="header">
<h3>lib/vagrant-windows/communication/winrmshell.rb</h3>
- <h4><span class="red">41.1 %</span> covered</h4>
+ <h4><span class="green">92.5 %</span> covered</h4>
<div>
- <b>73</b> relevant lines.
- <span class="green"><b>30</b> lines covered</span> and
- <span class="red"><b>43</b> lines missed.</span>
+ <b>80</b> relevant lines.
+ <span class="green"><b>74</b> lines covered</span> and
+ <span class="red"><b>6</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -2738,61 +2552,61 @@
<span class="hits">1</span>
<code class="ruby"> def initialize(host, username, password, options = {})</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="37">
+ <li class="covered" data-hits="3" data-linenumber="37">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger = Log4r::Logger.new("vagrant_windows::communication::winrmshell")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="38">
+ <li class="covered" data-hits="3" data-linenumber="38">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.debug("initializing WinRMShell")</code>
</li>
<li class="never" data-hits="" data-linenumber="39">
<code class="ruby"> </code>
</li>
- <li class="missed" data-hits="0" data-linenumber="40">
+ <li class="covered" data-hits="3" data-linenumber="40">
+ <span class="hits">3</span>
-
<code class="ruby"> @host = host</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="41">
+ <li class="covered" data-hits="3" data-linenumber="41">
+ <span class="hits">3</span>
-
<code class="ruby"> @port = options[:port] || 5985</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="42">
+ <li class="covered" data-hits="3" data-linenumber="42">
+ <span class="hits">3</span>
-
<code class="ruby"> @username = username</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="43">
+ <li class="covered" data-hits="3" data-linenumber="43">
+ <span class="hits">3</span>
-
<code class="ruby"> @password = password</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="44">
+ <li class="covered" data-hits="3" data-linenumber="44">
+ <span class="hits">3</span>
-
<code class="ruby"> @timeout_in_seconds = options[:timeout_in_seconds] || 60</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="45">
+ <li class="covered" data-hits="3" data-linenumber="45">
+ <span class="hits">3</span>
-
<code class="ruby"> @max_tries = options[:max_tries] || 20</code>
</li>
<li class="never" data-hits="" data-linenumber="46">
@@ -2810,13 +2624,13 @@
<span class="hits">1</span>
<code class="ruby"> def powershell(command, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="49">
+ <li class="covered" data-hits="20" data-linenumber="49">
+ <span class="hits">20</span>
-
<code class="ruby"> execute_shell(command, :powershell, &block)</code>
</li>
<li class="never" data-hits="" data-linenumber="50">
@@ -2834,13 +2648,13 @@
<span class="hits">1</span>
<code class="ruby"> def cmd(command, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="53">
+ <li class="covered" data-hits="5" data-linenumber="53">
+ <span class="hits">5</span>
-
<code class="ruby"> execute_shell(command, :cmd, &block)</code>
</li>
<li class="never" data-hits="" data-linenumber="54">
@@ -2858,13 +2672,13 @@
<span class="hits">1</span>
<code class="ruby"> def wql(query)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="57">
+ <li class="covered" data-hits="3" data-linenumber="57">
+ <span class="hits">3</span>
-
<code class="ruby"> execute_wql(query)</code>
</li>
<li class="never" data-hits="" data-linenumber="58">
@@ -2873,497 +2687,839 @@
</li>
<li class="never" data-hits="" data-linenumber="59">
- <code class="ruby"></code>
+ <code class="ruby"> </code>
</li>
<li class="covered" data-hits="1" data-linenumber="60">
<span class="hits">1</span>
+ <code class="ruby"> def upload(from, to)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="61">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @logger.debug("Uploading: #{from} to #{to}")</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="62">
+ <span class="hits">2</span>
+
+ <code class="ruby"> file_name = (cmd("echo %TEMP%\\winrm-upload-#{rand()}"))[:data][0][:stdout].chomp</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="63">
+
+
+ <code class="ruby"> powershell <<-EOH</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="64">
+
+
+ <code class="ruby"> if(Test-Path #{to}) {</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="65">
+
+
+ <code class="ruby"> rm #{to}</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="66">
+
+
+ <code class="ruby"> }</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="67">
+ <span class="hits">2</span>
+
+ <code class="ruby"> EOH</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="68">
+ <span class="hits">2</span>
+
+ <code class="ruby"> Base64.encode64(IO.binread(from)).gsub("\n",'').chars.to_a.each_slice(8000-file_name.size) do |chunk|</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="69">
+ <span class="hits">2</span>
+
+ <code class="ruby"> out = cmd("echo #{chunk.join} >> \"#{file_name}\"")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="70">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="71">
+
+
+ <code class="ruby"> powershell <<-EOH</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="72">
+
+
+ <code class="ruby"> mkdir $([System.IO.Path]::GetDirectoryName(\"#{to}\"))</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="73">
+
+
+ <code class="ruby"> $base64_string = Get-Content \"#{file_name}\"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="74">
+
+
+ <code class="ruby"> $bytes = [System.Convert]::FromBase64String($base64_string) </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="75">
+
+
+ <code class="ruby"> $new_file = [System.IO.Path]::GetFullPath(\"#{to}\")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="76">
+
+
+ <code class="ruby"> [System.IO.File]::WriteAllBytes($new_file,$bytes)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="77">
+ <span class="hits">2</span>
+
+ <code class="ruby"> EOH</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="78">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="79">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="80">
+ <span class="hits">1</span>
+
<code class="ruby"> protected</code>
</li>
- <li class="never" data-hits="" data-linenumber="61">
+ <li class="never" data-hits="" data-linenumber="81">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="62">
+ <li class="covered" data-hits="1" data-linenumber="82">
<span class="hits">1</span>
<code class="ruby"> def execute_shell(command, shell=:powershell, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="63">
+ <li class="covered" data-hits="25" data-linenumber="83">
+ <span class="hits">25</span>
-
<code class="ruby"> raise Errors::WinRMInvalidShell, :shell => shell unless shell == :cmd || shell == :powershell</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="64">
+ <li class="covered" data-hits="25" data-linenumber="84">
+ <span class="hits">25</span>
-
<code class="ruby"> begin</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="65">
+ <li class="covered" data-hits="25" data-linenumber="85">
+ <span class="hits">25</span>
-
<code class="ruby"> execute_shell_with_retry(command, shell, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="66">
+ <li class="missed" data-hits="0" data-linenumber="86">
<code class="ruby"> rescue => e</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="67">
+ <li class="missed" data-hits="0" data-linenumber="87">
<code class="ruby"> raise_winrm_exception(e, shell, command)</code>
</li>
- <li class="never" data-hits="" data-linenumber="68">
+ <li class="never" data-hits="" data-linenumber="88">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="69">
+ <li class="never" data-hits="" data-linenumber="89">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="70">
+ <li class="never" data-hits="" data-linenumber="90">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="71">
+ <li class="covered" data-hits="1" data-linenumber="91">
<span class="hits">1</span>
<code class="ruby"> def execute_shell_with_retry(command, shell, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="72">
+ <li class="covered" data-hits="25" data-linenumber="92">
+ <span class="hits">25</span>
-
<code class="ruby"> retryable(:tries => @max_tries, :on => @@exceptions_to_retry_on, :sleep => 10) do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="73">
+ <li class="covered" data-hits="25" data-linenumber="93">
+ <span class="hits">25</span>
-
<code class="ruby"> @logger.debug("#{shell} executing:\n#{command}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="74">
+ <li class="covered" data-hits="25" data-linenumber="94">
+ <span class="hits">25</span>
-
<code class="ruby"> output = session.send(shell, command) do |out, err|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="75">
+ <li class="covered" data-hits="32" data-linenumber="95">
+ <span class="hits">32</span>
-
<code class="ruby"> block.call(:stdout, out) if block_given? && out</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="76">
+ <li class="covered" data-hits="32" data-linenumber="96">
+ <span class="hits">32</span>
-
<code class="ruby"> block.call(:stderr, err) if block_given? && err</code>
</li>
- <li class="never" data-hits="" data-linenumber="77">
+ <li class="never" data-hits="" data-linenumber="97">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="78">
+ <li class="covered" data-hits="25" data-linenumber="98">
+ <span class="hits">25</span>
-
<code class="ruby"> @logger.debug("Exit status: #{output[:exitcode].inspect}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="79">
+ <li class="covered" data-hits="25" data-linenumber="99">
+ <span class="hits">25</span>
-
<code class="ruby"> return output</code>
</li>
- <li class="never" data-hits="" data-linenumber="80">
+ <li class="never" data-hits="" data-linenumber="100">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="81">
+ <li class="never" data-hits="" data-linenumber="101">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="82">
+ <li class="never" data-hits="" data-linenumber="102">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="83">
+ <li class="covered" data-hits="1" data-linenumber="103">
<span class="hits">1</span>
<code class="ruby"> def execute_wql(query)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="84">
+ <li class="covered" data-hits="3" data-linenumber="104">
+ <span class="hits">3</span>
-
<code class="ruby"> retryable(:tries => @max_tries, :on => @@exceptions_to_retry_on, :sleep => 10) do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="85">
+ <li class="covered" data-hits="3" data-linenumber="105">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.debug("#executing wql: #{query}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="86">
+ <li class="covered" data-hits="3" data-linenumber="106">
+ <span class="hits">3</span>
-
<code class="ruby"> output = session.wql(query)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="87">
+ <li class="covered" data-hits="3" data-linenumber="107">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.debug("wql result: #{output.inspect}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="88">
+ <li class="covered" data-hits="3" data-linenumber="108">
+ <span class="hits">3</span>
-
<code class="ruby"> return output</code>
</li>
- <li class="never" data-hits="" data-linenumber="89">
+ <li class="never" data-hits="" data-linenumber="109">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="90">
+ <li class="never" data-hits="" data-linenumber="110">
<code class="ruby"> rescue => e</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="91">
+ <li class="missed" data-hits="0" data-linenumber="111">
<code class="ruby"> raise_winrm_exception(e, :wql, query)</code>
</li>
- <li class="never" data-hits="" data-linenumber="92">
+ <li class="never" data-hits="" data-linenumber="112">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="93">
+ <li class="never" data-hits="" data-linenumber="113">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="94">
+ <li class="covered" data-hits="1" data-linenumber="114">
<span class="hits">1</span>
<code class="ruby"> def raise_winrm_exception(winrm_exception, shell, command)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="95">
+ <li class="missed" data-hits="0" data-linenumber="115">
<code class="ruby"> if winrm_exception.message.include?("401") # return a more specific auth error for 401 errors</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="96">
+ <li class="missed" data-hits="0" data-linenumber="116">
<code class="ruby"> raise Errors::WinRMAuthorizationError,</code>
</li>
- <li class="never" data-hits="" data-linenumber="97">
+ <li class="never" data-hits="" data-linenumber="117">
<code class="ruby"> :user => @username,</code>
</li>
- <li class="never" data-hits="" data-linenumber="98">
+ <li class="never" data-hits="" data-linenumber="118">
<code class="ruby"> :password => @password,</code>
</li>
- <li class="never" data-hits="" data-linenumber="99">
+ <li class="never" data-hits="" data-linenumber="119">
<code class="ruby"> :endpoint => endpoint,</code>
</li>
- <li class="never" data-hits="" data-linenumber="100">
+ <li class="never" data-hits="" data-linenumber="120">
<code class="ruby"> :message => winrm_exception.message</code>
</li>
- <li class="never" data-hits="" data-linenumber="101">
+ <li class="never" data-hits="" data-linenumber="121">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="102">
+ <li class="missed" data-hits="0" data-linenumber="122">
<code class="ruby"> raise Errors::WinRMExecutionError,</code>
</li>
- <li class="never" data-hits="" data-linenumber="103">
+ <li class="never" data-hits="" data-linenumber="123">
<code class="ruby"> :shell => shell,</code>
</li>
- <li class="never" data-hits="" data-linenumber="104">
+ <li class="never" data-hits="" data-linenumber="124">
<code class="ruby"> :command => command,</code>
</li>
- <li class="never" data-hits="" data-linenumber="105">
+ <li class="never" data-hits="" data-linenumber="125">
<code class="ruby"> :message => winrm_exception.message</code>
</li>
- <li class="never" data-hits="" data-linenumber="106">
+ <li class="never" data-hits="" data-linenumber="126">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="107">
+ <li class="never" data-hits="" data-linenumber="127">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="108">
+ <li class="covered" data-hits="1" data-linenumber="128">
<span class="hits">1</span>
<code class="ruby"> def new_session</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="109">
+ <li class="covered" data-hits="3" data-linenumber="129">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.info("Attempting to connect to WinRM...")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="110">
+ <li class="covered" data-hits="3" data-linenumber="130">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.info(" - Host: #{@host}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="111">
+ <li class="covered" data-hits="3" data-linenumber="131">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.info(" - Port: #{@port}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="112">
+ <li class="covered" data-hits="3" data-linenumber="132">
+ <span class="hits">3</span>
-
<code class="ruby"> @logger.info(" - Username: #{@username}")</code>
</li>
- <li class="never" data-hits="" data-linenumber="113">
+ <li class="never" data-hits="" data-linenumber="133">
<code class="ruby"> </code>
</li>
- <li class="missed" data-hits="0" data-linenumber="114">
+ <li class="covered" data-hits="3" data-linenumber="134">
+ <span class="hits">3</span>
-
<code class="ruby"> client = ::WinRM::WinRMWebService.new(endpoint, :plaintext, endpoint_options)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="115">
+ <li class="covered" data-hits="3" data-linenumber="135">
+ <span class="hits">3</span>
-
<code class="ruby"> client.set_timeout(@timeout_in_seconds)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="116">
+ <li class="covered" data-hits="3" data-linenumber="136">
+ <span class="hits">3</span>
-
<code class="ruby"> client.toggle_nori_type_casting(:off) #we don't want coersion of types</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="117">
+ <li class="covered" data-hits="3" data-linenumber="137">
+ <span class="hits">3</span>
-
<code class="ruby"> client</code>
</li>
- <li class="never" data-hits="" data-linenumber="118">
+ <li class="never" data-hits="" data-linenumber="138">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="119">
+ <li class="never" data-hits="" data-linenumber="139">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="120">
+ <li class="covered" data-hits="1" data-linenumber="140">
<span class="hits">1</span>
<code class="ruby"> def session</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="121">
+ <li class="covered" data-hits="28" data-linenumber="141">
+ <span class="hits">28</span>
-
<code class="ruby"> @session ||= new_session</code>
</li>
- <li class="never" data-hits="" data-linenumber="122">
+ <li class="never" data-hits="" data-linenumber="142">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="123">
+ <li class="never" data-hits="" data-linenumber="143">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="124">
+ <li class="covered" data-hits="1" data-linenumber="144">
<span class="hits">1</span>
<code class="ruby"> def endpoint</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="125">
+ <li class="covered" data-hits="3" data-linenumber="145">
+ <span class="hits">3</span>
-
<code class="ruby"> "http://#{@host}:#{@port}/wsman"</code>
</li>
- <li class="never" data-hits="" data-linenumber="126">
+ <li class="never" data-hits="" data-linenumber="146">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="127">
+ <li class="never" data-hits="" data-linenumber="147">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="128">
+ <li class="covered" data-hits="1" data-linenumber="148">
<span class="hits">1</span>
<code class="ruby"> def endpoint_options</code>
</li>
- <li class="never" data-hits="" data-linenumber="129">
+ <li class="never" data-hits="" data-linenumber="149">
<code class="ruby"> { :user => @username,</code>
</li>
- <li class="never" data-hits="" data-linenumber="130">
+ <li class="never" data-hits="" data-linenumber="150">
<code class="ruby"> :pass => @password,</code>
</li>
- <li class="never" data-hits="" data-linenumber="131">
+ <li class="never" data-hits="" data-linenumber="151">
<code class="ruby"> :host => @host,</code>
</li>
- <li class="never" data-hits="" data-linenumber="132">
+ <li class="never" data-hits="" data-linenumber="152">
<code class="ruby"> :port => @port,</code>
</li>
- <li class="never" data-hits="" data-linenumber="133">
+ <li class="never" data-hits="" data-linenumber="153">
<code class="ruby"> :operation_timeout => @timeout_in_seconds,</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="134">
+ <li class="covered" data-hits="3" data-linenumber="154">
+ <span class="hits">3</span>
-
<code class="ruby"> :basic_auth_only => true }</code>
</li>
- <li class="never" data-hits="" data-linenumber="135">
+ <li class="never" data-hits="" data-linenumber="155">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="136">
+ <li class="never" data-hits="" data-linenumber="156">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="137">
+ <li class="never" data-hits="" data-linenumber="157">
<code class="ruby"> end #WinShell class</code>
</li>
- <li class="never" data-hits="" data-linenumber="138">
+ <li class="never" data-hits="" data-linenumber="158">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="139">
+ <li class="never" data-hits="" data-linenumber="159">
<code class="ruby">end</code>
</li>
</ol>
</pre>
</div>
+ <div class="source_table" id="defc50d3a200328d3130424dcb644d83faccadaa">
+ <div class="header">
+ <h3>lib/vagrant-windows/communication/winrmshell_factory.rb</h3>
+ <h4><span class="yellow">90.0 %</span> covered</h4>
+ <div>
+ <b>10</b> relevant lines.
+ <span class="green"><b>9</b> lines covered</span> and
+ <span class="red"><b>1</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require_relative 'winrmshell'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby">require_relative 'winrmfinder'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby">module VagrantWindows</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> module Communication</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"> # Factory class for generating new WinRMShell instances</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> class WinRMShellFactory</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"> # @param [WindowsMachine] The Windows machine instance</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"> # @param [WinRMFinder] The WinRMFinder instance</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def initialize(windows_machine, winrm_finder)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @windows_machine = windows_machine</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @winrm_finder = winrm_finder</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"> # Creates a new WinRMShell instance</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> # @return [WinRMShell]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def create_winrm_shell()</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="21">
+
+
+ <code class="ruby"> WinRMShell.new(</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="22">
+
+
+ <code class="ruby"> @winrm_finder.winrm_host_address(),</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"> @windows_machine.winrm_config.username,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> @windows_machine.winrm_config.password,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"> {</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> :port => @winrm_finder.winrm_host_port(),</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"> :timeout_in_seconds => @windows_machine.winrm_config.timeout,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> :max_tries => @windows_machine.winrm_config.max_tries</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"> })</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> end #WinShell class</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="ec6c148e559f5558fb277fea15c45c85fa409d28">
<div class="header">
<h3>lib/vagrant-windows/config/windows.rb</h3>
<h4><span class="red">76.19 %</span> covered</h4>
<div>
@@ -4293,15 +4449,15 @@
</div>
<div class="source_table" id="54eeb382b101f2c6d7d6a73b691b4d03621b9f54">
<div class="header">
<h3>lib/vagrant-windows/helper.rb</h3>
- <h4><span class="green">100.0 %</span> covered</h4>
+ <h4><span class="red">75.0 %</span> covered</h4>
<div>
- <b>12</b> relevant lines.
+ <b>16</b> relevant lines.
<span class="green"><b>12</b> lines covered</span> and
- <span class="red"><b>0</b> lines missed.</span>
+ <span class="red"><b>4</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -4328,179 +4484,221 @@
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="5">
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+ <code class="ruby"> @@logger = Log4r::Logger.new("vagrant_windows::helper")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
<code class="ruby"> # Makes a path Windows guest friendly.</code>
</li>
- <li class="never" data-hits="" data-linenumber="6">
+ <li class="never" data-hits="" data-linenumber="8">
<code class="ruby"> # Turns '/vagrant' into 'c:\vagrant'</code>
</li>
- <li class="never" data-hits="" data-linenumber="7">
+ <li class="never" data-hits="" data-linenumber="9">
<code class="ruby"> #</code>
</li>
- <li class="never" data-hits="" data-linenumber="8">
+ <li class="never" data-hits="" data-linenumber="10">
<code class="ruby"> # @return [String]</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="9">
+ <li class="covered" data-hits="1" data-linenumber="11">
<span class="hits">1</span>
<code class="ruby"> def win_friendly_path(path)</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="10">
+ <li class="covered" data-hits="3" data-linenumber="12">
<span class="hits">3</span>
<code class="ruby"> if path</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="11">
+ <li class="covered" data-hits="2" data-linenumber="13">
<span class="hits">2</span>
<code class="ruby"> new_path = path.gsub('/', '\\')</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="12">
+ <li class="covered" data-hits="2" data-linenumber="14">
<span class="hits">2</span>
<code class="ruby"> new_path = "c:#{new_path}" if new_path =~ /^\\/</code>
</li>
- <li class="never" data-hits="" data-linenumber="13">
+ <li class="never" data-hits="" data-linenumber="15">
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="14">
+ <li class="covered" data-hits="3" data-linenumber="16">
<span class="hits">3</span>
<code class="ruby"> new_path</code>
</li>
- <li class="never" data-hits="" data-linenumber="15">
+ <li class="never" data-hits="" data-linenumber="17">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="16">
+ <li class="never" data-hits="" data-linenumber="18">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="17">
+ <li class="never" data-hits="" data-linenumber="19">
<code class="ruby"> # Makes Vagrant share names Windows guest friendly.</code>
</li>
- <li class="never" data-hits="" data-linenumber="18">
+ <li class="never" data-hits="" data-linenumber="20">
<code class="ruby"> # Turns '/vagrant' into 'vagrant' or turns ''/a/b/c/d/e' into 'a_b_c_d_e'</code>
</li>
- <li class="never" data-hits="" data-linenumber="19">
+ <li class="never" data-hits="" data-linenumber="21">
<code class="ruby"> #</code>
</li>
- <li class="never" data-hits="" data-linenumber="20">
+ <li class="never" data-hits="" data-linenumber="22">
<code class="ruby"> # @return [String]</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="21">
+ <li class="covered" data-hits="1" data-linenumber="23">
<span class="hits">1</span>
<code class="ruby"> def win_friendly_share_id(shared_folder_name)</code>
</li>
- <li class="covered" data-hits="4" data-linenumber="22">
+ <li class="covered" data-hits="4" data-linenumber="24">
<span class="hits">4</span>
<code class="ruby"> return shared_folder_name.gsub(/[\/\/]/,'_').sub(/^_/, '')</code>
</li>
- <li class="never" data-hits="" data-linenumber="23">
+ <li class="never" data-hits="" data-linenumber="25">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="24">
+ <li class="never" data-hits="" data-linenumber="26">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="25">
+ <li class="never" data-hits="" data-linenumber="27">
- <code class="ruby"> # Checks to see if the specified machine is using VMWare Fusion or Workstation.</code>
+ <code class="ruby"> # Check to see if the guest is rebooting, if its rebooting then wait until its ready</code>
</li>
- <li class="never" data-hits="" data-linenumber="26">
+ <li class="never" data-hits="" data-linenumber="28">
<code class="ruby"> #</code>
</li>
- <li class="never" data-hits="" data-linenumber="27">
+ <li class="never" data-hits="" data-linenumber="29">
- <code class="ruby"> # @return [Boolean]</code>
+ <code class="ruby"> # @param [WindowsMachine] The windows machine instance</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="28">
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> # @param [Int] The time in seconds to wait between checks</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
<span class="hits">1</span>
- <code class="ruby"> def is_vmware(machine)</code>
+ <code class="ruby"> def wait_if_rebooting(windows_machine, wait_in_seconds=10)</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="29">
- <span class="hits">3</span>
+ <li class="missed" data-hits="0" data-linenumber="32">
- <code class="ruby"> machine.provider_name.to_s().start_with?('vmware')</code>
+
+ <code class="ruby"> @@logger.info('Checking guest reboot status')</code>
</li>
- <li class="never" data-hits="" data-linenumber="30">
+ <li class="missed" data-hits="0" data-linenumber="33">
+ <code class="ruby"> while windows_machine.is_rebooting? </code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="34">
+
+
+ <code class="ruby"> @@logger.debug('Guest is rebooting, waiting 10 seconds...')</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="35">
+
+
+ <code class="ruby"> sleep(wait_in_seconds)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="37">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="31">
+ <li class="never" data-hits="" data-linenumber="38">
- <code class="ruby"> </code>
+ <code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="32">
+ <li class="never" data-hits="" data-linenumber="39">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="33">
+ <li class="never" data-hits="" data-linenumber="40">
<code class="ruby">end</code>
</li>
@@ -5163,15 +5361,15 @@
</div>
<div class="source_table" id="445364063a8c3e2a428ea7fe4036b1ec8a3a1277">
<div class="header">
<h3>lib/vagrant-windows/monkey_patches/plugins/provisioners/chef/provisioner/chef_solo.rb</h3>
- <h4><span class="red">32.14 %</span> covered</h4>
+ <h4><span class="red">34.0 %</span> covered</h4>
<div>
- <b>56</b> relevant lines.
- <span class="green"><b>18</b> lines covered</span> and
- <span class="red"><b>38</b> lines missed.</span>
+ <b>50</b> relevant lines.
+ <span class="green"><b>17</b> lines covered</span> and
+ <span class="red"><b>33</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -5192,773 +5390,695 @@
<span class="hits">1</span>
<code class="ruby">require_relative '../../../../../helper'</code>
</li>
- <li class="never" data-hits="" data-linenumber="4">
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+ <code class="ruby">require_relative '../../../../../windows_machine'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="5">
+ <li class="covered" data-hits="1" data-linenumber="6">
<span class="hits">1</span>
<code class="ruby">module VagrantPlugins</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="6">
+ <li class="covered" data-hits="1" data-linenumber="7">
<span class="hits">1</span>
<code class="ruby"> module Chef</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="7">
+ <li class="covered" data-hits="1" data-linenumber="8">
<span class="hits">1</span>
<code class="ruby"> module Provisioner</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="8">
+ <li class="covered" data-hits="1" data-linenumber="9">
<span class="hits">1</span>
<code class="ruby"> class ChefSolo < Base</code>
</li>
- <li class="never" data-hits="" data-linenumber="9">
+ <li class="never" data-hits="" data-linenumber="10">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="10">
+ <li class="covered" data-hits="1" data-linenumber="11">
<span class="hits">1</span>
<code class="ruby"> include VagrantWindows::Helper</code>
</li>
- <li class="never" data-hits="" data-linenumber="11">
+ <li class="never" data-hits="" data-linenumber="12">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="12">
+ <li class="covered" data-hits="1" data-linenumber="13">
<span class="hits">1</span>
<code class="ruby"> provision_on_linux = instance_method(:provision)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="13">
+ <li class="covered" data-hits="1" data-linenumber="14">
<span class="hits">1</span>
<code class="ruby"> run_chef_solo_on_linux = instance_method(:run_chef_solo)</code>
</li>
- <li class="never" data-hits="" data-linenumber="14">
+ <li class="never" data-hits="" data-linenumber="15">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="15">
+ <li class="never" data-hits="" data-linenumber="16">
<code class="ruby"> # This patch is needed until Vagrant supports chef on Windows guests</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="16">
+ <li class="covered" data-hits="1" data-linenumber="17">
<span class="hits">1</span>
<code class="ruby"> define_method(:run_chef_solo) do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="17">
+ <li class="missed" data-hits="0" data-linenumber="18">
- <code class="ruby"> is_windows ? run_chef_solo_on_windows() : run_chef_solo_on_linux.bind(self).()</code>
+ <code class="ruby"> is_windows? ? run_chef_solo_on_windows() : run_chef_solo_on_linux.bind(self).()</code>
</li>
- <li class="never" data-hits="" data-linenumber="18">
+ <li class="never" data-hits="" data-linenumber="19">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="19">
+ <li class="never" data-hits="" data-linenumber="20">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="20">
+ <li class="covered" data-hits="1" data-linenumber="21">
<span class="hits">1</span>
<code class="ruby"> define_method(:provision) do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="21">
-
-
- <code class="ruby"> wait_if_rebooting() if is_windows</code>
- </li>
-
<li class="missed" data-hits="0" data-linenumber="22">
- <code class="ruby"> provision_on_linux.bind(self).()</code>
+ <code class="ruby"> windows_machine = VagrantWindows::WindowsMachine.new(@machine)</code>
</li>
- <li class="never" data-hits="" data-linenumber="23">
+ <li class="missed" data-hits="0" data-linenumber="23">
- <code class="ruby"> end</code>
+ <code class="ruby"> wait_if_rebooting(windows_machine) if is_windows?</code>
</li>
- <li class="never" data-hits="" data-linenumber="24">
+ <li class="missed" data-hits="0" data-linenumber="24">
- <code class="ruby"> </code>
+ <code class="ruby"> provision_on_linux.bind(self).()</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="25">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="25">
- <code class="ruby"> def wait_if_rebooting</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="26">
-
- <code class="ruby"> # Check to see if the guest is rebooting, if its rebooting then wait until its ready</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="27">
-
-
- <code class="ruby"> @logger.info('Checking guest reboot status')</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="28">
-
-
- <code class="ruby"> </code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="29">
-
-
- <code class="ruby"> while is_rebooting?(machine) </code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="30">
-
-
- <code class="ruby"> @logger.debug('Guest is rebooting, waiting 10 seconds...')</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="31">
-
-
- <code class="ruby"> sleep(10)</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="32">
-
-
- <code class="ruby"> end</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="33">
-
-
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="34">
+ <li class="never" data-hits="" data-linenumber="26">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="35">
+ <li class="covered" data-hits="1" data-linenumber="27">
<span class="hits">1</span>
- <code class="ruby"> def run_chef_solo_on_windows </code>
+ <code class="ruby"> def run_chef_solo_on_windows</code>
</li>
- <li class="never" data-hits="" data-linenumber="36">
+ <li class="never" data-hits="" data-linenumber="28">
<code class="ruby"> # create cheftaskrun.ps1 that the scheduled task will invoke when run</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="37">
+ <li class="missed" data-hits="0" data-linenumber="29">
<code class="ruby"> render_file_and_upload("cheftaskrun.ps1", chef_script_options[:chef_task_run_ps1], :options => chef_script_options)</code>
</li>
- <li class="never" data-hits="" data-linenumber="38">
+ <li class="never" data-hits="" data-linenumber="30">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="39">
+ <li class="never" data-hits="" data-linenumber="31">
<code class="ruby"> # create cheftask.xml that the scheduled task will be created with</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="40">
+ <li class="missed" data-hits="0" data-linenumber="32">
<code class="ruby"> render_file_and_upload("cheftask.xml", chef_script_options[:chef_task_xml], :options => chef_script_options)</code>
</li>
- <li class="never" data-hits="" data-linenumber="41">
+ <li class="never" data-hits="" data-linenumber="33">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="42">
+ <li class="never" data-hits="" data-linenumber="34">
<code class="ruby"> # create cheftask.ps1 that will immediately invoke the scheduled task and wait for completion</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="43">
+ <li class="missed" data-hits="0" data-linenumber="35">
<code class="ruby"> render_file_and_upload("cheftask.ps1", chef_script_options[:chef_task_ps1], :options => chef_script_options)</code>
</li>
- <li class="never" data-hits="" data-linenumber="44">
+ <li class="never" data-hits="" data-linenumber="36">
<code class="ruby"> </code>
</li>
- <li class="missed" data-hits="0" data-linenumber="45">
+ <li class="missed" data-hits="0" data-linenumber="37">
<code class="ruby"> command = <<-EOH</code>
</li>
- <li class="never" data-hits="" data-linenumber="46">
+ <li class="never" data-hits="" data-linenumber="38">
<code class="ruby"> $old = Get-ExecutionPolicy;</code>
</li>
- <li class="never" data-hits="" data-linenumber="47">
+ <li class="never" data-hits="" data-linenumber="39">
<code class="ruby"> Set-ExecutionPolicy Unrestricted -force;</code>
</li>
- <li class="never" data-hits="" data-linenumber="48">
+ <li class="never" data-hits="" data-linenumber="40">
<code class="ruby"> #{chef_script_options[:chef_task_ps1]};</code>
</li>
- <li class="never" data-hits="" data-linenumber="49">
+ <li class="never" data-hits="" data-linenumber="41">
<code class="ruby"> Set-ExecutionPolicy $old -force</code>
</li>
- <li class="never" data-hits="" data-linenumber="50">
+ <li class="never" data-hits="" data-linenumber="42">
<code class="ruby"> exit $LASTEXITCODE</code>
</li>
- <li class="never" data-hits="" data-linenumber="51">
+ <li class="never" data-hits="" data-linenumber="43">
<code class="ruby"> EOH</code>
</li>
- <li class="never" data-hits="" data-linenumber="52">
+ <li class="never" data-hits="" data-linenumber="44">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="53">
+ <li class="missed" data-hits="0" data-linenumber="45">
<code class="ruby"> @config.attempts.times do |attempt|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="54">
+ <li class="missed" data-hits="0" data-linenumber="46">
<code class="ruby"> if attempt == 0</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="55">
+ <li class="missed" data-hits="0" data-linenumber="47">
<code class="ruby"> @machine.env.ui.info I18n.t("vagrant.provisioners.chef.running_solo")</code>
</li>
- <li class="never" data-hits="" data-linenumber="56">
+ <li class="never" data-hits="" data-linenumber="48">
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="57">
+ <li class="missed" data-hits="0" data-linenumber="49">
<code class="ruby"> @machine.env.ui.info I18n.t("vagrant.provisioners.chef.running_solo_again")</code>
</li>
- <li class="never" data-hits="" data-linenumber="58">
+ <li class="never" data-hits="" data-linenumber="50">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="59">
+ <li class="never" data-hits="" data-linenumber="51">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="60">
+ <li class="never" data-hits="" data-linenumber="52">
<code class="ruby"> # This re-establishes our symbolic links if they were created between now and a reboot</code>
</li>
- <li class="never" data-hits="" data-linenumber="61">
+ <li class="never" data-hits="" data-linenumber="53">
<code class="ruby"> # Fixes issue #119</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="62">
+ <li class="missed" data-hits="0" data-linenumber="54">
<code class="ruby"> @machine.communicate.execute('& net use a-non-existant-share', :error_check => false)</code>
</li>
- <li class="never" data-hits="" data-linenumber="63">
+ <li class="never" data-hits="" data-linenumber="55">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="64">
+ <li class="missed" data-hits="0" data-linenumber="56">
<code class="ruby"> exit_status = @machine.communicate.execute(command, :error_check => false) do |type, data|</code>
</li>
- <li class="never" data-hits="" data-linenumber="65">
+ <li class="never" data-hits="" data-linenumber="57">
<code class="ruby"> # Output the data with the proper color based on the stream.</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="66">
+ <li class="missed" data-hits="0" data-linenumber="58">
<code class="ruby"> color = type == :stdout ? :green : :red</code>
</li>
- <li class="never" data-hits="" data-linenumber="67">
+ <li class="never" data-hits="" data-linenumber="59">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="68">
+ <li class="missed" data-hits="0" data-linenumber="60">
<code class="ruby"> @machine.env.ui.info(</code>
</li>
- <li class="never" data-hits="" data-linenumber="69">
+ <li class="never" data-hits="" data-linenumber="61">
<code class="ruby"> data, :color => color, :new_line => false, :prefix => false)</code>
</li>
- <li class="never" data-hits="" data-linenumber="70">
+ <li class="never" data-hits="" data-linenumber="62">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="71">
+ <li class="never" data-hits="" data-linenumber="63">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="72">
+ <li class="never" data-hits="" data-linenumber="64">
<code class="ruby"> # There is no need to run Chef again if it converges</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="73">
+ <li class="missed" data-hits="0" data-linenumber="65">
<code class="ruby"> return if exit_status == 0</code>
</li>
- <li class="never" data-hits="" data-linenumber="74">
+ <li class="never" data-hits="" data-linenumber="66">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="75">
+ <li class="never" data-hits="" data-linenumber="67">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="76">
+ <li class="never" data-hits="" data-linenumber="68">
<code class="ruby"> # If we reached this point then Chef never converged! Error.</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="77">
+ <li class="missed" data-hits="0" data-linenumber="69">
<code class="ruby"> raise ChefError, :no_convergence</code>
</li>
- <li class="never" data-hits="" data-linenumber="78">
+ <li class="never" data-hits="" data-linenumber="70">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="79">
+ <li class="never" data-hits="" data-linenumber="71">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="80">
+ <li class="covered" data-hits="1" data-linenumber="72">
<span class="hits">1</span>
<code class="ruby"> def render_file_and_upload(script_name, dest_file, options)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="81">
+ <li class="missed" data-hits="0" data-linenumber="73">
<code class="ruby"> script_contents = VagrantWindows.load_script_template(script_name, options)</code>
</li>
- <li class="never" data-hits="" data-linenumber="82">
+ <li class="never" data-hits="" data-linenumber="74">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="83">
+ <li class="never" data-hits="" data-linenumber="75">
<code class="ruby"> # render cheftaskrun.ps1 to local temp file</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="84">
+ <li class="missed" data-hits="0" data-linenumber="76">
<code class="ruby"> script_local = Tempfile.new(script_name)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="85">
+ <li class="missed" data-hits="0" data-linenumber="77">
<code class="ruby"> IO.write(script_local, script_contents)</code>
</li>
- <li class="never" data-hits="" data-linenumber="86">
+ <li class="never" data-hits="" data-linenumber="78">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="87">
+ <li class="never" data-hits="" data-linenumber="79">
<code class="ruby"> # upload cheftaskrun.ps1 file</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="88">
+ <li class="missed" data-hits="0" data-linenumber="80">
<code class="ruby"> @machine.communicate.upload(script_local, dest_file)</code>
</li>
- <li class="never" data-hits="" data-linenumber="89">
+ <li class="never" data-hits="" data-linenumber="81">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="90">
+ <li class="never" data-hits="" data-linenumber="82">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="91">
+ <li class="covered" data-hits="1" data-linenumber="83">
<span class="hits">1</span>
<code class="ruby"> def chef_script_options</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="92">
+ <li class="missed" data-hits="0" data-linenumber="84">
<code class="ruby"> if @chef_script_options.nil?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="93">
+ <li class="missed" data-hits="0" data-linenumber="85">
<code class="ruby"> command_env = @config.binary_env ? "#{@config.binary_env} " : ""</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="94">
+ <li class="missed" data-hits="0" data-linenumber="86">
<code class="ruby"> command_args = @config.arguments ? " #{@config.arguments}" : ""</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="95">
+ <li class="missed" data-hits="0" data-linenumber="87">
<code class="ruby"> chef_solo_path = win_friendly_path(File.join(@config.provisioning_path, 'solo.rb'))</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="96">
+ <li class="missed" data-hits="0" data-linenumber="88">
<code class="ruby"> chef_dna_path = win_friendly_path(File.join(@config.provisioning_path, 'dna.json'))</code>
</li>
- <li class="never" data-hits="" data-linenumber="97">
+ <li class="never" data-hits="" data-linenumber="89">
<code class="ruby"> </code>
</li>
- <li class="missed" data-hits="0" data-linenumber="98">
+ <li class="missed" data-hits="0" data-linenumber="90">
<code class="ruby"> chef_arguments = "-c #{chef_solo_path} "</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="99">
+ <li class="missed" data-hits="0" data-linenumber="91">
<code class="ruby"> chef_arguments << "-j #{chef_dna_path} "</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="100">
+ <li class="missed" data-hits="0" data-linenumber="92">
<code class="ruby"> chef_arguments << "#{command_args}"</code>
</li>
- <li class="never" data-hits="" data-linenumber="101">
+ <li class="never" data-hits="" data-linenumber="93">
<code class="ruby"> </code>
</li>
- <li class="missed" data-hits="0" data-linenumber="102">
+ <li class="missed" data-hits="0" data-linenumber="94">
<code class="ruby"> @chef_script_options = {</code>
</li>
- <li class="never" data-hits="" data-linenumber="103">
+ <li class="never" data-hits="" data-linenumber="95">
<code class="ruby"> :user => @machine.config.winrm.username,</code>
</li>
- <li class="never" data-hits="" data-linenumber="104">
+ <li class="never" data-hits="" data-linenumber="96">
<code class="ruby"> :pass => @machine.config.winrm.password,</code>
</li>
- <li class="never" data-hits="" data-linenumber="105">
+ <li class="never" data-hits="" data-linenumber="97">
<code class="ruby"> :chef_arguments => chef_arguments,</code>
</li>
- <li class="never" data-hits="" data-linenumber="106">
+ <li class="never" data-hits="" data-linenumber="98">
<code class="ruby"> :chef_task_xml => win_friendly_path("#{@config.provisioning_path}/cheftask.xml"),</code>
</li>
- <li class="never" data-hits="" data-linenumber="107">
+ <li class="never" data-hits="" data-linenumber="99">
<code class="ruby"> :chef_task_running => win_friendly_path("#{@config.provisioning_path}/cheftask.running"),</code>
</li>
- <li class="never" data-hits="" data-linenumber="108">
+ <li class="never" data-hits="" data-linenumber="100">
<code class="ruby"> :chef_task_exitcode => win_friendly_path("#{@config.provisioning_path}/cheftask.exitcode"),</code>
</li>
- <li class="never" data-hits="" data-linenumber="109">
+ <li class="never" data-hits="" data-linenumber="101">
<code class="ruby"> :chef_task_ps1 => win_friendly_path("#{@config.provisioning_path}/cheftask.ps1"),</code>
</li>
- <li class="never" data-hits="" data-linenumber="110">
+ <li class="never" data-hits="" data-linenumber="102">
<code class="ruby"> :chef_task_run_ps1 => win_friendly_path("#{@config.provisioning_path}/cheftaskrun.ps1"),</code>
</li>
- <li class="never" data-hits="" data-linenumber="111">
+ <li class="never" data-hits="" data-linenumber="103">
<code class="ruby"> :chef_stdout_log => win_friendly_path("#{@config.provisioning_path}/chef-solo.log"),</code>
</li>
- <li class="never" data-hits="" data-linenumber="112">
+ <li class="never" data-hits="" data-linenumber="104">
<code class="ruby"> :chef_stderr_log => win_friendly_path("#{@config.provisioning_path}/chef-solo.err.log"),</code>
</li>
- <li class="never" data-hits="" data-linenumber="113">
+ <li class="never" data-hits="" data-linenumber="105">
<code class="ruby"> :chef_binary_path => win_friendly_path("#{command_env}#{chef_binary_path("chef-solo")}")</code>
</li>
- <li class="never" data-hits="" data-linenumber="114">
+ <li class="never" data-hits="" data-linenumber="106">
<code class="ruby"> }</code>
</li>
- <li class="never" data-hits="" data-linenumber="115">
+ <li class="never" data-hits="" data-linenumber="107">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="116">
+ <li class="missed" data-hits="0" data-linenumber="108">
<code class="ruby"> @chef_script_options</code>
</li>
- <li class="never" data-hits="" data-linenumber="117">
+ <li class="never" data-hits="" data-linenumber="109">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="118">
+ <li class="never" data-hits="" data-linenumber="110">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="119">
+ <li class="covered" data-hits="1" data-linenumber="111">
<span class="hits">1</span>
- <code class="ruby"> def is_rebooting?(machine)</code>
+ <code class="ruby"> def is_windows?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="120">
+ <li class="missed" data-hits="0" data-linenumber="112">
- <code class="ruby"> reboot_detect_script = VagrantWindows.load_script('reboot_detect.ps1')</code>
+ <code class="ruby"> VagrantWindows::WindowsMachine.is_windows?(@machine)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="121">
+ <li class="never" data-hits="" data-linenumber="113">
- <code class="ruby"> @machine.communicate.execute(reboot_detect_script, :error_check => false) != 0</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="122">
-
-
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="123">
+ <li class="never" data-hits="" data-linenumber="114">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="124">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="115">
- <code class="ruby"> def is_windows</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="125">
-
- <code class="ruby"> @machine.config.vm.guest.eql? :windows</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="126">
-
-
- <code class="ruby"> end</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="127">
-
-
- <code class="ruby"> </code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="128">
-
-
<code class="ruby"> end # ChefSolo class</code>
</li>
- <li class="never" data-hits="" data-linenumber="129">
+ <li class="never" data-hits="" data-linenumber="116">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="130">
+ <li class="never" data-hits="" data-linenumber="117">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="131">
+ <li class="never" data-hits="" data-linenumber="118">
<code class="ruby">end</code>
</li>
@@ -5967,15 +6087,15 @@
</div>
<div class="source_table" id="9387455ce27f9821d2f4388bcb52524681914003">
<div class="header">
<h3>lib/vagrant-windows/monkey_patches/plugins/provisioners/puppet/provisioner/puppet.rb</h3>
- <h4><span class="red">21.05 %</span> covered</h4>
+ <h4><span class="red">26.15 %</span> covered</h4>
<div>
- <b>57</b> relevant lines.
- <span class="green"><b>12</b> lines covered</span> and
- <span class="red"><b>45</b> lines missed.</span>
+ <b>65</b> relevant lines.
+ <span class="green"><b>17</b> lines covered</span> and
+ <span class="red"><b>48</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -5984,707 +6104,773 @@
<span class="hits">1</span>
<code class="ruby">require "#{Vagrant::source_root}/plugins/provisioners/puppet/provisioner/puppet"</code>
</li>
- <li class="never" data-hits="" data-linenumber="2">
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+ <code class="ruby">require_relative '../../../../../windows_machine'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+ <code class="ruby">require_relative '../../../../../helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="3">
+ <li class="covered" data-hits="1" data-linenumber="5">
<span class="hits">1</span>
<code class="ruby">module VagrantPlugins</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="4">
+ <li class="covered" data-hits="1" data-linenumber="6">
<span class="hits">1</span>
<code class="ruby"> module Puppet</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="5">
+ <li class="covered" data-hits="1" data-linenumber="7">
<span class="hits">1</span>
<code class="ruby"> module Provisioner</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="6">
+ <li class="covered" data-hits="1" data-linenumber="8">
<span class="hits">1</span>
<code class="ruby"> class Puppet < Vagrant.plugin("2", :provisioner)</code>
</li>
- <li class="never" data-hits="" data-linenumber="7">
+ <li class="never" data-hits="" data-linenumber="9">
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> include VagrantWindows::Helper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="8">
+ <li class="never" data-hits="" data-linenumber="12">
<code class="ruby"> # This patch is needed until Vagrant supports Puppet on Windows guests</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="9">
+ <li class="covered" data-hits="1" data-linenumber="13">
<span class="hits">1</span>
+ <code class="ruby"> provision_on_linux = instance_method(:provision)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
<code class="ruby"> run_puppet_apply_on_linux = instance_method(:run_puppet_apply)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="10">
+ <li class="covered" data-hits="1" data-linenumber="15">
<span class="hits">1</span>
<code class="ruby"> configure_on_linux = instance_method(:configure)</code>
</li>
- <li class="never" data-hits="" data-linenumber="11">
+ <li class="never" data-hits="" data-linenumber="16">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="12">
+ <li class="covered" data-hits="1" data-linenumber="17">
<span class="hits">1</span>
<code class="ruby"> define_method(:run_puppet_apply) do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="13">
+ <li class="missed" data-hits="0" data-linenumber="18">
- <code class="ruby"> is_windows ? run_puppet_apply_on_windows() : run_puppet_apply_on_linux.bind(self).()</code>
+ <code class="ruby"> is_windows? ? run_puppet_apply_on_windows() : run_puppet_apply_on_linux.bind(self).()</code>
</li>
- <li class="never" data-hits="" data-linenumber="14">
+ <li class="never" data-hits="" data-linenumber="19">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="15">
+ <li class="never" data-hits="" data-linenumber="20">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="16">
+ <li class="covered" data-hits="1" data-linenumber="21">
<span class="hits">1</span>
<code class="ruby"> define_method(:configure) do |root_config|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="17">
+ <li class="missed" data-hits="0" data-linenumber="22">
- <code class="ruby"> is_windows ? configure_on_windows(root_config) : configure_on_linux.bind(self).(root_config)</code>
+ <code class="ruby"> is_windows? ? configure_on_windows(root_config) : configure_on_linux.bind(self).(root_config)</code>
</li>
- <li class="never" data-hits="" data-linenumber="18">
+ <li class="never" data-hits="" data-linenumber="23">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="19">
+ <li class="never" data-hits="" data-linenumber="24">
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
+
+ <code class="ruby"> define_method(:provision) do</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="26">
+
+
+ <code class="ruby"> windows_machine = VagrantWindows::WindowsMachine.new(@machine)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="27">
+
+
+ <code class="ruby"> wait_if_rebooting(windows_machine) if is_windows?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="28">
+
+
+ <code class="ruby"> provision_on_linux.bind(self).()</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="20">
+ <li class="covered" data-hits="1" data-linenumber="31">
<span class="hits">1</span>
<code class="ruby"> def run_puppet_apply_on_windows</code>
</li>
- <li class="never" data-hits="" data-linenumber="21">
+ <li class="never" data-hits="" data-linenumber="32">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="22">
+ <li class="never" data-hits="" data-linenumber="33">
<code class="ruby"> # This re-establishes our symbolic links if they were created between now and a reboot</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="missed" data-hits="0" data-linenumber="34">
<code class="ruby"> @machine.communicate.execute('& net use a-non-existant-share', :error_check => false)</code>
</li>
- <li class="never" data-hits="" data-linenumber="24">
+ <li class="never" data-hits="" data-linenumber="35">
<code class="ruby"> </code>
</li>
- <li class="missed" data-hits="0" data-linenumber="25">
+ <li class="missed" data-hits="0" data-linenumber="36">
<code class="ruby"> options = [config.options].flatten</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="26">
+ <li class="missed" data-hits="0" data-linenumber="37">
<code class="ruby"> module_paths = @module_paths.map { |_, to| to }</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="27">
+ <li class="missed" data-hits="0" data-linenumber="38">
<code class="ruby"> if !@module_paths.empty?</code>
</li>
- <li class="never" data-hits="" data-linenumber="28">
+ <li class="never" data-hits="" data-linenumber="39">
<code class="ruby"> # Prepend the default module path</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="29">
+ <li class="missed" data-hits="0" data-linenumber="40">
<code class="ruby"> module_paths.unshift("/ProgramData/PuppetLabs/puppet/etc/modules")</code>
</li>
- <li class="never" data-hits="" data-linenumber="30">
+ <li class="never" data-hits="" data-linenumber="41">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="31">
+ <li class="never" data-hits="" data-linenumber="42">
<code class="ruby"> # Add the command line switch to add the module path</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="32">
+ <li class="missed" data-hits="0" data-linenumber="43">
<code class="ruby"> options << "--modulepath '#{module_paths.join(';')}'"</code>
</li>
- <li class="never" data-hits="" data-linenumber="33">
+ <li class="never" data-hits="" data-linenumber="44">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="34">
+ <li class="never" data-hits="" data-linenumber="45">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="35">
+ <li class="missed" data-hits="0" data-linenumber="46">
<code class="ruby"> if @hiera_config_path</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="36">
+ <li class="missed" data-hits="0" data-linenumber="47">
<code class="ruby"> options << "--hiera_config=#{@hiera_config_path}"</code>
</li>
- <li class="never" data-hits="" data-linenumber="37">
+ <li class="never" data-hits="" data-linenumber="48">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="38">
+ <li class="never" data-hits="" data-linenumber="49">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="39">
+ <li class="missed" data-hits="0" data-linenumber="50">
<code class="ruby"> if !@machine.env.ui.is_a?(Vagrant::UI::Colored)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="40">
+ <li class="missed" data-hits="0" data-linenumber="51">
<code class="ruby"> options << "--color=false"</code>
</li>
- <li class="never" data-hits="" data-linenumber="41">
+ <li class="never" data-hits="" data-linenumber="52">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="42">
+ <li class="never" data-hits="" data-linenumber="53">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="43">
+ <li class="missed" data-hits="0" data-linenumber="54">
<code class="ruby"> options << "--manifestdir #{manifests_guest_path}"</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="44">
+ <li class="missed" data-hits="0" data-linenumber="55">
<code class="ruby"> options << "--detailed-exitcodes"</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="45">
+ <li class="missed" data-hits="0" data-linenumber="56">
<code class="ruby"> options << @manifest_file</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="46">
+ <li class="missed" data-hits="0" data-linenumber="57">
<code class="ruby"> options = options.join(" ")</code>
</li>
- <li class="never" data-hits="" data-linenumber="47">
+ <li class="never" data-hits="" data-linenumber="58">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="48">
+ <li class="never" data-hits="" data-linenumber="59">
<code class="ruby"> # Build up the custom facts if we have any</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="49">
+ <li class="missed" data-hits="0" data-linenumber="60">
<code class="ruby"> facter = ""</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="50">
+ <li class="missed" data-hits="0" data-linenumber="61">
<code class="ruby"> if !config.facter.empty?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="51">
+ <li class="missed" data-hits="0" data-linenumber="62">
<code class="ruby"> facts = []</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="52">
+ <li class="missed" data-hits="0" data-linenumber="63">
<code class="ruby"> config.facter.each do |key, value|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="53">
+ <li class="missed" data-hits="0" data-linenumber="64">
<code class="ruby"> facts << "$env:FACTER_#{key}='#{value}';"</code>
</li>
- <li class="never" data-hits="" data-linenumber="54">
+ <li class="never" data-hits="" data-linenumber="65">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="55">
+ <li class="never" data-hits="" data-linenumber="66">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="56">
+ <li class="missed" data-hits="0" data-linenumber="67">
<code class="ruby"> facter = "#{facts.join(" ")} "</code>
</li>
- <li class="never" data-hits="" data-linenumber="57">
+ <li class="never" data-hits="" data-linenumber="68">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="58">
+ <li class="never" data-hits="" data-linenumber="69">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="59">
+ <li class="missed" data-hits="0" data-linenumber="70">
<code class="ruby"> command = "#{facter} puppet apply #{options}"</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="60">
+ <li class="missed" data-hits="0" data-linenumber="71">
<code class="ruby"> if config.working_directory</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="61">
+ <li class="missed" data-hits="0" data-linenumber="72">
<code class="ruby"> command = "cd #{config.working_directory}; if($?) \{ #{command} \}"</code>
</li>
- <li class="never" data-hits="" data-linenumber="62">
+ <li class="never" data-hits="" data-linenumber="73">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="63">
+ <li class="never" data-hits="" data-linenumber="74">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="64">
+ <li class="missed" data-hits="0" data-linenumber="75">
<code class="ruby"> @machine.env.ui.info I18n.t("vagrant.provisioners.puppet.running_puppet",</code>
</li>
- <li class="never" data-hits="" data-linenumber="65">
+ <li class="never" data-hits="" data-linenumber="76">
<code class="ruby"> :manifest => @manifest_file)</code>
</li>
- <li class="never" data-hits="" data-linenumber="66">
+ <li class="never" data-hits="" data-linenumber="77">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="67">
+ <li class="missed" data-hits="0" data-linenumber="78">
<code class="ruby"> @machine.communicate.sudo(command) do |type, data|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="68">
+ <li class="missed" data-hits="0" data-linenumber="79">
<code class="ruby"> if !data.empty?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="69">
+ <li class="missed" data-hits="0" data-linenumber="80">
<code class="ruby"> @machine.env.ui.info(data, :new_line => false, :prefix => false)</code>
</li>
- <li class="never" data-hits="" data-linenumber="70">
+ <li class="never" data-hits="" data-linenumber="81">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="71">
+ <li class="never" data-hits="" data-linenumber="82">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="72">
+ <li class="never" data-hits="" data-linenumber="83">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="73">
+ <li class="never" data-hits="" data-linenumber="84">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="74">
+ <li class="covered" data-hits="1" data-linenumber="85">
<span class="hits">1</span>
<code class="ruby"> def configure_on_windows(root_config)</code>
</li>
- <li class="never" data-hits="" data-linenumber="75">
+ <li class="never" data-hits="" data-linenumber="86">
<code class="ruby"> # Calculate the paths we're going to use based on the environment</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="76">
+ <li class="missed" data-hits="0" data-linenumber="87">
<code class="ruby"> root_path = @machine.env.root_path</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="77">
+ <li class="missed" data-hits="0" data-linenumber="88">
<code class="ruby"> @expanded_manifests_path = @config.expanded_manifests_path(root_path)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="78">
+ <li class="missed" data-hits="0" data-linenumber="89">
<code class="ruby"> @expanded_module_paths = @config.expanded_module_paths(root_path)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="79">
+ <li class="missed" data-hits="0" data-linenumber="90">
<code class="ruby"> @manifest_file = File.join(manifests_guest_path, @config.manifest_file)</code>
</li>
- <li class="never" data-hits="" data-linenumber="80">
+ <li class="never" data-hits="" data-linenumber="91">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="81">
+ <li class="never" data-hits="" data-linenumber="92">
<code class="ruby"> # Setup the module paths</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="82">
+ <li class="missed" data-hits="0" data-linenumber="93">
<code class="ruby"> @module_paths = []</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="83">
+ <li class="missed" data-hits="0" data-linenumber="94">
<code class="ruby"> @expanded_module_paths.each_with_index do |path, i|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="84">
+ <li class="missed" data-hits="0" data-linenumber="95">
<code class="ruby"> @module_paths << [path, File.join(config.temp_dir, "modules-#{i}")]</code>
</li>
- <li class="never" data-hits="" data-linenumber="85">
+ <li class="never" data-hits="" data-linenumber="96">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="86">
+ <li class="never" data-hits="" data-linenumber="97">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="87">
+ <li class="missed" data-hits="0" data-linenumber="98">
<code class="ruby"> @logger.debug("Syncing folders from puppet configure")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="88">
+ <li class="missed" data-hits="0" data-linenumber="99">
<code class="ruby"> @logger.debug("manifests_guest_path = #{manifests_guest_path}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="89">
+ <li class="missed" data-hits="0" data-linenumber="100">
<code class="ruby"> @logger.debug("expanded_manifests_path = #{@expanded_manifests_path}")</code>
</li>
- <li class="never" data-hits="" data-linenumber="90">
+ <li class="never" data-hits="" data-linenumber="101">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="91">
+ <li class="never" data-hits="" data-linenumber="102">
<code class="ruby"> # Windows guest volume mounting fails without an "id" specified</code>
</li>
- <li class="never" data-hits="" data-linenumber="92">
+ <li class="never" data-hits="" data-linenumber="103">
<code class="ruby"> # This hacks around that problem and allows the PS mount script to work</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="93">
+ <li class="missed" data-hits="0" data-linenumber="104">
<code class="ruby"> root_config.vm.synced_folder(</code>
</li>
- <li class="never" data-hits="" data-linenumber="94">
+ <li class="never" data-hits="" data-linenumber="105">
<code class="ruby"> @expanded_manifests_path, manifests_guest_path,</code>
</li>
- <li class="never" data-hits="" data-linenumber="95">
+ <li class="never" data-hits="" data-linenumber="106">
<code class="ruby"> :id => "v-manifests-1")</code>
</li>
- <li class="never" data-hits="" data-linenumber="96">
+ <li class="never" data-hits="" data-linenumber="107">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="97">
+ <li class="never" data-hits="" data-linenumber="108">
<code class="ruby"> # Share the manifests directory with the guest</code>
</li>
- <li class="never" data-hits="" data-linenumber="98">
+ <li class="never" data-hits="" data-linenumber="109">
<code class="ruby"> #root_config.vm.synced_folder(</code>
</li>
- <li class="never" data-hits="" data-linenumber="99">
+ <li class="never" data-hits="" data-linenumber="110">
<code class="ruby"> # @expanded_manifests_path, manifests_guest_path)</code>
</li>
- <li class="never" data-hits="" data-linenumber="100">
+ <li class="never" data-hits="" data-linenumber="111">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="101">
+ <li class="never" data-hits="" data-linenumber="112">
<code class="ruby"> # Share the module paths</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="102">
+ <li class="missed" data-hits="0" data-linenumber="113">
<code class="ruby"> count = 0</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="103">
+ <li class="missed" data-hits="0" data-linenumber="114">
<code class="ruby"> @module_paths.each do |from, to|</code>
</li>
- <li class="never" data-hits="" data-linenumber="104">
+ <li class="never" data-hits="" data-linenumber="115">
<code class="ruby"> # Sorry for the cryptic key here, but VirtualBox has a strange limit on</code>
</li>
- <li class="never" data-hits="" data-linenumber="105">
+ <li class="never" data-hits="" data-linenumber="116">
<code class="ruby"> # maximum size for it and its something small (around 10)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="106">
+ <li class="missed" data-hits="0" data-linenumber="117">
<code class="ruby"> root_config.vm.synced_folder(from, to, :id => "v-modules-#{count}")</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="107">
+ <li class="missed" data-hits="0" data-linenumber="118">
<code class="ruby"> count += 1</code>
</li>
- <li class="never" data-hits="" data-linenumber="108">
+ <li class="never" data-hits="" data-linenumber="119">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="109">
+ <li class="never" data-hits="" data-linenumber="120">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="110">
+ <li class="never" data-hits="" data-linenumber="121">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="111">
+ <li class="covered" data-hits="1" data-linenumber="122">
<span class="hits">1</span>
- <code class="ruby"> def is_windows</code>
+ <code class="ruby"> def is_windows?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="112">
+ <li class="missed" data-hits="0" data-linenumber="123">
- <code class="ruby"> @machine.config.vm.guest.eql? :windows</code>
+ <code class="ruby"> VagrantWindows::WindowsMachine.is_windows?(@machine)</code>
</li>
- <li class="never" data-hits="" data-linenumber="113">
+ <li class="never" data-hits="" data-linenumber="124">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="114">
+ <li class="never" data-hits="" data-linenumber="125">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="115">
+ <li class="never" data-hits="" data-linenumber="126">
<code class="ruby"> end # Puppet class</code>
</li>
- <li class="never" data-hits="" data-linenumber="116">
+ <li class="never" data-hits="" data-linenumber="127">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="117">
+ <li class="never" data-hits="" data-linenumber="128">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="118">
+ <li class="never" data-hits="" data-linenumber="129">
<code class="ruby">end</code>
</li>
@@ -6717,15 +6903,15 @@
</div>
<div class="source_table" id="8dd805604e0326933cecd09151f4d1dac947b74c">
<div class="header">
<h3>lib/vagrant-windows/monkey_patches/plugins/provisioners/shell/provisioner.rb</h3>
- <h4><span class="red">32.43 %</span> covered</h4>
+ <h4><span class="red">31.58 %</span> covered</h4>
<div>
- <b>37</b> relevant lines.
+ <b>38</b> relevant lines.
<span class="green"><b>12</b> lines covered</span> and
- <span class="red"><b>25</b> lines missed.</span>
+ <span class="red"><b>26</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -6740,502 +6926,502 @@
<span class="hits">1</span>
<code class="ruby">require_relative '../../../../helper'</code>
</li>
- <li class="never" data-hits="" data-linenumber="3">
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+ <code class="ruby">require_relative '../../../../windows_machine'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="4">
+ <li class="covered" data-hits="1" data-linenumber="5">
<span class="hits">1</span>
<code class="ruby">module VagrantPlugins</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="5">
+ <li class="covered" data-hits="1" data-linenumber="6">
<span class="hits">1</span>
<code class="ruby"> module Shell</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="6">
+ <li class="covered" data-hits="1" data-linenumber="7">
<span class="hits">1</span>
<code class="ruby"> class Provisioner < Vagrant.plugin("2", :provisioner)</code>
</li>
- <li class="never" data-hits="" data-linenumber="7">
+ <li class="never" data-hits="" data-linenumber="8">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="8">
+ <li class="covered" data-hits="1" data-linenumber="9">
<span class="hits">1</span>
<code class="ruby"> include VagrantWindows::Helper</code>
</li>
- <li class="never" data-hits="" data-linenumber="9">
+ <li class="never" data-hits="" data-linenumber="10">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="10">
+ <li class="never" data-hits="" data-linenumber="11">
<code class="ruby"> # This patch is needed until Vagrant supports Puppet on Windows guests</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="11">
+ <li class="covered" data-hits="1" data-linenumber="12">
<span class="hits">1</span>
<code class="ruby"> provision_on_linux = instance_method(:provision)</code>
</li>
- <li class="never" data-hits="" data-linenumber="12">
+ <li class="never" data-hits="" data-linenumber="13">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="13">
+ <li class="covered" data-hits="1" data-linenumber="14">
<span class="hits">1</span>
<code class="ruby"> define_method(:provision) do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="14">
+ <li class="missed" data-hits="0" data-linenumber="15">
- <code class="ruby"> is_windows ? provision_on_windows() : provision_on_linux.bind(self).()</code>
+ <code class="ruby"> VagrantWindows::WindowsMachine.is_windows?(@machine) ? provision_on_windows() : provision_on_linux.bind(self).()</code>
</li>
- <li class="never" data-hits="" data-linenumber="15">
+ <li class="never" data-hits="" data-linenumber="16">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="16">
+ <li class="never" data-hits="" data-linenumber="17">
- <code class="ruby"></code>
+ <code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="17">
+ <li class="covered" data-hits="1" data-linenumber="18">
<span class="hits">1</span>
<code class="ruby"> def provision_on_windows</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="18">
+ <li class="missed" data-hits="0" data-linenumber="19">
<code class="ruby"> args = ""</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="19">
+ <li class="missed" data-hits="0" data-linenumber="20">
<code class="ruby"> args = " #{config.args}" if config.args</code>
</li>
- <li class="never" data-hits="" data-linenumber="20">
+ <li class="never" data-hits="" data-linenumber="21">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="21">
+ <li class="missed" data-hits="0" data-linenumber="22">
+ <code class="ruby"> windows_machine = VagrantWindows::WindowsMachine.new(@machine)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="23">
+
+
+ <code class="ruby"> wait_if_rebooting(windows_machine)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="25">
+
+
<code class="ruby"> with_script_file do |path|</code>
</li>
- <li class="never" data-hits="" data-linenumber="22">
+ <li class="never" data-hits="" data-linenumber="26">
<code class="ruby"> # Upload the script to the machine</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="missed" data-hits="0" data-linenumber="27">
<code class="ruby"> @machine.communicate.tap do |comm|</code>
</li>
- <li class="never" data-hits="" data-linenumber="24">
+ <li class="never" data-hits="" data-linenumber="28">
<code class="ruby"> # Ensure the uploaded script has a file extension, by default</code>
</li>
- <li class="never" data-hits="" data-linenumber="25">
+ <li class="never" data-hits="" data-linenumber="29">
<code class="ruby"> # config.upload_path from vagrant core does not</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="26">
+ <li class="missed" data-hits="0" data-linenumber="30">
<code class="ruby"> fixed_upload_path = if File.extname(config.upload_path) == ""</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="27">
+ <li class="missed" data-hits="0" data-linenumber="31">
<code class="ruby"> "#{config.upload_path}#{File.extname(path.to_s)}"</code>
</li>
- <li class="never" data-hits="" data-linenumber="28">
+ <li class="never" data-hits="" data-linenumber="32">
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="29">
+ <li class="missed" data-hits="0" data-linenumber="33">
<code class="ruby"> config.upload_path</code>
</li>
- <li class="never" data-hits="" data-linenumber="30">
+ <li class="never" data-hits="" data-linenumber="34">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="31">
+ <li class="missed" data-hits="0" data-linenumber="35">
<code class="ruby"> comm.upload(path.to_s, fixed_upload_path)</code>
</li>
- <li class="never" data-hits="" data-linenumber="32">
+ <li class="never" data-hits="" data-linenumber="36">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="33">
+ <li class="missed" data-hits="0" data-linenumber="37">
<code class="ruby"> command = <<-EOH</code>
</li>
- <li class="never" data-hits="" data-linenumber="34">
+ <li class="never" data-hits="" data-linenumber="38">
<code class="ruby"> $old = Get-ExecutionPolicy;</code>
</li>
- <li class="never" data-hits="" data-linenumber="35">
+ <li class="never" data-hits="" data-linenumber="39">
<code class="ruby"> Set-ExecutionPolicy Unrestricted -force;</code>
</li>
- <li class="never" data-hits="" data-linenumber="36">
+ <li class="never" data-hits="" data-linenumber="40">
<code class="ruby"> #{win_friendly_path(fixed_upload_path)}#{args};</code>
</li>
- <li class="never" data-hits="" data-linenumber="37">
+ <li class="never" data-hits="" data-linenumber="41">
<code class="ruby"> Set-ExecutionPolicy $old -force</code>
</li>
- <li class="never" data-hits="" data-linenumber="38">
+ <li class="never" data-hits="" data-linenumber="42">
<code class="ruby"> EOH</code>
</li>
- <li class="never" data-hits="" data-linenumber="39">
+ <li class="never" data-hits="" data-linenumber="43">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="40">
+ <li class="never" data-hits="" data-linenumber="44">
<code class="ruby"> # Execute it with sudo</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="41">
+ <li class="missed" data-hits="0" data-linenumber="45">
<code class="ruby"> comm.sudo(command) do |type, data|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="42">
+ <li class="missed" data-hits="0" data-linenumber="46">
<code class="ruby"> if [:stderr, :stdout].include?(type)</code>
</li>
- <li class="never" data-hits="" data-linenumber="43">
+ <li class="never" data-hits="" data-linenumber="47">
<code class="ruby"> # Output the data with the proper color based on the stream.</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="44">
+ <li class="missed" data-hits="0" data-linenumber="48">
<code class="ruby"> color = type == :stdout ? :green : :red</code>
</li>
- <li class="never" data-hits="" data-linenumber="45">
+ <li class="never" data-hits="" data-linenumber="49">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="46">
+ <li class="missed" data-hits="0" data-linenumber="50">
<code class="ruby"> @machine.ui.info(</code>
</li>
- <li class="never" data-hits="" data-linenumber="47">
+ <li class="never" data-hits="" data-linenumber="51">
<code class="ruby"> data,</code>
</li>
- <li class="never" data-hits="" data-linenumber="48">
+ <li class="never" data-hits="" data-linenumber="52">
<code class="ruby"> :color => color, :new_line => false, :prefix => false)</code>
</li>
- <li class="never" data-hits="" data-linenumber="49">
+ <li class="never" data-hits="" data-linenumber="53">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="50">
+ <li class="never" data-hits="" data-linenumber="54">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="51">
+ <li class="never" data-hits="" data-linenumber="55">
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="52">
+ <li class="never" data-hits="" data-linenumber="56">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="53">
+ <li class="never" data-hits="" data-linenumber="57">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="54">
+ <li class="never" data-hits="" data-linenumber="58">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="55">
+ <li class="never" data-hits="" data-linenumber="59">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="56">
+ <li class="never" data-hits="" data-linenumber="60">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="57">
+ <li class="covered" data-hits="1" data-linenumber="61">
<span class="hits">1</span>
<code class="ruby"> protected</code>
</li>
- <li class="never" data-hits="" data-linenumber="58">
+ <li class="never" data-hits="" data-linenumber="62">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="59">
+ <li class="never" data-hits="" data-linenumber="63">
<code class="ruby"> # This method yields the path to a script to upload and execute</code>
</li>
- <li class="never" data-hits="" data-linenumber="60">
+ <li class="never" data-hits="" data-linenumber="64">
<code class="ruby"> # on the remote server. This method will properly clean up the</code>
</li>
- <li class="never" data-hits="" data-linenumber="61">
+ <li class="never" data-hits="" data-linenumber="65">
<code class="ruby"> # script file if needed.</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="62">
+ <li class="covered" data-hits="1" data-linenumber="66">
<span class="hits">1</span>
<code class="ruby"> def with_script_file</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="63">
+ <li class="missed" data-hits="0" data-linenumber="67">
<code class="ruby"> if config.path</code>
</li>
- <li class="never" data-hits="" data-linenumber="64">
+ <li class="never" data-hits="" data-linenumber="68">
<code class="ruby"> # Just yield the path to that file...</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="65">
+ <li class="missed" data-hits="0" data-linenumber="69">
<code class="ruby"> yield config.path</code>
</li>
- <li class="never" data-hits="" data-linenumber="66">
+ <li class="never" data-hits="" data-linenumber="70">
<code class="ruby"> else</code>
</li>
- <li class="never" data-hits="" data-linenumber="67">
+ <li class="never" data-hits="" data-linenumber="71">
<code class="ruby"> # Otherwise we have an inline script, we need to Tempfile it,</code>
</li>
- <li class="never" data-hits="" data-linenumber="68">
+ <li class="never" data-hits="" data-linenumber="72">
<code class="ruby"> # and handle it specially...</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="69">
+ <li class="missed" data-hits="0" data-linenumber="73">
<code class="ruby"> file = Tempfile.new(['vagrant-powershell', '.ps1'])</code>
</li>
- <li class="never" data-hits="" data-linenumber="70">
+ <li class="never" data-hits="" data-linenumber="74">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="71">
+ <li class="missed" data-hits="0" data-linenumber="75">
<code class="ruby"> begin</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="72">
+ <li class="missed" data-hits="0" data-linenumber="76">
<code class="ruby"> file.write(config.inline)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="73">
+ <li class="missed" data-hits="0" data-linenumber="77">
<code class="ruby"> file.fsync</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="74">
+ <li class="missed" data-hits="0" data-linenumber="78">
<code class="ruby"> file.close</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="75">
+ <li class="missed" data-hits="0" data-linenumber="79">
<code class="ruby"> yield file.path</code>
</li>
- <li class="never" data-hits="" data-linenumber="76">
+ <li class="never" data-hits="" data-linenumber="80">
<code class="ruby"> ensure</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="77">
+ <li class="missed" data-hits="0" data-linenumber="81">
<code class="ruby"> file.close</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="78">
+ <li class="missed" data-hits="0" data-linenumber="82">
<code class="ruby"> file.unlink</code>
</li>
- <li class="never" data-hits="" data-linenumber="79">
+ <li class="never" data-hits="" data-linenumber="83">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="80">
+ <li class="never" data-hits="" data-linenumber="84">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="81">
-
-
- <code class="ruby"> end</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="82">
-
-
- <code class="ruby"></code>
- </li>
-
- <li class="covered" data-hits="1" data-linenumber="83">
- <span class="hits">1</span>
-
- <code class="ruby"> def is_windows</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="84">
-
-
- <code class="ruby"> @machine.config.vm.guest.eql? :windows</code>
- </li>
-
<li class="never" data-hits="" data-linenumber="85">
<code class="ruby"> end</code>
</li>
@@ -8058,361 +8244,727 @@
</ol>
</pre>
</div>
- <div class="source_table" id="13b6aec4445d4eeafa03e964d1e1486037abd7a4">
+ <div class="source_table" id="2942f83d8bbaec9486dce51dfc24c9b92f3ea2ee">
<div class="header">
- <h3>spec/vagrant-windows/helper_spec.rb</h3>
- <h4><span class="green">100.0 %</span> covered</h4>
+ <h3>lib/vagrant-windows/windows_machine.rb</h3>
+ <h4><span class="red">68.0 %</span> covered</h4>
<div>
- <b>29</b> relevant lines.
- <span class="green"><b>29</b> lines covered</span> and
- <span class="red"><b>0</b> lines missed.</span>
+ <b>25</b> relevant lines.
+ <span class="green"><b>17</b> lines covered</span> and
+ <span class="red"><b>8</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
<li class="covered" data-hits="1" data-linenumber="1">
<span class="hits">1</span>
- <code class="ruby">require 'spec_helper'</code>
+ <code class="ruby">module VagrantWindows</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="2">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="2">
- <code class="ruby">require 'mocha/api'</code>
+
+ <code class="ruby"> </code>
</li>
<li class="never" data-hits="" data-linenumber="3">
- <code class="ruby"></code>
+ <code class="ruby"> # Provides a wrapper around the Vagrant machine object</code>
</li>
<li class="covered" data-hits="1" data-linenumber="4">
<span class="hits">1</span>
- <code class="ruby">describe VagrantWindows::Helper , :unit => true do</code>
+ <code class="ruby"> class WindowsMachine</code>
</li>
<li class="never" data-hits="" data-linenumber="5">
- <code class="ruby"> </code>
+ <code class="ruby"> </code>
</li>
<li class="covered" data-hits="1" data-linenumber="6">
<span class="hits">1</span>
- <code class="ruby"> class DummyHelper</code>
+ <code class="ruby"> attr_reader :machine</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="7">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="7">
- <code class="ruby"> include VagrantWindows::Helper</code>
+
+ <code class="ruby"> </code>
</li>
<li class="never" data-hits="" data-linenumber="8">
- <code class="ruby"> end</code>
+ <code class="ruby"> # Returns true if the specifed Vagrant machine is a Windows guest, otherwise false.</code>
</li>
<li class="never" data-hits="" data-linenumber="9">
- <code class="ruby"> </code>
+ <code class="ruby"> #</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="10">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="10">
- <code class="ruby"> before(:all) do</code>
+
+ <code class="ruby"> # @param [Machine] The Vagrant machine object</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="11">
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"> # @return [Boolean]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
<span class="hits">1</span>
- <code class="ruby"> @dummy = DummyHelper.new</code>
+ <code class="ruby"> def self.is_windows?(machine)</code>
</li>
- <li class="never" data-hits="" data-linenumber="12">
+ <li class="covered" data-hits="2" data-linenumber="13">
+ <span class="hits">2</span>
+ <code class="ruby"> machine.config.vm.guest.eql? :windows</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
- <code class="ruby"> end</code>
+
+ <code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="13">
+ <li class="never" data-hits="" data-linenumber="15">
- <code class="ruby"></code>
+ <code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="14">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="16">
- <code class="ruby"> describe "win_friendly_path" do</code>
+
+ <code class="ruby"> # @param [Machine] The Vagrant machine object</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="15">
+ <li class="covered" data-hits="1" data-linenumber="17">
<span class="hits">1</span>
- <code class="ruby"> it "should replace slashes with backslashes" do</code>
+ <code class="ruby"> def initialize(machine)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="16">
- <span class="hits">1</span>
+ <li class="covered" data-hits="4" data-linenumber="18">
+ <span class="hits">4</span>
- <code class="ruby"> @dummy.win_friendly_path('c:/tmp/dir').should eq('c:\\tmp\\dir')</code>
+ <code class="ruby"> @machine = machine</code>
</li>
- <li class="never" data-hits="" data-linenumber="17">
+ <li class="covered" data-hits="4" data-linenumber="19">
+ <span class="hits">4</span>
+ <code class="ruby"> @logger = Log4r::Logger.new("vagrant_windows::windows_machine")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="18">
+ <li class="never" data-hits="" data-linenumber="21">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="19">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="22">
- <code class="ruby"> it "should prepend c: drive if not drive specified" do</code>
+
+ <code class="ruby"> # Checks to see if the machine is using VMWare Fusion or Workstation.</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="20">
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> # @return [Boolean]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
<span class="hits">1</span>
- <code class="ruby"> @dummy.win_friendly_path('/tmp/dir').should eq('c:\\tmp\\dir')</code>
+ <code class="ruby"> def is_vmware?()</code>
</li>
- <li class="never" data-hits="" data-linenumber="21">
+ <li class="covered" data-hits="3" data-linenumber="26">
+ <span class="hits">3</span>
+ <code class="ruby"> @machine.provider_name.to_s().start_with?('vmware')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="22">
+ <li class="never" data-hits="" data-linenumber="28">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="23">
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"> # Checks to see if the machine is rebooting or has a scheduled reboot.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> # @return [Boolean] True if rebooting</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="32">
<span class="hits">1</span>
- <code class="ruby"> it "should return nil if no path specified" do</code>
+ <code class="ruby"> def is_rebooting?()</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="24">
+ <li class="missed" data-hits="0" data-linenumber="33">
+
+
+ <code class="ruby"> reboot_detect_script = VagrantWindows.load_script('reboot_detect.ps1')</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="34">
+
+
+ <code class="ruby"> @machine.communicate.execute(reboot_detect_script, :error_check => false) != 0</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="37">
+
+
+ <code class="ruby"> # Returns the active WinRMShell for the guest.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"> # @return [WinRMShell]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
<span class="hits">1</span>
- <code class="ruby"> @dummy.win_friendly_path(nil).should be_nil</code>
+ <code class="ruby"> def winrmshell()</code>
</li>
- <li class="never" data-hits="" data-linenumber="25">
+ <li class="missed" data-hits="0" data-linenumber="41">
+ <code class="ruby"> @machine.communicate.winrmshell</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="26">
+ <li class="never" data-hits="" data-linenumber="43">
- <code class="ruby"> end</code>
+ <code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="27">
+ <li class="never" data-hits="" data-linenumber="44">
- <code class="ruby"> </code>
+ <code class="ruby"> # Reads the machine's MAC addresses keyed by interface index.</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="28">
+ <li class="never" data-hits="" data-linenumber="45">
+
+
+ <code class="ruby"> # {1=>"0800273FAC5A", 2=>"08002757E68A"}</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"> # @return [Hash]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="48">
<span class="hits">1</span>
- <code class="ruby"> describe "win_friendly_share_id" do</code>
+ <code class="ruby"> def read_mac_addresses()</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="29">
+ <li class="missed" data-hits="0" data-linenumber="49">
+
+
+ <code class="ruby"> @machine.provider.driver.read_mac_addresses</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="50">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="51">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="52">
+
+
+ <code class="ruby"> # Returns a list of forwarded ports for a VM.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="53">
+
+
+ <code class="ruby"> # NOTE: For VMWare this is currently unsupported.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="54">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+
+ <code class="ruby"> # @return [Array<Array>]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="56">
<span class="hits">1</span>
- <code class="ruby"> it "should use share id if present" do</code>
+ <code class="ruby"> def read_forwarded_ports()</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="30">
+ <li class="missed" data-hits="0" data-linenumber="57">
+
+
+ <code class="ruby"> is_vmware?() ? [] : @machine.provider.driver.read_forwarded_ports</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="58">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="59">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="60">
+
+
+ <code class="ruby"> # Returns the SSH config for this machine.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="61">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="62">
+
+
+ <code class="ruby"> # @return [Hash]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="63">
<span class="hits">1</span>
- <code class="ruby"> @dummy.win_friendly_share_id('sharename').should eq('sharename')</code>
+ <code class="ruby"> def ssh_info()</code>
</li>
- <li class="never" data-hits="" data-linenumber="31">
+ <li class="missed" data-hits="0" data-linenumber="64">
+ <code class="ruby"> @machine.ssh_info</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="65">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="32">
+ <li class="never" data-hits="" data-linenumber="66">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="33">
+ <li class="covered" data-hits="1" data-linenumber="67">
<span class="hits">1</span>
- <code class="ruby"> it "should use last folder name in guest_path" do</code>
+ <code class="ruby"> def windows_config()</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="34">
+ <li class="missed" data-hits="0" data-linenumber="68">
+
+
+ <code class="ruby"> @machine.config.windows</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="69">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="70">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="71">
<span class="hits">1</span>
- <code class="ruby"> @dummy.win_friendly_share_id('/tmp/folder/sharename').should eq('tmp_folder_sharename')</code>
+ <code class="ruby"> def winrm_config()</code>
</li>
- <li class="never" data-hits="" data-linenumber="35">
+ <li class="missed" data-hits="0" data-linenumber="72">
+ <code class="ruby"> @machine.config.winrm</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="73">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="36">
+ <li class="never" data-hits="" data-linenumber="74">
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="75">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="76">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="13b6aec4445d4eeafa03e964d1e1486037abd7a4">
+ <div class="header">
+ <h3>spec/vagrant-windows/helper_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>19</b> relevant lines.
+ <span class="green"><b>19</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'spec_helper'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'mocha/api'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="37">
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+ <code class="ruby">describe VagrantWindows::Helper , :unit => true do</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> class DummyHelper</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> include VagrantWindows::Helper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="38">
+ <li class="never" data-hits="" data-linenumber="9">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="39">
+ <li class="covered" data-hits="1" data-linenumber="10">
<span class="hits">1</span>
- <code class="ruby"> describe "is_vmware" do</code>
+ <code class="ruby"> before(:all) do</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="40">
+ <li class="covered" data-hits="1" data-linenumber="11">
<span class="hits">1</span>
- <code class="ruby"> it "should be true for vmware_fusion" do</code>
+ <code class="ruby"> @dummy = DummyHelper.new</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="41">
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
<span class="hits">1</span>
- <code class="ruby"> machine = stub(:provider_name => :vmware_fusion)</code>
+ <code class="ruby"> describe "win_friendly_path" do</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="42">
+ <li class="covered" data-hits="1" data-linenumber="15">
<span class="hits">1</span>
- <code class="ruby"> expect(@dummy.is_vmware(machine)).to be_true</code>
+ <code class="ruby"> it "should replace slashes with backslashes" do</code>
</li>
- <li class="never" data-hits="" data-linenumber="43">
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+ <code class="ruby"> @dummy.win_friendly_path('c:/tmp/dir').should eq('c:\\tmp\\dir')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="44">
+ <li class="never" data-hits="" data-linenumber="18">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="45">
+ <li class="covered" data-hits="1" data-linenumber="19">
<span class="hits">1</span>
- <code class="ruby"> it "should be true for vmware_workstation" do</code>
+ <code class="ruby"> it "should prepend c: drive if not drive specified" do</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="46">
+ <li class="covered" data-hits="1" data-linenumber="20">
<span class="hits">1</span>
- <code class="ruby"> machine = stub(:provider_name => :vmware_workstation)</code>
+ <code class="ruby"> @dummy.win_friendly_path('/tmp/dir').should eq('c:\\tmp\\dir')</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="47">
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="22">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="23">
<span class="hits">1</span>
- <code class="ruby"> expect(@dummy.is_vmware(machine)).to be_true</code>
+ <code class="ruby"> it "should return nil if no path specified" do</code>
</li>
- <li class="never" data-hits="" data-linenumber="48">
+ <li class="covered" data-hits="1" data-linenumber="24">
+ <span class="hits">1</span>
+ <code class="ruby"> @dummy.win_friendly_path(nil).should be_nil</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="49">
+ <li class="never" data-hits="" data-linenumber="26">
- <code class="ruby"> </code>
+ <code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="50">
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
<span class="hits">1</span>
- <code class="ruby"> it "should be false for virtual_box" do</code>
+ <code class="ruby"> describe "win_friendly_share_id" do</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="51">
+ <li class="covered" data-hits="1" data-linenumber="29">
<span class="hits">1</span>
- <code class="ruby"> machine = stub(:provider_name => :virtual_box)</code>
+ <code class="ruby"> it "should use share id if present" do</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="52">
+ <li class="covered" data-hits="1" data-linenumber="30">
<span class="hits">1</span>
- <code class="ruby"> expect(@dummy.is_vmware(machine)).to be_false</code>
+ <code class="ruby"> @dummy.win_friendly_share_id('sharename').should eq('sharename')</code>
</li>
- <li class="never" data-hits="" data-linenumber="53">
+ <li class="never" data-hits="" data-linenumber="31">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="54">
+ <li class="never" data-hits="" data-linenumber="32">
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="33">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should use last folder name in guest_path" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @dummy.win_friendly_share_id('/tmp/folder/sharename').should eq('tmp_folder_sharename')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="55">
+ <li class="never" data-hits="" data-linenumber="37">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="56">
+ <li class="never" data-hits="" data-linenumber="38">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="57">
+ <li class="never" data-hits="" data-linenumber="39">
<code class="ruby">end</code>
</li>
@@ -8814,10 +9366,292 @@
</ol>
</pre>
</div>
+ <div class="source_table" id="43f77545cf4f67647d0945fb930bc745e38cb962">
+ <div class="header">
+ <h3>spec/vagrant-windows/windows_machine_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>28</b> relevant lines.
+ <span class="green"><b>28</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'spec_helper'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'mocha/api'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'vagrant-windows/windows_machine'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby">describe VagrantWindows::WindowsMachine , :unit => true do</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> describe "is_vmware?" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should be true for vmware_fusion" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> machine = stub(:provider_name => :vmware_fusion)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> windows_machine = VagrantWindows::WindowsMachine.new(machine)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(windows_machine.is_vmware?()).to be_true</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should be true for vmware_workstation" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> machine = stub(:provider_name => :vmware_workstation)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+
+ <code class="ruby"> windows_machine = VagrantWindows::WindowsMachine.new(machine)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(windows_machine.is_vmware?()).to be_true</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should be false for virtual_box" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> machine = stub(:provider_name => :virtual_box)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
+
+ <code class="ruby"> windows_machine = VagrantWindows::WindowsMachine.new(machine)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="23">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(windows_machine.is_vmware?()).to be_false</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> describe "is_windows?" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should return true when config vm guest is windows" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="29">
+ <span class="hits">1</span>
+
+ <code class="ruby"> vm = stub(:guest => :windows)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="30">
+ <span class="hits">1</span>
+
+ <code class="ruby"> config = stub(:vm => vm)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
+
+ <code class="ruby"> machine = stub(:config => config)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="32">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(VagrantWindows::WindowsMachine.is_windows?(machine)).to be_true</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="35">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should return false when config vm guest is not windows" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
+
+ <code class="ruby"> vm = stub(:guest => :ubuntu)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="37">
+ <span class="hits">1</span>
+
+ <code class="ruby"> config = stub(:vm => vm)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="38">
+ <span class="hits">1</span>
+
+ <code class="ruby"> machine = stub(:config => config)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="39">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(VagrantWindows::WindowsMachine.is_windows?(machine)).to be_false</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="40">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="44">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="5a677aee80d575d53b9b20a950767cd27c7f2e9e">
<div class="header">
<h3>spec/vagrant-windows/winrm_config_spec.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
@@ -9021,15 +9855,15 @@
</div>
<div class="source_table" id="844842835a3c9ba296ba1e91954dcd0979df99b4">
<div class="header">
<h3>spec/vagrant-windows/winrmcommunicator_spec.rb</h3>
- <h4><span class="red">50.0 %</span> covered</h4>
+ <h4><span class="green">100.0 %</span> covered</h4>
<div>
- <b>14</b> relevant lines.
- <span class="green"><b>7</b> lines covered</span> and
- <span class="red"><b>7</b> lines missed.</span>
+ <b>24</b> relevant lines.
+ <span class="green"><b>24</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -9074,131 +9908,245 @@
<code class="ruby"> # Not ideal, but you have to start somewhere</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="8">
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
-
- <code class="ruby"> @shell = VagrantWindows::Communication::WinRMShell.new("localhost", "vagrant", "vagrant")</code>
- </li>
-
- <li class="missed" data-hits="0" data-linenumber="9">
-
-
<code class="ruby"> @communicator = VagrantWindows::Communication::WinRMCommunicator.new({})</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="10">
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
-
- <code class="ruby"> @communicator.set_winrmshell(@shell)</code>
+ <code class="ruby"> @communicator.winrmshell = VagrantWindows::Communication::WinRMShell.new("127.0.0.1", "vagrant", "vagrant")</code>
</li>
- <li class="never" data-hits="" data-linenumber="11">
+ <li class="never" data-hits="" data-linenumber="10">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="12">
+ <li class="never" data-hits="" data-linenumber="11">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="13">
+ <li class="covered" data-hits="1" data-linenumber="12">
<span class="hits">1</span>
<code class="ruby"> describe "execute" do</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="14">
+ <li class="covered" data-hits="1" data-linenumber="13">
<span class="hits">1</span>
<code class="ruby"> it "should return 1 when error_check is false" do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="15">
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
-
<code class="ruby"> expect(@communicator.execute("exit 1", { :error_check => false })).to eq(1)</code>
</li>
- <li class="never" data-hits="" data-linenumber="16">
+ <li class="never" data-hits="" data-linenumber="15">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="17">
+ <li class="never" data-hits="" data-linenumber="16">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="18">
+ <li class="covered" data-hits="1" data-linenumber="17">
<span class="hits">1</span>
<code class="ruby"> it "should raise WinRMExecutionError when error_check is true" do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="19">
+ <li class="covered" data-hits="2" data-linenumber="18">
+ <span class="hits">2</span>
-
<code class="ruby"> expect { @communicator.execute("exit 1") }.to raise_error(VagrantWindows::Errors::WinRMExecutionError)</code>
</li>
- <li class="never" data-hits="" data-linenumber="20">
+ <li class="never" data-hits="" data-linenumber="19">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="21">
+ <li class="never" data-hits="" data-linenumber="20">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="22">
+ <li class="covered" data-hits="1" data-linenumber="21">
<span class="hits">1</span>
<code class="ruby"> it "should raise specified error type when specified and error_check is true" do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
-
<code class="ruby"> opts = { :error_class => VagrantWindows::Errors::WinRMInvalidShell }</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="24">
+ <li class="covered" data-hits="2" data-linenumber="23">
+ <span class="hits">2</span>
-
<code class="ruby"> expect { @communicator.execute("exit 1", opts) }.to raise_error(VagrantWindows::Errors::WinRMInvalidShell)</code>
</li>
- <li class="never" data-hits="" data-linenumber="25">
+ <li class="never" data-hits="" data-linenumber="24">
<code class="ruby"> end</code>
</li>
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
<li class="never" data-hits="" data-linenumber="26">
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> describe "upload" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should upload the file and overwrite it if it exists" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="29">
+ <span class="hits">1</span>
+
+ <code class="ruby"> test_file = Tempfile.new("uploadtest")</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="30">
+ <span class="hits">1</span>
+
+ <code class="ruby"> IO.write(test_file, "hello world")</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @communicator.upload(test_file, "c:\\vagrantuploadtest.txt")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> # ensure we can overwrite</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> IO.write(test_file, "goodbye cruel world")</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="35">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @communicator.upload(test_file, "c:\\vagrantuploadtest.txt")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="37">
+
+
+ <code class="ruby"> # get the uploaded file's contents to ensure it uploaded properly</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="38">
+ <span class="hits">1</span>
+
+ <code class="ruby"> uploaded_file_content = ''</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="39">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @communicator.execute("cat c:\\vagrantuploadtest.txt", {}) do |type, line|</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="40">
+ <span class="hits">2</span>
+
+ <code class="ruby"> uploaded_file_content = uploaded_file_content + line</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="43">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(uploaded_file_content.chomp).to eq("goodbye cruel world")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="44">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="45">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="27">
+ <li class="never" data-hits="" data-linenumber="46">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="28">
+ <li class="never" data-hits="" data-linenumber="47">
<code class="ruby">end</code>
</li>
@@ -9209,12 +10157,12 @@
<div class="source_table" id="5bf85486dfa43acdf015a1bc09ffbc798937c5ed">
<div class="header">
<h3>spec/vagrant-windows/winrmfinder_spec.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
- <b>24</b> relevant lines.
- <span class="green"><b>24</b> lines covered</span> and
+ <b>22</b> relevant lines.
+ <span class="green"><b>22</b> lines covered</span> and
<span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
@@ -9335,152 +10283,140 @@
</li>
<li class="covered" data-hits="1" data-linenumber="20">
<span class="hits">1</span>
- <code class="ruby"> machine_config = stub(:winrm => winrm_config)</code>
+ <code class="ruby"> @machine.stubs(:winrm_config).returns(winrm_config)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="21">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="21">
- <code class="ruby"> @machine.stubs(:config).returns(machine_config)</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="22">
-
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="23">
+ <li class="never" data-hits="" data-linenumber="22">
<code class="ruby"> # setup the machine ssh_info to return a 10.0.0.1</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="24">
+ <li class="covered" data-hits="1" data-linenumber="23">
<span class="hits">1</span>
<code class="ruby"> @machine.stubs(:ssh_info).returns({ :host => '10.0.0.1' })</code>
</li>
- <li class="never" data-hits="" data-linenumber="25">
+ <li class="never" data-hits="" data-linenumber="24">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="26">
+ <li class="covered" data-hits="1" data-linenumber="25">
<span class="hits">1</span>
<code class="ruby"> expect(@winrmfinder.winrm_host_address()).to eq('10.0.0.1')</code>
</li>
- <li class="never" data-hits="" data-linenumber="27">
+ <li class="never" data-hits="" data-linenumber="26">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="28">
+ <li class="never" data-hits="" data-linenumber="27">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="29">
+ <li class="covered" data-hits="1" data-linenumber="28">
<span class="hits">1</span>
<code class="ruby"> it 'should return host config if set (issue 104)' do</code>
</li>
- <li class="never" data-hits="" data-linenumber="30">
+ <li class="never" data-hits="" data-linenumber="29">
<code class="ruby"> # setup the winrm config to return nil for the host (i.e. the default)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="31">
+ <li class="covered" data-hits="1" data-linenumber="30">
<span class="hits">1</span>
<code class="ruby"> winrm_config = VagrantWindows::Config::WinRM.new()</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="32">
+ <li class="covered" data-hits="1" data-linenumber="31">
<span class="hits">1</span>
<code class="ruby"> winrm_config.host = '10.0.0.1'</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="33">
+ <li class="covered" data-hits="1" data-linenumber="32">
<span class="hits">1</span>
<code class="ruby"> winrm_config.finalize!()</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="34">
+ <li class="covered" data-hits="1" data-linenumber="33">
<span class="hits">1</span>
- <code class="ruby"> machine_config = stub(:winrm => winrm_config)</code>
+ <code class="ruby"> @machine.stubs(:winrm_config).returns(winrm_config)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="35">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="34">
- <code class="ruby"> @machine.stubs(:config).returns(machine_config)</code>
- </li>
-
- <li class="never" data-hits="" data-linenumber="36">
-
<code class="ruby"> </code>
</li>
- <li class="never" data-hits="" data-linenumber="37">
+ <li class="never" data-hits="" data-linenumber="35">
<code class="ruby"> # setup the machine ssh_info to return a 10.0.0.1</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="38">
+ <li class="covered" data-hits="1" data-linenumber="36">
<span class="hits">1</span>
<code class="ruby"> @machine.stubs(:ssh_info).returns({ :host => '127.0.0.1' })</code>
</li>
- <li class="never" data-hits="" data-linenumber="39">
+ <li class="never" data-hits="" data-linenumber="37">
<code class="ruby"> </code>
</li>
- <li class="covered" data-hits="1" data-linenumber="40">
+ <li class="covered" data-hits="1" data-linenumber="38">
<span class="hits">1</span>
<code class="ruby"> expect(@winrmfinder.winrm_host_address()).to eq('10.0.0.1')</code>
</li>
- <li class="never" data-hits="" data-linenumber="41">
+ <li class="never" data-hits="" data-linenumber="39">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="42">
+ <li class="never" data-hits="" data-linenumber="40">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="43">
+ <li class="never" data-hits="" data-linenumber="41">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="44">
+ <li class="never" data-hits="" data-linenumber="42">
<code class="ruby">end</code>
</li>
@@ -9489,15 +10425,15 @@
</div>
<div class="source_table" id="25447093b9cbe29e6009455b5e95c517f212a004">
<div class="header">
<h3>spec/vagrant-windows/winrmshell_spec.rb</h3>
- <h4><span class="red">45.0 %</span> covered</h4>
+ <h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>20</b> relevant lines.
- <span class="green"><b>9</b> lines covered</span> and
- <span class="red"><b>11</b> lines missed.</span>
+ <span class="green"><b>20</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -9542,14 +10478,14 @@
<code class="ruby"> # Not ideal, but you have to start somewhere</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="8">
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
-
- <code class="ruby"> @shell = VagrantWindows::Communication::WinRMShell.new("localhost", "vagrant", "vagrant")</code>
+ <code class="ruby"> @shell = VagrantWindows::Communication::WinRMShell.new("127.0.0.1", "vagrant", "vagrant")</code>
</li>
<li class="never" data-hits="" data-linenumber="9">
@@ -9572,13 +10508,13 @@
<span class="hits">1</span>
<code class="ruby"> it "should return exit code of 0" do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="13">
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
-
<code class="ruby"> expect(@shell.powershell("exit 0")[:exitcode]).to eq(0)</code>
</li>
<li class="never" data-hits="" data-linenumber="14">
@@ -9596,13 +10532,13 @@
<span class="hits">1</span>
<code class="ruby"> it "should return exit code greater than 0" do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="17">
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
-
<code class="ruby"> expect(@shell.powershell("exit 1")[:exitcode]).to eq(1)</code>
</li>
<li class="never" data-hits="" data-linenumber="18">
@@ -9620,37 +10556,37 @@
<span class="hits">1</span>
<code class="ruby"> it "should return stdout" do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="21">
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
-
<code class="ruby"> result = @shell.powershell("dir") do |type, line|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="22">
+ <li class="covered" data-hits="4" data-linenumber="22">
+ <span class="hits">4</span>
-
<code class="ruby"> expect(type).to eq(:stdout)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="covered" data-hits="4" data-linenumber="23">
+ <span class="hits">4</span>
-
<code class="ruby"> expect(line.length).to be > 1 </code>
</li>
<li class="never" data-hits="" data-linenumber="24">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="25">
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
-
<code class="ruby"> expect(result[:exitcode]).to eq(0)</code>
</li>
<li class="never" data-hits="" data-linenumber="26">
@@ -9680,35 +10616,35 @@
<span class="hits">1</span>
<code class="ruby"> it "should return stdout" do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="31">
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
-
<code class="ruby"> result = @shell.cmd("dir") do |type, line|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="32">
+ <li class="covered" data-hits="3" data-linenumber="32">
+ <span class="hits">3</span>
-
<code class="ruby"> expect(type).to eq(:stdout)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="33">
+ <li class="covered" data-hits="3" data-linenumber="33">
+ <span class="hits">3</span>
-
<code class="ruby"> expect(line.length).to be > 1 </code>
</li>
<li class="never" data-hits="" data-linenumber="34">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="35">
-
+ <li class="covered" data-hits="1" data-linenumber="35">
+ <span class="hits">1</span>
<code class="ruby"> expect(result[:exitcode]).to eq(0)</code>
</li>
<li class="never" data-hits="" data-linenumber="36">