From 15af762bfdbac0c8dd345698b34ea4c2fe93dedc Mon Sep 17 00:00:00 2001 From: Matt Wrock Date: Thu, 24 Sep 2015 17:23:38 -0700 Subject: kill all windows child processes when the command times out --- spec/mixlib/shellout_spec.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'spec') 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 -- cgit v1.2.1