summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/other/puppet.rb93
-rwxr-xr-xtest/server/runner.rb75
2 files changed, 168 insertions, 0 deletions
diff --git a/test/other/puppet.rb b/test/other/puppet.rb
new file mode 100755
index 000000000..966c574d4
--- /dev/null
+++ b/test/other/puppet.rb
@@ -0,0 +1,93 @@
+if __FILE__ == $0
+ $:.unshift '..'
+ $:.unshift '../../lib'
+ $puppetbase = "../.."
+end
+
+require 'puppet'
+require 'puppet/parsedfile'
+require 'puppettest'
+require 'test/unit'
+
+# Test the different features of the main puppet module
+class TestPuppetModule < Test::Unit::TestCase
+ include TestPuppet
+ include SignalObserver
+ def mktestclass
+ Class.new do
+ def initialize(file)
+ @file = file
+ end
+
+ def started?
+ FileTest.exists?(@file)
+ end
+
+ def start
+ File.open(@file, "w") do |f| f.puts "" end
+ end
+
+ def shutdown
+ File.unlink(@file)
+ end
+ end
+ end
+
+ # Make sure that services get correctly started and stopped
+ def test_servicehandling
+ file = tempfile()
+ testclass = mktestclass()
+
+ obj = testclass.new(file)
+
+ assert_nothing_raised {
+ Puppet.newservice(obj)
+ }
+
+ assert_nothing_raised {
+ Puppet.start(false)
+ }
+
+ # Give it a sec or so
+ sleep 0.3
+
+ assert(obj.started?, "Object was not started")
+
+ assert_nothing_raised {
+ Puppet.shutdown(false)
+ }
+ # Give it a sec or so
+ sleep 0.3
+
+ assert(!obj.started?, "Object is still running")
+
+ end
+
+ # Make sure timers are being handled correctly
+ def test_timerhandling
+ timer = nil
+ file = tempfile()
+ assert_nothing_raised {
+ timer = Puppet.newtimer(
+ :interval => 0.1,
+ :tolerance => 1,
+ :start? => true
+ ) do
+ File.open(file, "w") do |f| f.puts "" end
+ Puppet.shutdown(false)
+ end
+ }
+
+ assert(timer, "Did not get timer back from Puppet")
+
+ assert_nothing_raised {
+ timeout(1) do
+ Puppet.start()
+ end
+ }
+
+ assert(FileTest.exists?(file), "timer never got triggered")
+ end
+end
+
+# $Id$
diff --git a/test/server/runner.rb b/test/server/runner.rb
new file mode 100755
index 000000000..7f362dc17
--- /dev/null
+++ b/test/server/runner.rb
@@ -0,0 +1,75 @@
+if __FILE__ == $0
+ $:.unshift '../../lib'
+ $:.unshift '..'
+ $puppetbase = "../.."
+end
+
+require 'puppet'
+require 'puppet/server/runner'
+require 'test/unit'
+require 'puppettest.rb'
+
+class TestServerRunner < Test::Unit::TestCase
+ include TestPuppet
+
+ def mkclient(file)
+ master = nil
+ client = nil
+ # create our master
+ assert_nothing_raised() {
+ # this is the default server setup
+ master = Puppet::Server::Master.new(
+ :Manifest => file,
+ :UseNodes => false,
+ :Local => true
+ )
+ }
+
+ # and our client
+ assert_nothing_raised() {
+ client = Puppet::Client::MasterClient.new(
+ :Master => master
+ )
+ }
+
+ client
+ end
+
+ def test_runner
+ # Okay, make our manifest
+ file = tempfile()
+ created = tempfile()
+ File.open(file, "w") do |f|
+ f.puts %{file { "#{created}": ensure => file }}
+ end
+
+ client = mkclient(file)
+
+ runner = nil
+ assert_nothing_raised {
+ runner = Puppet::Server::Runner.new
+ }
+
+ assert_nothing_raised {
+ # Try it without backgrounding
+ runner.run(nil, nil, false)
+ }
+
+ assert(FileTest.exists?(created), "File did not get created")
+
+ # Now background it
+ File.unlink(created)
+
+ assert_nothing_raised {
+ runner.run(nil, nil, true)
+ }
+
+ Puppet.join
+
+ assert(FileTest.exists?(created), "File did not get created")
+
+ end
+end
+
+# $Id$
+