summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorMatt Wrock <matt@mattwrock.com>2015-09-24 17:23:38 -0700
committerMatt Wrock <matt@mattwrock.com>2015-09-24 17:23:38 -0700
commit15af762bfdbac0c8dd345698b34ea4c2fe93dedc (patch)
treea09293a7a65ee3c1f3e1b802b7c799aa4855fab0 /spec
parent4ea4442d8a6d761eb630b58bce222164de320f4d (diff)
downloadmixlib-shellout-15af762bfdbac0c8dd345698b34ea4c2fe93dedc.tar.gz
kill all windows child processes when the command times out
Diffstat (limited to 'spec')
-rw-r--r--spec/mixlib/shellout_spec.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/spec/mixlib/shellout_spec.rb b/spec/mixlib/shellout_spec.rb
index 2acdc3b..6b57619 100644
--- a/spec/mixlib/shellout_spec.rb
+++ b/spec/mixlib/shellout_spec.rb
@@ -1116,11 +1116,24 @@ describe Mixlib::ShellOut do
'powershell -c "sleep 10"'
end
+ before do
+ require "wmi-lite/wmi"
+ allow(WmiLite::Wmi).to receive(:new)
+ allow(Mixlib::ShellOut::Windows::Utils).to receive(:kill_process_tree)
+ end
+
it "should raise CommandTimeout" do
Timeout::timeout(5) do
expect { executed_cmd }.to raise_error(Mixlib::ShellOut::CommandTimeout)
end
end
+
+ context 'and child processes should be killed' do
+ it 'kills the child processes' do
+ expect(Mixlib::ShellOut::Windows::Utils).to receive(:kill_process_tree)
+ expect { executed_cmd }.to raise_error(Mixlib::ShellOut::CommandTimeout)
+ end
+ end
end
context 'on unix', :unix_only do