summaryrefslogtreecommitdiffstats
path: root/test/lib/servertest.rb
diff options
context:
space:
mode:
authorerikh <erikh@980ebf18-57e1-0310-9a29-db15c13687c0>2006-09-15 04:00:38 +0000
committererikh <erikh@980ebf18-57e1-0310-9a29-db15c13687c0>2006-09-15 04:00:38 +0000
commit4cd37ade1574a326f9ce267af2edc61a78deea86 (patch)
tree1093cba18d4c7d7d4170c255db442f3dc0c774a7 /test/lib/servertest.rb
parent4897995e4cbe4ec3e452de50404799cfc27ed90b (diff)
Merged test framework into trunk - still not ready until tests are converted to use it.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1601 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test/lib/servertest.rb')
-rw-r--r--test/lib/servertest.rb68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/lib/servertest.rb b/test/lib/servertest.rb
new file mode 100644
index 000000000..a1c498467
--- /dev/null
+++ b/test/lib/servertest.rb
@@ -0,0 +1,68 @@
+require 'scaffold'
+
+module ServerTest
+ include PuppetTestScaffold
+ def setup
+ super
+
+ if defined? @@port
+ @@port += 1
+ else
+ @@port = 20000
+ end
+ end
+
+ # create a simple manifest that just creates a file
+ def mktestmanifest
+ file = File.join(Puppet[:confdir], "%ssite.pp" % (self.class.to_s + "test"))
+ #@createdfile = File.join(tmpdir(), self.class.to_s + "manifesttesting" +
+ # "_" + @method_name)
+ @createdfile = tempfile()
+
+ File.open(file, "w") { |f|
+ f.puts "file { \"%s\": ensure => file, mode => 755 }\n" % @createdfile
+ }
+
+ @@tmpfiles << @createdfile
+ @@tmpfiles << file
+
+ return file
+ end
+
+ # create a server, forked into the background
+ def mkserver(handlers = nil)
+ # our default handlers
+ unless handlers
+ handlers = {
+ :CA => {}, # so that certs autogenerate
+ :Master => {
+ :Manifest => mktestmanifest(),
+ :UseNodes => false
+ },
+ }
+ end
+
+ # then create the actual server
+ server = nil
+ assert_nothing_raised {
+ server = Puppet::Server.new(
+ :Port => @@port,
+ :Handlers => handlers
+ )
+ }
+
+ # fork it
+ spid = fork {
+ trap(:INT) { server.shutdown }
+ server.start
+ }
+
+ # and store its pid for killing
+ @@tmppids << spid
+
+ # give the server a chance to do its thing
+ sleep 1
+ return spid
+ end
+
+end