summaryrefslogtreecommitdiffstats
path: root/test/server/server.rb
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2005-10-22 22:27:20 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2005-10-22 22:27:20 +0000
commitf7328804d00d8a82d7ab3a955ff579ff956ef3d0 (patch)
tree7a6d5119dea6a6309675120fd99f5cc023ad644a /test/server/server.rb
parent8fe558cca075ab85619a73f4a80408de58810ef7 (diff)
downloadpuppet-f7328804d00d8a82d7ab3a955ff579ff956ef3d0.tar.gz
puppet-f7328804d00d8a82d7ab3a955ff579ff956ef3d0.tar.xz
puppet-f7328804d00d8a82d7ab3a955ff579ff956ef3d0.zip
Getting rid of the tc_ prefix to test cases
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@724 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test/server/server.rb')
-rw-r--r--test/server/server.rb130
1 files changed, 130 insertions, 0 deletions
diff --git a/test/server/server.rb b/test/server/server.rb
new file mode 100644
index 000000000..aa75b1422
--- /dev/null
+++ b/test/server/server.rb
@@ -0,0 +1,130 @@
+if __FILE__ == $0
+ $:.unshift '../../lib'
+ $:.unshift '..'
+ $puppetbase = "../.."
+end
+
+require 'puppet'
+require 'cgi'
+#require 'puppet/server'
+require 'facter'
+require 'puppet/client'
+require 'xmlrpc/client'
+require 'test/unit'
+require 'puppettest.rb'
+
+# $Id$
+
+if ARGV.length > 0 and ARGV[0] == "short"
+ $short = true
+else
+ $short = false
+end
+
+class TestServer < Test::Unit::TestCase
+ include ServerTest
+ def teardown
+ super
+ print "\n\n\n\n" if Puppet[:debug]
+ end
+
+ # test that we can connect to the server
+ # we have to use fork here, because we apparently can't use threads
+ # to talk to other threads
+ def test_connect_with_fork
+ server = nil
+ Puppet[:autosign] = true
+
+ # create a server just serving status
+ assert_nothing_raised() {
+ server = Puppet::Server.new(
+ :Port => @@port,
+ :Handlers => {
+ :CA => {}, # so that certs autogenerate
+ :Status => nil
+ }
+ )
+
+ }
+
+ # and fork
+ serverpid = fork {
+ assert_nothing_raised() {
+ trap(:INT) { server.shutdown }
+ server.start
+ }
+ }
+ @@tmppids << serverpid
+
+ # create a status client, and verify it can talk
+ client = nil
+ assert_nothing_raised() {
+ client = Puppet::Client::StatusClient.new(
+ :Server => "localhost",
+ :Port => @@port
+ )
+ }
+ retval = nil
+
+ assert_nothing_raised() {
+ retval = client.status
+ }
+
+ assert_equal(1, retval)
+ end
+
+ # similar to the last test, but this time actually run getconfig
+ def test_getconfig_with_fork
+ Puppet[:autosign] = true
+ serverpid = nil
+
+ file = mktestmanifest()
+
+ server = nil
+ # make our server again
+ assert_nothing_raised() {
+ server = Puppet::Server.new(
+ :Port => @@port,
+ :Handlers => {
+ :CA => {}, # so that certs autogenerate
+ :Master => {
+ :UseNodes => false,
+ :File => file
+ },
+ :Status => nil
+ }
+ )
+
+ }
+ serverpid = fork {
+ assert_nothing_raised() {
+ #trap(:INT) { server.shutdown; Kernel.exit! }
+ trap(:INT) { server.shutdown }
+ server.start
+ }
+ }
+ @@tmppids << serverpid
+
+ client = nil
+
+ # and then start a masterclient
+ assert_nothing_raised() {
+ client = Puppet::Client::MasterClient.new(
+ :Server => "localhost",
+ :Port => @@port
+ )
+ }
+ retval = nil
+
+ # and run getconfig a couple of times
+ assert_nothing_raised() {
+ retval = client.getconfig
+ }
+ assert_instance_of(Puppet::TransBucket, retval,
+ "Server returned something other than a TransBucket")
+
+ assert_nothing_raised() {
+ retval = client.getconfig
+ }
+ end
+end