summaryrefslogtreecommitdiff
path: root/spec/unit/provider/service
diff options
context:
space:
mode:
authorLaurent Desarmes <laurent+git@u-picardie.fr>2013-11-22 17:23:34 +0100
committerBryan McLellan <btm@opscode.com>2013-12-20 10:06:44 -0800
commitd66a61ace909e84dbc28c9bfda6b9dbb312a370a (patch)
treefa4cdace114da629dafe8653157955128024d4da /spec/unit/provider/service
parent3d158f5e4bab7fed8e848bb4faeebc3020a9720a (diff)
downloadchef-d66a61ace909e84dbc28c9bfda6b9dbb312a370a.tar.gz
tests updated for services only starting at run level S
Diffstat (limited to 'spec/unit/provider/service')
-rw-r--r--spec/unit/provider/service/debian_service_spec.rb64
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)