diff options
author | Laurent Desarmes <laurent+git@u-picardie.fr> | 2013-11-22 17:23:34 +0100 |
---|---|---|
committer | Bryan McLellan <btm@opscode.com> | 2013-12-20 10:06:44 -0800 |
commit | d66a61ace909e84dbc28c9bfda6b9dbb312a370a (patch) | |
tree | fa4cdace114da629dafe8653157955128024d4da /spec/unit/provider/service/debian_service_spec.rb | |
parent | 3d158f5e4bab7fed8e848bb4faeebc3020a9720a (diff) | |
download | chef-d66a61ace909e84dbc28c9bfda6b9dbb312a370a.tar.gz |
tests updated for services only starting at run level S
Diffstat (limited to 'spec/unit/provider/service/debian_service_spec.rb')
-rw-r--r-- | spec/unit/provider/service/debian_service_spec.rb | 64 |
1 files changed, 48 insertions, 16 deletions
diff --git a/spec/unit/provider/service/debian_service_spec.rb b/spec/unit/provider/service/debian_service_spec.rb index 92194ecbec..2f3e099032 100644 --- a/spec/unit/provider/service/debian_service_spec.rb +++ b/spec/unit/provider/service/debian_service_spec.rb @@ -126,11 +126,19 @@ describe Chef::Provider::Service::Debian do /etc/rc5.d/S20chef /etc/rc6.d/K20chef STDOUT - "stderr" => "" + "stderr" => "", + "priorities" => { + "0"=>[:stop, "20"], + "1"=>[:stop, "20"], + "2"=>[:start, "20"], + "3"=>[:start, "20"], + "4"=>[:start, "20"], + "5"=>[:start, "20"], + "6"=>[:stop, "20"] + } }, "not linked" => { - "stdout" => - " Removing any system startup links for /etc/init.d/chef ...", + "stdout" => " Removing any system startup links for /etc/init.d/chef ...", "stderr" => "" }, }, @@ -147,20 +155,51 @@ insserv: remove service /etc/init.d/../rc0.d/K20chef-client insserv: remove service /etc/init.d/../rc6.d/K20chef-client insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop STDERR + "priorities" => { + "0"=>[:stop, "20"], + "1"=>[:stop, "20"], + "2"=>[:start, "20"], + "3"=>[:start, "20"], + "4"=>[:start, "20"], + "5"=>[:start, "20"], + "6"=>[:stop, "20"] + } }, "not linked" => { "stdout" => "update-rc.d: using dependency based boot sequencing", "stderr" => "" } + }, + "Debian/Wheezy and earlier, a service only starting at run level S" => { + "linked" => { + "stdout" => "", + "stderr" => <<-STDERR, +insserv: remove service /etc/init.d/../rc0.d/K06rpcbind +insserv: remove service /etc/init.d/../rc1.d/K06rpcbind +insserv: remove service /etc/init.d/../rc6.d/K06rpcbind +insserv: remove service /etc/init.d/../rcS.d/S13rpcbind +insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop + STDERR + "priorities" => { + "0"=>[:stop, "06"], + "1"=>[:stop, "06"], + "6"=>[:stop, "06"], + "S"=>[:start, "13"] + } + }, + "not linked" => { + "stdout" => "", + "stderr" => "insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop" + } } - }.each do |model, streams| + }.each do |model, expected_results| context "on #{model}" do context "when update-rc.d shows init linked to rc*.d/" do before do @provider.stub!(:assert_update_rcd_available) - @stdout = StringIO.new(streams["linked"]["stdout"]) - @stderr = StringIO.new(streams["linked"]["stderr"]) + @stdout = StringIO.new(expected_results["linked"]["stdout"]) + @stderr = StringIO.new(expected_results["linked"]["stderr"]) @status = mock("Status", :exitstatus => 0, :stdout => @stdout) @provider.stub!(:shell_out!).and_return(@status) @provider.stub!(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status) @@ -178,22 +217,15 @@ insserv: remove service /etc/init.d/../rc0.d/K20chef-client it "stores the start/stop priorities of the service" do @provider.load_current_resource - expected_priorities = {"6"=>[:stop, "20"], - "0"=>[:stop, "20"], - "1"=>[:stop, "20"], - "2"=>[:start, "20"], - "3"=>[:start, "20"], - "4"=>[:start, "20"], - "5"=>[:start, "20"]} - @provider.current_resource.priority.should == expected_priorities + @provider.current_resource.priority.should == expected_results["linked"]["priorities"] end end context "when update-rc.d shows init isn't linked to rc*.d/" do before do @provider.stub!(:assert_update_rcd_available) - @stdout = StringIO.new(streams["not linked"]["stdout"]) - @stderr = StringIO.new(streams["not linked"]["stderr"]) + @stdout = StringIO.new(expected_results["not linked"]["stdout"]) + @stderr = StringIO.new(expected_results["not linked"]["stderr"]) @status = mock("Status", :exitstatus => 0, :stdout => @stdout) @provider.stub!(:shell_out!).and_return(@status) @provider.stub!(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status) |