diff options
Diffstat (limited to 'spec/functional/rebooter_spec.rb')
-rw-r--r-- | spec/functional/rebooter_spec.rb | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/spec/functional/rebooter_spec.rb b/spec/functional/rebooter_spec.rb index a28491cc0b..36961593b0 100644 --- a/spec/functional/rebooter_spec.rb +++ b/spec/functional/rebooter_spec.rb @@ -35,8 +35,9 @@ describe Chef::Platform::Rebooter do resource end + let(:node) { Chef::Node.new } + let(:run_context) do - node = Chef::Node.new events = Chef::EventDispatch::Dispatcher.new Chef::RunContext.new(node, {}, events) end @@ -44,7 +45,8 @@ describe Chef::Platform::Rebooter do let(:expected) do { :windows => "#{ENV['SYSTEMROOT']}/System32/shutdown.exe /r /t 300 /c \"rebooter spec test\"", - :linux => 'shutdown -r +5 "rebooter spec test"', + :linux => 'shutdown -r +5 "rebooter spec test" &', + :solaris => 'shutdown -i6 -g5 -y "rebooter spec test" &', } end @@ -69,8 +71,9 @@ describe Chef::Platform::Rebooter do end shared_context "test a reboot method" do - def test_rebooter_method(method_sym, is_windows, expected_reboot_str) + def test_rebooter_method(method_sym, is_windows, is_solaris, expected_reboot_str) allow(ChefConfig).to receive(:windows?).and_return(is_windows) + node.automatic["os"] = node.automatic["platform"] = node.automatic["platform_family"] = "solaris2" if is_solaris expect(rebooter).to receive(:shell_out!).once.with(expected_reboot_str) expect(rebooter).to receive(:raise).with(Chef::Exceptions::Reboot) expect(rebooter).to receive(method_sym).once.and_call_original @@ -81,24 +84,32 @@ describe Chef::Platform::Rebooter do describe "when using #reboot_if_needed!" do include_context "test a reboot method" - it "should produce the correct string on Windows", :windows_only do - test_rebooter_method(:reboot_if_needed!, true, expected[:windows]) + it "should produce the correct string on Windows" do + test_rebooter_method(:reboot_if_needed!, true, false, expected[:windows]) + end + + it "should produce a SysV-like shutdown on solaris" do + test_rebooter_method(:reboot_if_needed!, false, true, expected[:solaris]) end - it "should produce the correct (Linux-specific) string on non-Windows" do - test_rebooter_method(:reboot_if_needed!, false, expected[:linux]) + it "should produce a BSD-like shutdown by default" do + test_rebooter_method(:reboot_if_needed!, false, false, expected[:linux]) end end describe "when using #reboot!" do include_context "test a reboot method" - it "should produce the correct string on Windows", :windows_only do - test_rebooter_method(:reboot!, true, expected[:windows]) + it "should produce the correct string on Windows" do + test_rebooter_method(:reboot!, true, false, expected[:windows]) + end + + it "should produce a SysV-like shutdown on solaris" do + test_rebooter_method(:reboot!, false, true, expected[:solaris]) end - it "should produce the correct (Linux-specific) string on non-Windows" do - test_rebooter_method(:reboot!, false, expected[:linux]) + it "should produce a BSD-like shutdown by default" do + test_rebooter_method(:reboot!, false, false, expected[:linux]) end end end |