diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-01-28 20:22:37 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-01-28 20:22:37 +0000 |
commit | c07494ff770d7e6432fed4e48e36f5b801b05f8d (patch) | |
tree | b90875b7d9df11b1d93dc29beced90b98785babc | |
parent | 992424462d5a7b1380de6a1e375b19d4c49163d8 (diff) | |
download | puppet-c07494ff770d7e6432fed4e48e36f5b801b05f8d.tar.gz puppet-c07494ff770d7e6432fed4e48e36f5b801b05f8d.tar.xz puppet-c07494ff770d7e6432fed4e48e36f5b801b05f8d.zip |
Fixing #441.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2104 980ebf18-57e1-0310-9a29-db15c13687c0
-rwxr-xr-x | lib/puppet/provider/service/base.rb | 6 | ||||
-rwxr-xr-x | test/providers/service/base.rb | 52 |
2 files changed, 54 insertions, 4 deletions
diff --git a/lib/puppet/provider/service/base.rb b/lib/puppet/provider/service/base.rb index 89bee741c..9099fc730 100755 --- a/lib/puppet/provider/service/base.rb +++ b/lib/puppet/provider/service/base.rb @@ -93,10 +93,8 @@ Puppet::Type.type(:service).provide :base do # for the process in the process table. # This method will generally not be overridden by submodules. def stop - if @model[:stop] - return @model[:stop] - elsif self.respond_to?(:stopcmd) - texecute(:stop, self.stopcmd) + if @model[:stop] or self.respond_to?(:stopcmd) + ucommand(:stop) else pid = getpid unless pid diff --git a/test/providers/service/base.rb b/test/providers/service/base.rb new file mode 100755 index 000000000..0de6c806b --- /dev/null +++ b/test/providers/service/base.rb @@ -0,0 +1,52 @@ +#!/usr/bin/env ruby +# +# Created by Luke A. Kanies on 2007-01-28. +# Copyright (c) 2007. All rights reserved. + +$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ + +require 'puppettest' + +class TestBaseServiceProvider < Test::Unit::TestCase + include PuppetTest + + def test_base + running = tempfile() + + commands = {} + %w{touch rm test}.each do |c| + path = %x{which #{c}}.chomp + if path == "" + $stderr.puts "Cannot find '#{c}'; cannot test base service provider" + return + end + commands[c.to_sym] = path + end + service = Puppet::Type.type(:service).create( + :name => "yaytest", :provider => :base, + :start => "%s %s" % [commands[:touch], running], + :status => "%s -f %s" % [commands[:test], running], + :stop => "%s %s" % [commands[:rm], running] + ) + + provider = service.provider + assert(provider, "did not get base provider") + + assert_nothing_raised do + provider.start + end + assert(FileTest.exists?(running), "start was not called correctly") + assert_nothing_raised do + assert_equal(:running, provider.status, "status was not returned correctly") + end + assert_nothing_raised do + provider.stop + end + assert(! FileTest.exists?(running), "stop was not called correctly") + assert_nothing_raised do + assert_equal(:stopped, provider.status, "status was not returned correctly") + end + end +end + +# $Id$
\ No newline at end of file |