summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Rakefile31
-rwxr-xr-xtest/certmgr/certmgr.rb9
-rw-r--r--test/client/client.rb15
-rw-r--r--test/client/master.rb11
-rw-r--r--test/client/pelement.rb11
-rwxr-xr-xtest/executables/puppetbin.rb11
-rwxr-xr-xtest/executables/puppetca.rb11
-rwxr-xr-xtest/executables/puppetd.rb11
-rwxr-xr-xtest/executables/puppetmasterd.rb13
-rwxr-xr-xtest/executables/puppetmodule.rb23
-rwxr-xr-xtest/language/ast.rb9
-rwxr-xr-xtest/language/functions.rb9
-rwxr-xr-xtest/language/interpreter.rb11
-rw-r--r--test/language/lexer.rb11
-rw-r--r--test/language/node.rb9
-rw-r--r--test/language/parser.rb9
-rwxr-xr-xtest/language/rails.rb9
-rwxr-xr-xtest/language/scope.rb9
-rwxr-xr-xtest/language/snippets.rb35
-rwxr-xr-xtest/language/transportable.rb9
-rw-r--r--test/lib/puppettest.rb74
-rw-r--r--test/lib/puppettest/exetest.rb4
-rw-r--r--test/lib/puppettest/fakes.rb4
-rw-r--r--test/lib/puppettest/filetesting.rb (renamed from test/lib/puppettest/support/file.rb)7
-rw-r--r--test/lib/puppettest/parsertesting.rb (renamed from test/lib/puppettest/support/parser.rb)5
-rw-r--r--test/lib/puppettest/servertest.rb2
-rw-r--r--test/lib/puppettest/support.rb10
-rw-r--r--test/lib/puppettest/support/assertions.rb4
-rw-r--r--test/lib/puppettest/support/helpers.rb4
-rw-r--r--test/lib/puppettest/support/utils.rb16
-rw-r--r--test/other/autoload.rb9
-rwxr-xr-xtest/other/config.rb9
-rwxr-xr-xtest/other/events.rb9
-rwxr-xr-xtest/other/filetype.rb9
-rw-r--r--test/other/inifile.rb9
-rwxr-xr-xtest/other/loadedfile.rb9
-rw-r--r--test/other/log.rb9
-rw-r--r--test/other/metrics.rb9
-rwxr-xr-xtest/other/overrides.rb9
-rw-r--r--test/other/provider.rb9
-rwxr-xr-xtest/other/puppet.rb9
-rwxr-xr-xtest/other/relationships.rb9
-rwxr-xr-xtest/other/report.rb9
-rwxr-xr-xtest/other/storage.rb9
-rw-r--r--test/other/transactions.rb11
-rwxr-xr-xtest/providers/group.rb9
-rw-r--r--test/providers/nameservice.rb9
-rw-r--r--test/providers/package.rb9
-rw-r--r--test/providers/provider.rb9
-rw-r--r--test/providers/user.rb9
-rwxr-xr-xtest/puppet/conffiles.rb9
-rwxr-xr-xtest/puppet/defaults.rb9
-rwxr-xr-xtest/puppet/errortest.rb9
-rw-r--r--test/puppettest.rb1320
-rwxr-xr-xtest/server/authconfig.rb11
-rwxr-xr-xtest/server/authstore.rb15
-rw-r--r--test/server/bucket.rb14
-rw-r--r--test/server/ca.rb11
-rwxr-xr-xtest/server/fileserver.rb16
-rw-r--r--test/server/logger.rb11
-rw-r--r--test/server/master.rb15
-rw-r--r--test/server/pelement.rb13
-rwxr-xr-xtest/server/report.rb11
-rwxr-xr-xtest/server/rights.rb11
-rwxr-xr-xtest/server/runner.rb11
-rw-r--r--test/server/server.rb11
-rw-r--r--test/tagging/tagging.rb16
-rwxr-xr-xtest/test61
-rw-r--r--test/types/basic.rb11
-rwxr-xr-xtest/types/component.rb9
-rwxr-xr-xtest/types/cron.rb9
-rwxr-xr-xtest/types/exec.rb9
-rw-r--r--test/types/file.rb9
-rwxr-xr-xtest/types/filebucket.rb9
-rw-r--r--test/types/fileignoresource.rb10
-rwxr-xr-xtest/types/filesources.rb10
-rwxr-xr-xtest/types/group.rb11
-rwxr-xr-xtest/types/host.rb9
-rwxr-xr-xtest/types/mount.rb9
-rw-r--r--test/types/package.rb9
-rw-r--r--test/types/parameter.rb9
-rwxr-xr-xtest/types/port.rb9
-rw-r--r--test/types/query.rb13
-rwxr-xr-xtest/types/schedule.rb9
-rw-r--r--test/types/service.rb17
-rwxr-xr-xtest/types/sshkey.rb9
-rw-r--r--test/types/state.rb9
-rwxr-xr-xtest/types/symlink.rb9
-rwxr-xr-xtest/types/tidy.rb9
-rw-r--r--test/types/type.rb9
-rwxr-xr-xtest/types/user.rb11
-rw-r--r--test/types/yumrepo.rb9
-rwxr-xr-xtest/types/zone.rb9
-rwxr-xr-xtest/util/classgen.rb9
-rwxr-xr-xtest/util/execution.rb9
-rwxr-xr-xtest/util/package.rb9
-rwxr-xr-xtest/util/utiltest.rb9
97 files changed, 263 insertions, 2170 deletions
diff --git a/test/Rakefile b/test/Rakefile
index e1fc374b0..463c7a9a1 100644
--- a/test/Rakefile
+++ b/test/Rakefile
@@ -7,26 +7,19 @@ $exclusions = %W(lib data)
$test_dirs = [] # this is used to generate all the targets.
$test_files = [] # this is ONLY used for the top-level test suite.
-# this basically amounts to:
-# find $(pwd) -type d -maxdepth 1 | xargs basename
-# with an exclusion list.
+# Collect all of our test directories, skipping specifically excluded dirs.
+$test_dirs = Dir.glob("*").find_all { |f| directory?(f) }.reject { |d|
+ $exclusions.include?(File.basename(d))
+}
-find(Dir.pwd) do |path|
- if File.basename(path) =~ /^\.+/
- prune
- elsif path != Dir.pwd and directory? path and !$exclusions.include? File.basename(path)
- $test_dirs.push File.basename(path)
- prune
- end
-end
-
-# another find for the test files themselves: this could probably be rolled into the original find loop.
+# another find for the test files themselves: this could probably be rolled
+# into the original find loop.
$test_dirs.each do |dir|
find(dir) do |path|
if File.basename(path) =~ /^\.+/
prune
- elsif path != dir and !directory? path
+ elsif path != dir and ! directory?(path)
$test_files.push path
end
end
@@ -35,12 +28,14 @@ end
desc "Run the full test suite"
Rake::TestTask.new 'test' do |t|
t.libs << 'lib'
- t.test_files = $test_files.dup
+ t.test_files = $test_files.sort
t.verbose = true
end
#task :test => $test_dirs
-$test_dirs.each do |path|
+task :default => :test
+
+$test_dirs.sort.each do |path|
files = []
find(path) do |file|
@@ -53,7 +48,7 @@ $test_dirs.each do |path|
Rake::TestTask.new path.to_sym do |t|
t.libs << 'lib'
- t.test_files = files
+ t.test_files = files.sort
t.verbose = true
end
@@ -69,3 +64,5 @@ $test_dirs.each do |path|
end
end
end
+
+# $Id$
diff --git a/test/certmgr/certmgr.rb b/test/certmgr/certmgr.rb
index 2275e9953..cc95822ee 100755
--- a/test/certmgr/certmgr.rb
+++ b/test/certmgr/certmgr.rb
@@ -1,14 +1,7 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/sslcertificates.rb'
-require 'test/unit'
require 'puppettest'
# so, what kind of things do we want to test?
@@ -21,7 +14,7 @@ require 'puppettest'
# and test whether we've got things in the right scopes
class TestCertMgr < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
#@dir = File.join(Puppet[:certdir], "testing")
diff --git a/test/client/client.rb b/test/client/client.rb
index fa382392e..7d02f7acf 100644
--- a/test/client/client.rb
+++ b/test/client/client.rb
@@ -1,19 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/client'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
-
-# $Id$
+require 'puppettest'
class TestClient < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
# a single run through of connect, auth, etc.
def test_sslInitWithAutosigningLocalServer
# autosign everything, for simplicity
@@ -195,3 +186,5 @@ class TestClient < Test::Unit::TestCase
"PID file was not created")
end
end
+
+# $Id$
diff --git a/test/client/master.rb b/test/client/master.rb
index 2f88123b5..2b6688979 100644
--- a/test/client/master.rb
+++ b/test/client/master.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/client'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestMasterClient < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def mkmaster(file = nil)
master = nil
diff --git a/test/client/pelement.rb b/test/client/pelement.rb
index 4d782cf03..d5f8e824a 100644
--- a/test/client/pelement.rb
+++ b/test/client/pelement.rb
@@ -1,19 +1,12 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/client/pelement'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
# $Id$
class TestPElementClient < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def mkpelementserver
handlers = {
diff --git a/test/executables/puppetbin.rb b/test/executables/puppetbin.rb
index bde9eaa8b..d7e05a810 100755
--- a/test/executables/puppetbin.rb
+++ b/test/executables/puppetbin.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/sslcertificates'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestPuppetBin < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
def test_version
output = nil
assert_nothing_raised {
diff --git a/test/executables/puppetca.rb b/test/executables/puppetca.rb
index d21e94e7a..a6ea9aae4 100755
--- a/test/executables/puppetca.rb
+++ b/test/executables/puppetca.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/sslcertificates'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestPuppetCA < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
def mkcert(hostname)
cert = nil
assert_nothing_raised {
diff --git a/test/executables/puppetd.rb b/test/executables/puppetd.rb
index 700ea5bd3..a1a886a0e 100755
--- a/test/executables/puppetd.rb
+++ b/test/executables/puppetd.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'socket'
require 'facter'
class TestPuppetDExe < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
def test_normalstart
# start the master
file = startmasterd
diff --git a/test/executables/puppetmasterd.rb b/test/executables/puppetmasterd.rb
index 92a8c6b84..8d6d30875 100755
--- a/test/executables/puppetmasterd.rb
+++ b/test/executables/puppetmasterd.rb
@@ -1,19 +1,12 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/daemon'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'socket'
require 'facter'
class TestPuppetMasterD < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
def getcerts
include Puppet::Daemon
if self.readcerts
@@ -101,7 +94,7 @@ class TestPuppetMasterD < Test::Unit::TestCase
end
def disabled_test_sslconnection
- #file = File.join($puppetbase, "examples", "code", "head")
+ #file = File.join(exampledir, "code", "head")
#startmasterd("--manifest #{file}")
#assert_nothing_raised {
diff --git a/test/executables/puppetmodule.rb b/test/executables/puppetmodule.rb
index cff43a0e5..0752fed14 100755
--- a/test/executables/puppetmodule.rb
+++ b/test/executables/puppetmodule.rb
@@ -1,22 +1,19 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/sslcertificates'
-require 'test/unit'
-require 'puppettest.rb'
-
-$module = File.join($puppetbase, "ext", "module_puppet")
+require 'puppettest'
class TestPuppetModule < Test::Unit::TestCase
- include ExeTest
+ include PuppetTest::ExeTest
+
+
+ def setup
+ super
+ @module = File.join(basedir, "ext", "module_puppet")
+ end
def test_existence
- assert(FileTest.exists?($module), "Module does not exist")
+ assert(FileTest.exists?(@module), "Module does not exist")
end
def test_execution
@@ -29,7 +26,7 @@ class TestPuppetModule < Test::Unit::TestCase
}
output = nil
- cmd = $module
+ cmd = @module
cmd += " --verbose"
#cmd += " --fqdn %s" % fqdn
cmd += " --confdir %s" % Puppet[:confdir]
diff --git a/test/language/ast.rb b/test/language/ast.rb
index 5bf0c1e4f..ab528a49d 100755
--- a/test/language/ast.rb
+++ b/test/language/ast.rb
@@ -1,20 +1,13 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
-require 'test/unit'
require 'puppettest'
class TestAST < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
# A fake class that we can use for testing evaluation.
class FakeAST
diff --git a/test/language/functions.rb b/test/language/functions.rb
index 3ae381d83..2c3246e6a 100755
--- a/test/language/functions.rb
+++ b/test/language/functions.rb
@@ -1,20 +1,13 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
-require 'test/unit'
require 'puppettest'
class TestLangFunctions < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def test_functions
assert_raise(Puppet::ParseError) do
Puppet::Parser::AST::Function.new(
diff --git a/test/language/interpreter.rb b/test/language/interpreter.rb
index 36fd5922b..37b4e9022 100755
--- a/test/language/interpreter.rb
+++ b/test/language/interpreter.rb
@@ -1,11 +1,5 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'facter'
require 'puppet'
@@ -13,12 +7,11 @@ require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
require 'puppet/rails'
-require 'test/unit'
require 'puppettest'
class TestInterpreter < Test::Unit::TestCase
- include TestPuppet
- include ServerTest
+ include PuppetTest
+ include PuppetTest::ServerTest
AST = Puppet::Parser::AST
# create a simple manifest that uses nodes to create a file
diff --git a/test/language/lexer.rb b/test/language/lexer.rb
index 8b578a3fd..496087ba2 100644
--- a/test/language/lexer.rb
+++ b/test/language/lexer.rb
@@ -1,13 +1,6 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/lexer'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
#%q{service("telnet") = \{
# port => "23",
@@ -17,7 +10,7 @@ require 'puppettest.rb'
#} => [[:NAME, "service"], [:LPAREN, "("], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:RPAREN, ")"], [:EQUALS, "="], [:lbrace, "{"], [:NAME, "port"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "23"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "protocol"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "tcp"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "name"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:COMMA, ","], [:RBRACE, "}"]]
class TestLexer < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@lexer = Puppet::Parser::Lexer.new()
diff --git a/test/language/node.rb b/test/language/node.rb
index a1bb58a9f..791c44874 100644
--- a/test/language/node.rb
+++ b/test/language/node.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/parser'
-require 'test/unit'
require 'puppettest'
class TestParser < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def setup
super
diff --git a/test/language/parser.rb b/test/language/parser.rb
index 6dd9b4bca..d6e176870 100644
--- a/test/language/parser.rb
+++ b/test/language/parser.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/parser'
-require 'test/unit'
require 'puppettest'
class TestParser < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def setup
super
Puppet[:parseonly] = true
diff --git a/test/language/rails.rb b/test/language/rails.rb
index df76b4f20..ada4e0915 100755
--- a/test/language/rails.rb
+++ b/test/language/rails.rb
@@ -1,21 +1,14 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/rails'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
-require 'test/unit'
require 'puppettest'
class TestRails < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def test_includerails
assert_nothing_raised {
diff --git a/test/language/scope.rb b/test/language/scope.rb
index 3e5b5d24b..85189627d 100755
--- a/test/language/scope.rb
+++ b/test/language/scope.rb
@@ -1,16 +1,9 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
-require 'test/unit'
require 'puppettest'
# so, what kind of things do we want to test?
@@ -23,7 +16,7 @@ require 'puppettest'
# and test whether we've got things in the right scopes
class TestScope < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def to_ary(hash)
hash.collect { |key,value|
diff --git a/test/language/snippets.rb b/test/language/snippets.rb
index 2823f89ad..05ac066eb 100755
--- a/test/language/snippets.rb
+++ b/test/language/snippets.rb
@@ -1,32 +1,23 @@
#!/usr/bin/ruby -w
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/parser/interpreter'
require 'puppet/parser/parser'
require 'puppet/client'
require 'puppet/server'
-require 'test/unit'
require 'puppettest'
-# so, what kind of things do we want to test?
-
-# we don't need to test function, since we're confident in the
-# library tests. We do, however, need to test how things are actually
-# working in the language.
-
-# so really, we want to do things like test that our ast is correct
-# and test whether we've got things in the right scopes
-
class TestSnippets < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
include ObjectSpace
- $snippetbase = File.join($puppetbase, "examples", "code", "snippets")
+
+ def self.snippetdir
+ PuppetTest.exampledir "code", "snippets"
+ end
+
+ def snippet(name)
+ File.join(self.class.snippetdir, name)
+ end
def file2ast(file)
parser = Puppet::Parser::Parser.new()
@@ -492,8 +483,8 @@ class TestSnippets < Test::Unit::TestCase
}
end
- # XXX this is the answer
- Dir.entries($snippetbase).sort.each { |file|
+ # Iterate across each of the snippets and create a test.
+ Dir.entries(snippetdir).sort.each { |file|
next if file =~ /^\./
@@ -504,7 +495,7 @@ class TestSnippets < Test::Unit::TestCase
self.send(:define_method, testname) {
# first parse the file
server = Puppet::Server::Master.new(
- :Manifest => File.join($snippetbase, file),
+ :Manifest => snippet(file),
:Local => true
)
client = Puppet::Client::MasterClient.new(
@@ -557,3 +548,5 @@ class TestSnippets < Test::Unit::TestCase
end
}
end
+
+# $Id$
diff --git a/test/language/transportable.rb b/test/language/transportable.rb
index c973583cd..217bb3370 100755
--- a/test/language/transportable.rb
+++ b/test/language/transportable.rb
@@ -1,19 +1,12 @@
#!/usr/bin/ruby
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/transportable'
-require 'test/unit'
require 'puppettest'
require 'yaml'
class TestTransportable < Test::Unit::TestCase
- include ParserTesting
+ include PuppetTest::ParserTesting
def test_yamldumpobject
obj = mk_transobject
diff --git a/test/lib/puppettest.rb b/test/lib/puppettest.rb
index b08cfcfd9..bff410060 100644
--- a/test/lib/puppettest.rb
+++ b/test/lib/puppettest.rb
@@ -1,12 +1,54 @@
-require 'puppettest/support/helpers'
+require 'puppet'
+require 'test/unit'
module PuppetTest
- include PuppetTest::Support::Helpers
+ # Find the root of the Puppet tree; this is not the test directory, but
+ # the parent of that dir.
+ def basedir
+ unless defined? @@basedir
+ case $0
+ when /rake_test_loader/
+ @@basedir = File.dirname(Dir.getwd)
+ else
+ dir = nil
+ if /^#{File::SEPARATOR}.+\.rb/
+ dir = $0
+ else
+ dir = File.join(Dir.getwd, $0)
+ end
+ 3.times { dir = File.dirname(dir) }
+ @@basedir = dir
+ end
+ end
+ @@basedir
+ end
def cleanup(&block)
@@cleaners << block
end
+ def datadir
+ File.join(basedir, "test", "data")
+ end
+
+ def exampledir(*args)
+ unless defined? @@exampledir
+ @@exampledir = File.join(basedir, "examples")
+ end
+
+ if args.empty?
+ return @@exampledir
+ else
+ return File.join(@@exampledir, *args)
+ end
+ end
+
+ module_function :basedir, :datadir, :exampledir
+
+ def rake?
+ $0 =~ /rake_test_loader/
+ end
+
def setup
@memoryatstart = Puppet::Util.memory
if defined? @@testcount
@@ -38,16 +80,27 @@ module PuppetTest
@@cleaners = []
- if $0 =~ /.+\.rb/ or Puppet[:debug]
+ # If we're running under rake, then disable debugging and such.
+ if rake? and ! Puppet[:debug]
+ Puppet::Log.close
+ Puppet::Log.newdestination tempfile()
+ Puppet[:httplog] = tempfile()
+ else
Puppet::Log.newdestination :console
Puppet::Log.level = :debug
#$VERBOSE = 1
Puppet.info @method_name
- else
- Puppet::Log.close
- Puppet::Log.newdestination tempfile()
- Puppet[:httplog] = tempfile()
end
+ #if $0 =~ /.+\.rb/ or Puppet[:debug]
+ # Puppet::Log.newdestination :console
+ # Puppet::Log.level = :debug
+ # #$VERBOSE = 1
+ # Puppet.info @method_name
+ #else
+ # Puppet::Log.close
+ # Puppet::Log.newdestination tempfile()
+ # Puppet[:httplog] = tempfile()
+ #end
Puppet[:ignoreschedules] = true
end
@@ -136,4 +189,11 @@ module PuppetTest
end
end
+require 'puppettest/support'
+require 'puppettest/filetesting'
+require 'puppettest/fakes'
+require 'puppettest/exetest'
+require 'puppettest/parsertesting'
+require 'puppettest/servertest'
+
# $Id$
diff --git a/test/lib/puppettest/exetest.rb b/test/lib/puppettest/exetest.rb
index 2d2a68db1..5f155b47f 100644
--- a/test/lib/puppettest/exetest.rb
+++ b/test/lib/puppettest/exetest.rb
@@ -1,4 +1,4 @@
-require 'servertest'
+require 'puppettest/servertest'
module PuppetTest::ExeTest
include PuppetTest::ServerTest
@@ -10,7 +10,7 @@ module PuppetTest::ExeTest
end
def bindir
- File.join($puppetbase, "bin")
+ File.join(basedir, "bin")
end
def setbindir
diff --git a/test/lib/puppettest/fakes.rb b/test/lib/puppettest/fakes.rb
index 42ba0c6af..0d27faf1f 100644
--- a/test/lib/puppettest/fakes.rb
+++ b/test/lib/puppettest/fakes.rb
@@ -1,4 +1,6 @@
-module PuppetTest::Fakes
+require 'puppettest'
+
+module PuppetTest
# A baseclass for the faketypes.
class FakeModel
class << self
diff --git a/test/lib/puppettest/support/file.rb b/test/lib/puppettest/filetesting.rb
index d2810d4e0..43a2ae1a0 100644
--- a/test/lib/puppettest/support/file.rb
+++ b/test/lib/puppettest/filetesting.rb
@@ -1,4 +1,7 @@
-module PuppetTest::Support::File
+require 'puppettest'
+
+module PuppetTest::FileTesting
+ include PuppetTest
def cycle(comp)
trans = nil
assert_nothing_raised {
@@ -221,7 +224,7 @@ module PuppetTest::Support::File
end
def conffile
- File.join($puppetbase,"examples/root/etc/configfile")
+ exampledir("root/etc/configfile")
end
end
diff --git a/test/lib/puppettest/support/parser.rb b/test/lib/puppettest/parsertesting.rb
index c4db871a5..e0606c501 100644
--- a/test/lib/puppettest/support/parser.rb
+++ b/test/lib/puppettest/parsertesting.rb
@@ -1,4 +1,7 @@
-module PuppetTest::Support::Parser
+require 'puppettest'
+
+module PuppetTest::ParserTesting
+ include PuppetTest
AST = Puppet::Parser::AST
def astarray(*args)
diff --git a/test/lib/puppettest/servertest.rb b/test/lib/puppettest/servertest.rb
index 528b1a0d7..532256d74 100644
--- a/test/lib/puppettest/servertest.rb
+++ b/test/lib/puppettest/servertest.rb
@@ -1,4 +1,4 @@
-require 'scaffold'
+require 'puppettest'
module PuppetTest::ServerTest
include PuppetTest
diff --git a/test/lib/puppettest/support.rb b/test/lib/puppettest/support.rb
index 54b19ba7f..c81b5cd9d 100644
--- a/test/lib/puppettest/support.rb
+++ b/test/lib/puppettest/support.rb
@@ -1,8 +1,8 @@
+require 'puppettest'
+
module PuppetTest::Support
end
-require 'support/assertions'
-require 'support/file'
-require 'support/helpers'
-require 'support/parser'
-require 'support/utils'
+require 'puppettest/support/assertions'
+require 'puppettest/support/helpers'
+require 'puppettest/support/utils'
diff --git a/test/lib/puppettest/support/assertions.rb b/test/lib/puppettest/support/assertions.rb
index 63ce0cccb..0e272002e 100644
--- a/test/lib/puppettest/support/assertions.rb
+++ b/test/lib/puppettest/support/assertions.rb
@@ -1,4 +1,6 @@
-module PuppetTest::Support::Assertions
+require 'puppettest'
+
+module PuppetTest
def assert_rollback_events(events, trans, msg = nil)
run_events(:rollback, events, trans, msg)
end
diff --git a/test/lib/puppettest/support/helpers.rb b/test/lib/puppettest/support/helpers.rb
index 41974d331..7fae994d9 100644
--- a/test/lib/puppettest/support/helpers.rb
+++ b/test/lib/puppettest/support/helpers.rb
@@ -1,4 +1,6 @@
-module PuppetTest::Support::Helpers
+require 'puppettest'
+
+module PuppetTest
def nonrootuser
Etc.passwd { |user|
if user.uid != Process.uid and user.uid > 0
diff --git a/test/lib/puppettest/support/utils.rb b/test/lib/puppettest/support/utils.rb
index 1b22e8d6e..00ea1a1c9 100644
--- a/test/lib/puppettest/support/utils.rb
+++ b/test/lib/puppettest/support/utils.rb
@@ -1,4 +1,6 @@
-module PuppetTest::Support::Utils
+require 'puppettest'
+
+module PuppetTest
def gcdebug(type)
Puppet.warning "%s: %s" % [type, ObjectSpace.each_object(type) { |o| }]
end
@@ -15,7 +17,7 @@ module PuppetTest::Support::Utils
assert_nothing_raised {
file = transport.to_type
}
- end
+ end
# stop any services that might be hanging around
def stopservices
@@ -24,7 +26,7 @@ module PuppetTest::Support::Utils
service[:ensure] = :stopped
service.evaluate
}
- end
+ end
end
# TODO: rewrite this to use the 'etc' module.
@@ -65,7 +67,7 @@ module PuppetTest::Support::Utils
# If there are any fake data files, retrieve them
def fakedata(dir)
- ary = [$puppetbase, "test"]
+ ary = [basedir, "test"]
ary += dir.split("/")
dir = File.join(ary)
@@ -80,7 +82,7 @@ module PuppetTest::Support::Utils
end
def fakefile(name)
- ary = [$puppetbase, "test"]
+ ary = [basedir, "test"]
ary += name.split("/")
file = File.join(ary)
unless FileTest.exists?(file)
@@ -100,7 +102,7 @@ module PuppetTest::Support::Utils
# a list of files that we can parse for testing
def textfiles
- textdir = File.join($puppetbase,"examples","code", "snippets")
+ textdir = File.join(exampledir,"code", "snippets")
Dir.entries(textdir).reject { |f|
f =~ /^\./ or f =~ /fail/
}.each { |f|
@@ -109,7 +111,7 @@ module PuppetTest::Support::Utils
end
def failers
- textdir = File.join($puppetbase,"examples","code", "failers")
+ textdir = File.join(exampledir,"code", "failers")
# only parse this one file now
files = Dir.entries(textdir).reject { |file|
file =~ %r{\.swp}
diff --git a/test/other/autoload.rb b/test/other/autoload.rb
index 95fafbda2..7cbb11c1a 100644
--- a/test/other/autoload.rb
+++ b/test/other/autoload.rb
@@ -1,18 +1,11 @@
#!/usr/bin/env ruby
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/autoload'
require 'puppettest'
-require 'test/unit'
class TestAutoload < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
@things = []
def self.newthing(name)
@things << name
diff --git a/test/other/config.rb b/test/other/config.rb
index 33dad6892..3e2c125c7 100755
--- a/test/other/config.rb
+++ b/test/other/config.rb
@@ -1,18 +1,11 @@
#!/usr/bin/env ruby
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/config'
require 'puppettest'
-require 'test/unit'
class TestConfig < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def check_for_users
count = Puppet::Type.type(:user).inject(0) { |c,o|
diff --git a/test/other/events.rb b/test/other/events.rb
index 967fb9395..ab6270b2b 100755
--- a/test/other/events.rb
+++ b/test/other/events.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestEvents < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def teardown
super
Puppet::Event::Subscription.clear
diff --git a/test/other/filetype.rb b/test/other/filetype.rb
index e16ffd86e..6cd749816 100755
--- a/test/other/filetype.rb
+++ b/test/other/filetype.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/filetype'
require 'puppettest'
-require 'test/unit'
class TestFileType < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_flat
obj = nil
diff --git a/test/other/inifile.rb b/test/other/inifile.rb
index eb2fde83d..113036505 100644
--- a/test/other/inifile.rb
+++ b/test/other/inifile.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/inifile'
require 'puppettest'
-require 'test/unit'
class TestFileType < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/other/loadedfile.rb b/test/other/loadedfile.rb
index 1089402a1..8ba45bb81 100755
--- a/test/other/loadedfile.rb
+++ b/test/other/loadedfile.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/loadedfile'
require 'puppettest'
-require 'test/unit'
class TestLoadedFile < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_file
Puppet[:filetimeout] = 0
file = nil
diff --git a/test/other/log.rb b/test/other/log.rb
index eec20b278..750014e05 100644
--- a/test/other/log.rb
+++ b/test/other/log.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/log'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestLog < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/other/metrics.rb b/test/other/metrics.rb
index c6a563bb2..380ee30bd 100644
--- a/test/other/metrics.rb
+++ b/test/other/metrics.rb
@@ -1,14 +1,7 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet/metric'
require 'puppet'
require 'puppettest'
require 'puppet/type'
-require 'test/unit'
$haverrd = true
begin
@@ -19,7 +12,7 @@ end
if $haverrd
class TestMetric < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def gendata
totalmax = 1000
diff --git a/test/other/overrides.rb b/test/other/overrides.rb
index d9220264e..92f4068ef 100755
--- a/test/other/overrides.rb
+++ b/test/other/overrides.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestOverrides < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mksubdirs(basedir, level)
@@tmpfiles << basedir
dir = basedir.dup
diff --git a/test/other/provider.rb b/test/other/provider.rb
index fc04b9926..771c54bf9 100644
--- a/test/other/provider.rb
+++ b/test/other/provider.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/provider'
require 'puppettest'
-require 'test/unit'
class TestImpl < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/other/puppet.rb b/test/other/puppet.rb
index 18600f7a0..76d978c7c 100755
--- a/test/other/puppet.rb
+++ b/test/other/puppet.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# Test the different features of the main puppet module
class TestPuppetModule < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
include SignalObserver
def mkfakeclient
diff --git a/test/other/relationships.rb b/test/other/relationships.rb
index 83949d1ed..e2d65beb1 100755
--- a/test/other/relationships.rb
+++ b/test/other/relationships.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestRelationships < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def newfile
assert_nothing_raised() {
return Puppet.type(:file).create(
diff --git a/test/other/report.rb b/test/other/report.rb
index 2aa78172c..b98813927 100755
--- a/test/other/report.rb
+++ b/test/other/report.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/transaction/report'
require 'puppettest'
-require 'test/unit'
class TestReports < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# Make sure we can use reports as log destinations.
def test_reports_as_log_destinations
diff --git a/test/other/storage.rb b/test/other/storage.rb
index 64fddf332..789495fee 100755
--- a/test/other/storage.rb
+++ b/test/other/storage.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestStorage < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mkfile
path = tempfile()
diff --git a/test/other/transactions.rb b/test/other/transactions.rb
index aea593c1f..e66151979 100644
--- a/test/other/transactions.rb
+++ b/test/other/transactions.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestTransactions < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def test_reports
path1 = tempfile()
@@ -111,7 +104,7 @@ class TestTransactions < Test::Unit::TestCase
return Puppet.type(:service).create(
:name => "sleeper",
:type => "init",
- :path => File.join($puppetbase,"examples/root/etc/init.d"),
+ :path => exampledir("root/etc/init.d"),
:hasstatus => true,
:check => [:ensure]
)
diff --git a/test/providers/group.rb b/test/providers/group.rb
index a23dbb50c..63aafc1f7 100755
--- a/test/providers/group.rb
+++ b/test/providers/group.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'etc'
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestGroupProvider < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@@tmpgroups = []
diff --git a/test/providers/nameservice.rb b/test/providers/nameservice.rb
index 0e0f8050f..dafc8dcf0 100644
--- a/test/providers/nameservice.rb
+++ b/test/providers/nameservice.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestNameServiceProvider < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def test_option
klass = Class.new(Puppet::Type::Provider::NameService)
diff --git a/test/providers/package.rb b/test/providers/package.rb
index 210fae5c1..1c3621909 100644
--- a/test/providers/package.rb
+++ b/test/providers/package.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'etc'
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestPackageProvider < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@provider = nil
diff --git a/test/providers/provider.rb b/test/providers/provider.rb
index cd9b32da2..e540f29fe 100644
--- a/test/providers/provider.rb
+++ b/test/providers/provider.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestProvider < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def echo
echo = Puppet::Util.binary("echo")
diff --git a/test/providers/user.rb b/test/providers/user.rb
index 0778a257f..15fc202f5 100644
--- a/test/providers/user.rb
+++ b/test/providers/user.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestUserProvider < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def setup
super
diff --git a/test/puppet/conffiles.rb b/test/puppet/conffiles.rb
index 095ac9c99..9234e2dfd 100755
--- a/test/puppet/conffiles.rb
+++ b/test/puppet/conffiles.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppet/config'
require 'puppettest'
-require 'test/unit'
class TestConfFiles < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
@@gooddata = [
{
diff --git a/test/puppet/defaults.rb b/test/puppet/defaults.rb
index 2557140e6..46accc9c6 100755
--- a/test/puppet/defaults.rb
+++ b/test/puppet/defaults.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestPuppetDefaults < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
@@dirs = %w{rrddir confdir vardir logdir statedir}
@@files = %w{statefile manifest masterlog}
@@normals = %w{puppetport masterport server}
diff --git a/test/puppet/errortest.rb b/test/puppet/errortest.rb
index f27d79822..264cde857 100755
--- a/test/puppet/errortest.rb
+++ b/test/puppet/errortest.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestError < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_errorisstring
error = nil
diff --git a/test/puppettest.rb b/test/puppettest.rb
deleted file mode 100644
index 70775e0e3..000000000
--- a/test/puppettest.rb
+++ /dev/null
@@ -1,1320 +0,0 @@
-#libdir = File.join(File.dirname(__FILE__), '../lib')
-#unless $:.include?(libdir)
-# $:.unshift libdir
-#end
-
-require 'puppet'
-require 'test/unit'
-
-module TestPuppet
- include ObjectSpace
-
- # A baseclass for the faketypes.
- class FakeModel
- class << self
- attr_accessor :name
- @name = :fakemodel
- end
-
- def self.validstates
- Puppet::Type.type(@name).validstates
- end
-
- def self.validstate?(name)
- Puppet::Type.type(@name).validstate?(name)
- end
-
- def self.to_s
- "Fake%s" % @name.to_s.capitalize
- end
-
- def [](param)
- if @realmodel.attrtype(param) == :state
- @is[param]
- else
- @params[param]
- end
- end
-
- def []=(param, value)
- unless @realmodel.attrtype(param)
- raise Puppet::DevError, "Invalid attribute %s for %s" %
- [param, @realmodel.name]
- end
- if @realmodel.attrtype(param) == :state
- @should[param] = value
- else
- @params[param] = value
- end
- end
-
- def initialize(name)
- @realmodel = Puppet::Type.type(self.class.name)
- raise "Could not find type #{self.class.name}" unless @realmodel
- @is = {}
- @should = {}
- @params = {}
- self[:name] = name
- end
-
- def inspect
- "%s(%s)" % [self.class.to_s.sub(/.+::/, ''), super()]
- end
-
- def is(param)
- @is[param]
- end
-
- def should(param)
- @should[param]
- end
-
- def name
- self[:name]
- end
- end
-
- class FakeProvider
- attr_accessor :model
- class << self
- attr_accessor :name, :model, :methods
- end
-
- # A very low number, so these never show up as defaults via the standard
- # algorithms.
- def self.defaultnum
- -50
- end
-
- # Set up methods to fake things
- def self.apimethods(*ary)
- @model.validstates.each do |state|
- ary << state unless ary.include? state
- end
- attr_accessor(*ary)
-
- @methods = ary
- end
-
- def self.default?
- false
- end
-
- def self.initvars
- @calls = Hash.new do |hash, key|
- hash[key] = 0
- end
- end
-
- def self.suitable?
- true
- end
-
- def clear
- @model = nil
- end
-
- def initialize(model)
- @model = model
- end
- end
-
- @@fakemodels = {}
- @@fakeproviders = {}
-
- def fakemodel(type, name, options = {})
- type = type.intern if type.is_a? String
- unless @@fakemodels.include? type
- @@fakemodels[type] = Class.new(FakeModel)
- @@fakemodels[type].name = type
- end
-
- obj = @@fakemodels[type].new(name)
- obj[:name] = name
- options.each do |name, val|
- obj[name] = val
- end
- obj
- end
-
- def fakeprovider(type, model)
- type = type.intern if type.is_a? String
- unless @@fakeproviders.include? type
- @@fakeproviders[type] = Class.new(FakeModel) do
- @name = type
- end
- end
-
- @@fakeproviders[type].new(model)
- end
-
- def gcdebug(type)
- Puppet.warning "%s: %s" % [type, ObjectSpace.each_object(type) { |o| }]
- end
-
- def newcomp(*ary)
- name = nil
- if ary[0].is_a?(String)
- name = ary.shift
- else
- name = ary[0].title
- end
-
- comp = Puppet.type(:component).create(
- :name => name
- )
- ary.each { |item|
- comp.push item
- }
-
- return comp
- end
-
- def setup
- @memoryatstart = Puppet::Util.memory
- if defined? @@testcount
- @@testcount += 1
- else
- @@testcount = 0
- end
-
- @configpath = File.join(tmpdir,
- self.class.to_s + "configdir" + @@testcount.to_s + "/"
- )
-
- unless defined? $user and $group
- $user = nonrootuser().uid.to_s
- $group = nonrootgroup().gid.to_s
- end
- Puppet[:user] = $user
- Puppet[:group] = $group
-
- Puppet[:confdir] = @configpath
- Puppet[:vardir] = @configpath
-
- unless File.exists?(@configpath)
- Dir.mkdir(@configpath)
- end
-
- @@tmpfiles = [@configpath, tmpdir()]
- @@tmppids = []
-
- @@cleaners = []
-
- if $0 =~ /.+\.rb/ or Puppet[:debug]
- Puppet::Log.newdestination :console
- Puppet::Log.level = :debug
- #$VERBOSE = 1
- Puppet.info @method_name
- else
- Puppet::Log.close
- Puppet::Log.newdestination tempfile()
- Puppet[:httplog] = tempfile()
- end
-
- Puppet[:ignoreschedules] = true
- end
-
- def newobj(type, name, hash)
- transport = Puppet::TransObject.new(name, "file")
- transport[:path] = path
- transport[:ensure] = "file"
- assert_nothing_raised {
- file = transport.to_type
- }
- end
-
- def spin
- # Just disable spin, unless we really need it
- return
-# if Puppet[:debug]
-# return
-# end
-# @modes = %w{| / - \\}
-# unless defined? @mode
-# @mode = 0
-# end
-#
-# $stderr.print "%s" % @modes[@mode]
-# if @mode == @modes.length - 1
-# @mode = 0
-# else
-# @mode += 1
-# end
-# $stderr.flush
- end
-
- # stop any services that might be hanging around
- def stopservices
- if stype = Puppet::Type.type(:service)
- stype.each { |service|
- service[:ensure] = :stopped
- service.evaluate
- }
- end
- end
-
- def cleanup(&block)
- @@cleaners << block
- end
-
- def setme
- # retrieve the user name
- id = %x{id}.chomp
- if id =~ /uid=\d+\(([^\)]+)\)/
- @me = $1
- else
- puts id
- end
- unless defined? @me
- raise "Could not retrieve user name; 'id' did not work"
- end
- end
-
- def teardown
- stopservices
-
- @@cleaners.each { |cleaner| cleaner.call() }
-
- @@tmpfiles.each { |file|
- if FileTest.exists?(file)
- system("chmod -R 755 %s" % file)
- system("rm -rf %s" % file)
- end
- }
- @@tmpfiles.clear
-
- @@tmppids.each { |pid|
- %x{kill -INT #{pid} 2>/dev/null}
- }
-
- @@tmppids.clear
- Puppet::Type.allclear
- Puppet::Storage.clear
- Puppet::Rails.clear
- Puppet.clear
-
- @memoryatend = Puppet::Util.memory
- diff = @memoryatend - @memoryatstart
-
- if diff > 1000
- Puppet.info "%s#%s memory growth (%s to %s): %s" %
- [self.class, @method_name, @memoryatstart, @memoryatend, diff]
- end
-
- # reset all of the logs
- Puppet::Log.close
-
- # Just in case there are processes waiting to die...
- Process.waitall
- if File.stat("/dev/null").mode & 007777 != 0666
- File.open("/tmp/nullfailure", "w") { |f|
- f.puts self.class
- }
- exit(74)
- end
- end
-
- def tempfile
- if defined? @@tmpfilenum
- @@tmpfilenum += 1
- else
- @@tmpfilenum = 1
- end
-
- f = File.join(self.tmpdir(), self.class.to_s + "_" + @method_name +
- @@tmpfilenum.to_s)
- @@tmpfiles << f
- return f
- end
-
- def tstdir
- tempfile()
- end
-
- def tmpdir
- unless defined? @tmpdir and @tmpdir
- @tmpdir = case Facter["operatingsystem"].value
- when "Darwin": "/private/tmp"
- when "SunOS": "/var/tmp"
- else
- "/tmp"
- end
-
-
- @tmpdir = File.join(@tmpdir, "puppettesting")
-
- unless File.exists?(@tmpdir)
- FileUtils.mkdir_p(@tmpdir)
- File.chmod(01777, @tmpdir)
- end
- end
- @tmpdir
- end
-
- def assert_rollback_events(events, trans, msg = nil)
- run_events(:rollback, events, trans, msg)
- end
-
- def assert_events(events, *items)
- trans = nil
- comp = nil
- msg = nil
-
- unless events.is_a? Array
- raise Puppet::DevError, "Incorrect call of assert_events"
- end
- if items[-1].is_a? String
- msg = items.pop
- end
-
- remove_comp = false
- # They either passed a comp or a list of items.
- if items[0].is_a? Puppet.type(:component)
- comp = items.shift
- else
- comp = newcomp(items[0].title, *items)
- remove_comp = true
- end
- msg ||= comp.title
- assert_nothing_raised("Component %s failed" % [msg]) {
- trans = comp.evaluate
- }
-
- run_events(:evaluate, trans, events, msg)
-
- if remove_comp
- Puppet.type(:component).delete(comp)
- end
-
- return trans
- end
-
- # A simpler method that just applies what we have.
- def assert_apply(*objects)
- if objects[0].is_a?(Puppet.type(:component))
- comp = objects.shift
- unless objects.empty?
- objects.each { |o| comp.push o }
- end
- else
- comp = newcomp(*objects)
- end
- trans = nil
-
- assert_nothing_raised("Failed to create transaction") {
- trans = comp.evaluate
- }
-
- events = nil
- assert_nothing_raised("Failed to evaluate transaction") {
- events = trans.evaluate.collect { |e| e.event }
- }
- Puppet.type(:component).delete(comp)
- events
- end
-
- def run_events(type, trans, events, msg)
- case type
- when :evaluate, :rollback: # things are hunky-dory
- else
- raise Puppet::DevError, "Incorrect run_events type"
- end
-
- method = type
-
- newevents = nil
- assert_nothing_raised("Transaction %s %s failed" % [type, msg]) {
- newevents = trans.send(method).reject { |e| e.nil? }.collect { |e|
- e.event
- }
- }
-
- assert_equal(events, newevents, "Incorrect %s %s events" % [type, msg])
-
- return trans
- end
-
- def nonrootuser
- Etc.passwd { |user|
- if user.uid != Process.uid and user.uid > 0
- return user
- end
- }
- end
-
- def nonrootgroup
- Etc.group { |group|
- if group.gid != Process.gid and group.gid > 0
- return group
- end
- }
- end
-
- # If there are any fake data files, retrieve them
- def fakedata(dir)
- ary = [$puppetbase, "test"]
- ary += dir.split("/")
- dir = File.join(ary)
-
- unless FileTest.exists?(dir)
- raise Puppet::DevError, "No fakedata dir %s" % dir
- end
- files = Dir.entries(dir).reject { |f| f =~ /^\./ }.collect { |f|
- File.join(dir, f)
- }
-
- return files
- end
-
- def fakefile(name)
- ary = [$puppetbase, "test"]
- ary += name.split("/")
- file = File.join(ary)
- unless FileTest.exists?(file)
- raise Puppet::DevError, "No fakedata file %s" % file
- end
- return file
- end
-
- # wrap how to retrieve the masked mode
- def filemode(file)
- File.stat(file).mode & 007777
- end
-
- def memory
- Puppet::Util.memory
- end
-end
-
-
-module ServerTest
- include TestPuppet
- 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
-
-module ExeTest
- include ServerTest
-
- def setup
- super
- setbindir
- setlibdir
- end
-
- def bindir
- File.join($puppetbase, "bin")
- end
-
- def setbindir
- unless ENV["PATH"].split(":").include?(bindir)
- ENV["PATH"] = [bindir, ENV["PATH"]].join(":")
- end
- end
-
- def setlibdir
- ENV["RUBYLIB"] = $:.find_all { |dir|
- dir =~ /puppet/ or dir =~ /\.\./
- }.join(":")
- end
-
- # Run a ruby command. This explicitly uses ruby to run stuff, since we
- # don't necessarily know where our ruby binary is, dernit.
- # Currently unused, because I couldn't get it to work.
- def rundaemon(*cmd)
- @ruby ||= %x{which ruby}.chomp
- cmd = cmd.unshift(@ruby).join(" ")
-
- out = nil
- Dir.chdir(bindir()) {
- out = %x{#{@ruby} #{cmd}}
- }
- return out
- end
-
- def startmasterd(args = "")
- output = nil
-
- manifest = mktestmanifest()
- args += " --manifest %s" % manifest
- args += " --confdir %s" % Puppet[:confdir]
- args += " --vardir %s" % Puppet[:vardir]
- args += " --masterport %s" % @@port
- args += " --user %s" % Process.uid
- args += " --group %s" % Process.gid
- args += " --nonodes"
- args += " --autosign true"
-
- #if Puppet[:debug]
- # args += " --debug"
- #end
-
- cmd = "puppetmasterd %s" % args
-
-
- assert_nothing_raised {
- output = %x{#{cmd}}.chomp
- }
- assert_equal("", output, "Puppetmasterd produced output %s" % output)
- assert($? == 0, "Puppetmasterd exit status was %s" % $?)
- sleep(1)
-
- cleanup do
- stopmasterd
- sleep(1)
- end
-
- return manifest
- end
-
- def stopmasterd(running = true)
- ps = Facter["ps"].value || "ps -ef"
-
- pidfile = File.join(Puppet[:vardir], "run", "puppetmasterd.pid")
-
- pid = nil
- if FileTest.exists?(pidfile)
- pid = File.read(pidfile).chomp.to_i
- File.unlink(pidfile)
- end
-
- return unless running
- if running or pid
- runningpid = nil
- %x{#{ps}}.chomp.split(/\n/).each { |line|
- if line =~ /ruby.+puppetmasterd/
- next if line =~ /\.rb/ # skip the test script itself
- next if line =~ /^puppet/ # skip masters running as 'puppet'
- ary = line.sub(/^\s+/, '').split(/\s+/)
- pid = ary[1].to_i
- end
- }
-
- end
-
- # we default to mandating that it's running, but teardown
- # doesn't require that
- if pid
- if pid == $$
- raise Puppet::Error, "Tried to kill own pid"
- end
- begin
- Process.kill(:INT, pid)
- rescue
- # ignore it
- end
- end
- end
-
- def teardown
- stopmasterd(false)
- super
- end
-end
-
-module FileTesting
- include TestPuppet
- def cycle(comp)
- trans = nil
- assert_nothing_raised {
- trans = comp.evaluate
- }
- assert_nothing_raised {
- trans.evaluate
- }
- end
-
- def randlist(list)
- num = rand(4)
- if num == 0
- num = 1
- end
- set = []
-
- ret = []
- num.times { |index|
- item = list[rand(list.length)]
- if set.include?(item)
- redo
- end
-
- ret.push item
- }
- return ret
- end
-
- def mkranddirsandfiles(dirs = nil,files = nil,depth = 3)
- if depth < 0
- return
- end
-
- unless dirs
- dirs = %w{This Is A Set Of Directories}
- end
-
- unless files
- files = %w{and this is a set of files}
- end
-
- tfiles = randlist(files)
- tdirs = randlist(dirs)
-
- tfiles.each { |file|
- File.open(file, "w") { |of|
- 4.times {
- of.puts rand(100)
- }
- }
- }
-
- tdirs.each { |dir|
- # it shouldn't already exist, but...
- unless FileTest.exists?(dir)
- Dir.mkdir(dir)
- FileUtils.cd(dir) {
- mkranddirsandfiles(dirs,files,depth - 1)
- }
- end
- }
- end
-
- def file_list(dir)
- list = nil
- FileUtils.cd(dir) {
- list = %x{find . 2>/dev/null}.chomp.split(/\n/)
- }
- return list
- end
-
- def assert_trees_equal(fromdir,todir)
- assert(FileTest.directory?(fromdir))
- assert(FileTest.directory?(todir))
-
- # verify the file list is the same
- fromlist = nil
- FileUtils.cd(fromdir) {
- fromlist = %x{find . 2>/dev/null}.chomp.split(/\n/).reject { |file|
- ! FileTest.readable?(file)
- }.sort
- }
- tolist = file_list(todir).sort
-
- fromlist.sort.zip(tolist.sort).each { |a,b|
- assert_equal(a, b,
- "Fromfile %s with length %s does not match tofile %s with length %s" %
- [a, fromlist.length, b, tolist.length])
- }
- #assert_equal(fromlist,tolist)
-
- # and then do some verification that the files are actually set up
- # the same
- checked = 0
- fromlist.each_with_index { |file,i|
- fromfile = File.join(fromdir,file)
- tofile = File.join(todir,file)
- fromstat = File.stat(fromfile)
- tostat = File.stat(tofile)
- [:ftype,:gid,:mode,:uid].each { |method|
- assert_equal(
- fromstat.send(method),
- tostat.send(method)
- )
-
- next if fromstat.ftype == "directory"
- if checked < 10 and i % 3 == 0
- from = File.open(fromfile) { |f| f.read }
- to = File.open(tofile) { |f| f.read }
-
- assert_equal(from,to)
- checked += 1
- end
- }
- }
- end
-
- def random_files(dir)
- checked = 0
- list = file_list(dir)
- list.reverse.each_with_index { |file,i|
- path = File.join(dir,file)
- stat = File.stat(dir)
- if checked < 10 and (i % 3) == 2
- unless yield path
- next
- end
- checked += 1
- end
- }
- end
-
- def delete_random_files(dir)
- deleted = []
- random_files(dir) { |file|
- stat = File.stat(file)
- begin
- if stat.ftype == "directory"
- false
- else
- deleted << file
- File.unlink(file)
- true
- end
- rescue => detail
- # we probably won't be able to open our own secured files
- puts detail
- false
- end
- }
-
- return deleted
- end
-
- def add_random_files(dir)
- added = []
- random_files(dir) { |file|
- stat = File.stat(file)
- begin
- if stat.ftype == "directory"
- name = File.join(file,"file" + rand(100).to_s)
- File.open(name, "w") { |f|
- f.puts rand(10)
- }
- added << name
- else
- false
- end
- rescue => detail
- # we probably won't be able to open our own secured files
- puts detail
- false
- end
- }
- return added
- end
-
- def modify_random_files(dir)
- modded = []
- random_files(dir) { |file|
- stat = File.stat(file)
- begin
- if stat.ftype == "directory"
- false
- else
- File.open(file, "w") { |f|
- f.puts rand(10)
- }
- modded << name
- true
- end
- rescue => detail
- # we probably won't be able to open our own secured files
- puts detail
- false
- end
- }
- return modded
- end
-
- def readonly_random_files(dir)
- modded = []
- random_files(dir) { |file|
- stat = File.stat(file)
- begin
- if stat.ftype == "directory"
- File.new(file).chmod(0111)
- else
- File.new(file).chmod(0000)
- end
- modded << file
- rescue => detail
- # we probably won't be able to open our own secured files
- puts detail
- false
- end
- }
- return modded
- end
-
- def conffile
- File.join($puppetbase,"examples/root/etc/configfile")
- end
-end
-
-module ParserTesting
- include TestPuppet
- AST = Puppet::Parser::AST
-
- def astarray(*args)
- AST::ASTArray.new(
- :children => args
- )
- end
-
- def classobj(name, args = {})
- args[:type] ||= nameobj(name)
- args[:code] ||= AST::ASTArray.new(
- :file => __FILE__,
- :line => __LINE__,
- :children => [
- varobj("%svar" % name, "%svalue" % name),
- fileobj("/%s" % name)
- ]
- )
- assert_nothing_raised("Could not create class %s" % name) {
- return AST::ClassDef.new(args)
- }
- end
-
- def tagobj(*names)
- args = {}
- newnames = names.collect do |name|
- if name.is_a? AST
- name
- else
- nameobj(name)
- end
- end
- args[:type] = astarray(*newnames)
- assert_nothing_raised("Could not create tag %s" % names.inspect) {
- return AST::Tag.new(args)
- }
- end
-
- def compobj(name, args = {})
- args[:file] ||= tempfile()
- args[:line] ||= rand(100)
- args[:type] ||= nameobj(name)
- args[:args] ||= AST::ASTArray.new(
- :file => tempfile(),
- :line => rand(100),
- :children => []
- )
- args[:code] ||= AST::ASTArray.new(
- :file => tempfile(),
- :line => rand(100),
- :children => [
- varobj("%svar" % name, "%svalue" % name),
- fileobj("/%s" % name)
- ]
- )
- assert_nothing_raised("Could not create compdef %s" % name) {
- return AST::CompDef.new(args)
- }
- end
-
- def objectdef(type, name, params)
- assert_nothing_raised("Could not create %s %s" % [type, name]) {
- return AST::ObjectDef.new(
- :file => __FILE__,
- :line => __LINE__,
- :name => stringobj(name),
- :type => nameobj(type),
- :params => objectinst(params)
- )
- }
- end
-
- def fileobj(path, hash = {"owner" => "root"})
- assert_nothing_raised("Could not create file %s" % path) {
- return objectdef("file", path, hash)
-# return AST::ObjectDef.new(
-# :file => tempfile(),
-# :line => rand(100),
-# :name => stringobj(path),
-# :type => nameobj("file"),
-# :params => objectinst(hash)
-# )
- }
- end
-
- def nameobj(name)
- assert_nothing_raised("Could not create name %s" % name) {
- return AST::Name.new(
- :file => tempfile(),
- :line => rand(100),
- :value => name
- )
- }
- end
-
- def typeobj(name)
- assert_nothing_raised("Could not create type %s" % name) {
- return AST::Type.new(
- :file => tempfile(),
- :line => rand(100),
- :value => name
- )
- }
- end
-
- def nodedef(name)
- assert_nothing_raised("Could not create node %s" % name) {
- return AST::NodeDef.new(
- :file => tempfile(),
- :line => rand(100),
- :names => nameobj(name),
- :code => AST::ASTArray.new(
- :children => [
- varobj("%svar" % name, "%svalue" % name),
- fileobj("/%s" % name)
- ]
- )
- )
- }
- end
-
- def objectinst(hash)
- assert_nothing_raised("Could not create object instance") {
- params = hash.collect { |param, value|
- objectparam(param, value)
- }
- return AST::ObjectInst.new(
- :file => tempfile(),
- :line => rand(100),
- :children => params
- )
- }
- end
-
- def objectparam(param, value)
- # Allow them to pass non-strings in
- if value.is_a?(String)
- value = stringobj(value)
- end
- assert_nothing_raised("Could not create param %s" % param) {
- return AST::ObjectParam.new(
- :file => tempfile(),
- :line => rand(100),
- :param => nameobj(param),
- :value => value
- )
- }
- end
-
- def stringobj(value)
- AST::String.new(
- :file => tempfile(),
- :line => rand(100),
- :value => value
- )
- end
-
- def varobj(name, value)
- unless value.is_a? AST
- value = stringobj(value)
- end
- assert_nothing_raised("Could not create %s code" % name) {
- return AST::VarDef.new(
- :file => tempfile(),
- :line => rand(100),
- :name => nameobj(name),
- :value => value
- )
- }
- end
-
- def varref(name)
- assert_nothing_raised("Could not create %s variable" % name) {
- return AST::Variable.new(
- :file => __FILE__,
- :line => __LINE__,
- :value => name
- )
- }
- end
-
- def argobj(name, value)
- assert_nothing_raised("Could not create %s compargument" % name) {
- return AST::CompArgument.new(
- :children => [nameobj(name), stringobj(value)]
- )
- }
- end
-
- def defaultobj(type, params)
- pary = []
- params.each { |p,v|
- pary << AST::ObjectParam.new(
- :file => __FILE__,
- :line => __LINE__,
- :param => nameobj(p),
- :value => stringobj(v)
- )
- }
- past = AST::ASTArray.new(
- :file => __FILE__,
- :line => __LINE__,
- :children => pary
- )
-
- assert_nothing_raised("Could not create defaults for %s" % type) {
- return AST::TypeDefaults.new(
- :file => __FILE__,
- :line => __LINE__,
- :type => typeobj(type),
- :params => past
- )
- }
- end
-
- def taggedobj(name, ftype = :statement)
- functionobj("tagged", name, ftype)
- end
-
- def functionobj(function, name, ftype = :statement)
- func = nil
- assert_nothing_raised do
- func = Puppet::Parser::AST::Function.new(
- :name => function,
- :ftype => ftype,
- :arguments => AST::ASTArray.new(
- :children => [nameobj(name)]
- )
- )
- end
-
- return func
- end
-
- # This assumes no nodes
- def assert_creates(manifest, *files)
- interp = nil
- assert_nothing_raised {
- interp = Puppet::Parser::Interpreter.new(
- :Manifest => manifest,
- :UseNodes => false
- )
- }
-
- config = nil
- assert_nothing_raised {
- config = interp.run(Facter["hostname"].value, {})
- }
-
- comp = nil
- assert_nothing_raised {
- comp = config.to_type
- }
-
- assert_apply(comp)
-
- files.each do |file|
- assert(FileTest.exists?(file), "Did not create %s" % file)
- end
- end
-
- def mk_transobject(file = "/etc/passwd")
- obj = nil
- assert_nothing_raised {
- obj = Puppet::TransObject.new("file", file)
- obj["owner"] = "root"
- obj["mode"] = "644"
- }
-
- return obj
- end
-
- def mk_transbucket(*objects)
- bucket = nil
- assert_nothing_raised {
- bucket = Puppet::TransBucket.new
- bucket.name = "yayname"
- bucket.type = "yaytype"
- }
-
- objects.each { |o| bucket << o }
-
- return bucket
- end
-
- # Make a tree of objects, yielding if desired
- def mk_transtree(depth = 4, width = 2)
- top = nil
- assert_nothing_raised {
- top = Puppet::TransBucket.new
- top.name = "top"
- top.type = "bucket"
- }
-
- bucket = top
-
- file = tempfile()
- depth.times do |i|
- objects = []
- width.times do |j|
- path = tempfile + i.to_s
- obj = Puppet::TransObject.new("file", path)
- obj["owner"] = "root"
- obj["mode"] = "644"
-
- # Yield, if they want
- if block_given?
- yield(obj, i, j)
- end
-
- objects << obj
- end
-
- newbucket = mk_transbucket(*objects)
-
- bucket.push newbucket
- bucket = newbucket
- end
-
- return top
- end
-
- # Take a list of AST objects, evaluate them, and return the results
- def assert_evaluate(children)
- top = nil
- assert_nothing_raised("Could not create top object") {
- top = AST::ASTArray.new(
- :children => children
- )
- }
-
- trans = nil
- scope = nil
- assert_nothing_raised {
- scope = Puppet::Parser::Scope.new()
- trans = scope.evaluate(:ast => top)
- }
-
- return trans
- end
-end
-
-class PuppetTestSuite
- attr_accessor :subdir
-
- def self.basedir
- unless defined? @basedir
- @basedir = File.join($puppetbase, "test")
- end
- @basedir
- end
-
- def self.list
- Dir.entries(self.basedir).find_all { |file|
- path = File.join(@basedir, file)
- # Data is for storing test data
- FileTest.directory?(path) and file !~ /^\./ and file != "data" and
- file != "lib"
- }
- end
-
- def initialize(name)
- path = File.join(self.class.basedir, name)
- if FileTest.directory?(path)
- # load each of the files
- Dir.entries(path).collect { |file|
- File.join(path,file)
- }.find_all { |file|
- FileTest.file?(file) and file =~ /\.rb$/
- }.sort { |a,b|
- # in the order they were modified, so the last modified files
- # are loaded and thus displayed last
- File.stat(b) <=> File.stat(a)
- }.each { |file|
- require file
- }
- elsif FileTest.file?(path) && path =~ /\.rb$/
- require path
- else
- puts "TestSuites are directories or files containing test cases"
- puts "no such directory: %s" % path
- exit(65)
- end
- end
-end
-
-# a list of files that we can parse for testing
-def textfiles
- textdir = File.join($puppetbase,"examples","code", "snippets")
- Dir.entries(textdir).reject { |f|
- f =~ /^\./ or f =~ /fail/
- }.each { |f|
- yield File.join(textdir, f)
- }
-end
-
-def failers
- textdir = File.join($puppetbase,"examples","code", "failers")
- # only parse this one file now
- files = Dir.entries(textdir).reject { |file|
- file =~ %r{\.swp}
- }.reject { |file|
- file =~ %r{\.disabled}
- }.collect { |file|
- File.join(textdir,file)
- }.find_all { |file|
- FileTest.file?(file)
- }.sort.each { |file|
- Puppet.debug "Processing %s" % file
- yield file
- }
-end
-
-# $Id$
diff --git a/test/server/authconfig.rb b/test/server/authconfig.rb
index 32ae46dff..a5a0a1c00 100755
--- a/test/server/authconfig.rb
+++ b/test/server/authconfig.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/authconfig'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestAuthConfig < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_parsingconfigfile
file = tempfile()
diff --git a/test/server/authstore.rb b/test/server/authstore.rb
index db580d68e..30eb5ea04 100755
--- a/test/server/authstore.rb
+++ b/test/server/authstore.rb
@@ -1,20 +1,9 @@
-if __FILE__ == $0
- if Dir.getwd =~ /test\/server$/
- Dir.chdir("..")
- end
-
- $:.unshift '../lib'
- $puppetbase = ".."
-
-end
-
require 'puppet'
require 'puppet/server/authstore'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestAuthStore < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mkstore
store = nil
assert_nothing_raised {
diff --git a/test/server/bucket.rb b/test/server/bucket.rb
index af2fd0865..dcb50d27e 100644
--- a/test/server/bucket.rb
+++ b/test/server/bucket.rb
@@ -1,19 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
- $debug = true
-else
- $debug = false
-end
-
require 'puppet'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'base64'
class TestBucket < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def out
if defined? @num
diff --git a/test/server/ca.rb b/test/server/ca.rb
index b7bad5cd6..8be0df334 100644
--- a/test/server/ca.rb
+++ b/test/server/ca.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/ca'
require 'puppet/sslcertificates'
require 'openssl'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
# $Id$
@@ -20,7 +13,7 @@ else
end
class TestCA < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
# Verify that we're autosigning. We have to autosign a "different" machine,
# since we always autosign the CA server's certificate.
def test_autocertgeneration
diff --git a/test/server/fileserver.rb b/test/server/fileserver.rb
index b42b1712f..e7aaa6017 100755
--- a/test/server/fileserver.rb
+++ b/test/server/fileserver.rb
@@ -1,20 +1,9 @@
-if __FILE__ == $0
- if Dir.getwd =~ /test\/server$/
- Dir.chdir("..")
- end
-
- $:.unshift '../lib'
- $puppetbase = ".."
-
-end
-
require 'puppet'
require 'puppet/server/fileserver'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestFileServer < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mkmount(path = nil)
mount = nil
@@ -53,7 +42,6 @@ class TestFileServer < Test::Unit::TestCase
def mktestfiles(testdir)
@@tmpfiles << testdir
assert_nothing_raised {
- Dir.mkdir(testdir)
files = %w{a b c d e}.collect { |l|
name = File.join(testdir, "file%s" % l)
File.open(name, "w") { |f|
diff --git a/test/server/logger.rb b/test/server/logger.rb
index e0a03417e..8ba0d0067 100644
--- a/test/server/logger.rb
+++ b/test/server/logger.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'base64'
require 'cgi'
class TestLogger < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def setup
super
diff --git a/test/server/master.rb b/test/server/master.rb
index 2f6804e56..2d1b9ec2c 100644
--- a/test/server/master.rb
+++ b/test/server/master.rb
@@ -1,21 +1,10 @@
-if __FILE__ == $0
- if Dir.getwd =~ /test\/server$/
- Dir.chdir("..")
- end
-
- $:.unshift '../lib'
- $puppetbase = ".."
-
-end
-
require 'puppet'
require 'puppet/server'
require 'puppet/client'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestMaster < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def teardown
super
#print "\n\n\n\n" if Puppet[:debug]
diff --git a/test/server/pelement.rb b/test/server/pelement.rb
index 5d5b5ceb4..edfe89744 100644
--- a/test/server/pelement.rb
+++ b/test/server/pelement.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/pelement'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
require 'base64'
require 'cgi'
class TestPElementServer < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
def verify_described(type, described)
described.each do |name, trans|
@@ -175,7 +168,7 @@ class TestPElementServer < Test::Unit::TestCase
def test_describe_alltypes
# Systems get pretty retarded, so I'm going to set the path to some fake
# data for ports
- #Puppet::Type::ParsedType::Port.path = File.join($puppetbase,
+ #Puppet::Type::ParsedType::Port.path = File.join(basedir,
# "test/data/types/ports/1")
#Puppet.err Puppet::Type::ParsedType::Port.path
server = nil
diff --git a/test/server/report.rb b/test/server/report.rb
index 5e74dc1da..423b8ce90 100755
--- a/test/server/report.rb
+++ b/test/server/report.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/report'
require 'puppet/client/reporter'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestReportServer < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
Puppet::Util.logmethods(self)
def mkserver
diff --git a/test/server/rights.rb b/test/server/rights.rb
index 09cb21e56..ac0944bd0 100755
--- a/test/server/rights.rb
+++ b/test/server/rights.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/rights'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestRights < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_rights
store = nil
diff --git a/test/server/runner.rb b/test/server/runner.rb
index 59487776f..1c2fa9cea 100755
--- a/test/server/runner.rb
+++ b/test/server/runner.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server/runner'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
class TestServerRunner < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def mkclient(file)
master = nil
diff --git a/test/server/server.rb b/test/server/server.rb
index e279d8440..681fa1f42 100644
--- a/test/server/server.rb
+++ b/test/server/server.rb
@@ -1,13 +1,6 @@
-if __FILE__ == $0
- $:.unshift '../../lib'
- $:.unshift '..'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppet/server'
-require 'test/unit'
-require 'puppettest.rb'
+require 'puppettest'
# $Id$
@@ -18,7 +11,7 @@ else
end
class TestServer < Test::Unit::TestCase
- include ServerTest
+ include PuppetTest::ServerTest
# test that we can connect to the server
# we have to use fork here, because we apparently can't use threads
diff --git a/test/tagging/tagging.rb b/test/tagging/tagging.rb
index 434ef6e69..42f04ff4f 100644
--- a/test/tagging/tagging.rb
+++ b/test/tagging/tagging.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestTagging < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# Make sure the scopes are getting the right tags
def test_scopetags
@@ -62,9 +55,14 @@ class TestTagging < Test::Unit::TestCase
)
}
+ ast = Puppet::Parser::AST::ASTArray.new({})
+
+ # We have to use 'evaluate', rather than just calling to_trans directly,
+ # because scopes do some internal checking to make sure the same object
+ # is not translated multiple times.
objects = nil
assert_nothing_raised {
- objects = scope.to_trans
+ objects = scope.evaluate(:ast => ast)
}
# There's only one object, so shift it out
diff --git a/test/test b/test/test
deleted file mode 100755
index 9b3613599..000000000
--- a/test/test
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env ruby
-
-#------------------------------------------------------------
-# run any or all test suites
-
-basedir = File.dirname(__FILE__)
-if basedir == "."
- basedir = Dir.getwd
-end
-$puppetbase = File.expand_path(File.join(basedir, ".."))
-
-$:.unshift basedir
-$:.unshift "#{$puppetbase}/lib"
-
-
-require 'puppettest.rb'
-require 'getoptlong'
-
- #[ "--size", "-s", GetoptLong::REQUIRED_ARGUMENT ],
-result = GetoptLong.new(
- [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
- [ "-n", GetoptLong::REQUIRED_ARGUMENT ],
- [ "--help", "-h", GetoptLong::NO_ARGUMENT ]
-)
-
-usage = "USAGE: %s [--help] <testsuite> <testsuite> .." % $0
-
-opts = []
-
-result.each { |opt,arg|
- case opt
- when "--debug"
- Puppet::Log.level = :debug
- when "--help"
- puts usage
- exit
- else
- opts << opt << arg
- #raise "Invalid option '#{opt}'"
- end
-}
-suites = nil
-
-if ARGV.length != 0
- suites = ARGV.dup
-else
- suites = PuppetTestSuite.list
-end
-
-ARGV.clear
-
-opts.each { |o| ARGV << o }
-
-suites.each { |suite|
- PuppetTestSuite.new(suite)
-}
-
-# This damn problem just doesn't seem to want to go away
-system("%s/etc/init.d/sleeper stop 2>/dev/null 1>/dev/null" % $puppetbase)
-
-# $Id$
diff --git a/test/types/basic.rb b/test/types/basic.rb
index f734cb5a0..e8dd38c77 100644
--- a/test/types/basic.rb
+++ b/test/types/basic.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestBasic < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# hmmm
# this is complicated, because we store references to the created
# objects in a central store
@@ -39,7 +32,7 @@ class TestBasic < Test::Unit::TestCase
@sleeper = Puppet.type(:service).create(
:name => "sleeper",
:provider => "init",
- :path => File.join($puppetbase,"examples/root/etc/init.d"),
+ :path => exampledir("root/etc/init.d"),
:hasstatus => true,
:ensure => :running
)
diff --git a/test/types/component.rb b/test/types/component.rb
index 0754e7cdc..2ab0661d6 100755
--- a/test/types/component.rb
+++ b/test/types/component.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestComponent < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@@used = {}
diff --git a/test/types/cron.rb b/test/types/cron.rb
index 65d37cfa0..b802a1c77 100755
--- a/test/types/cron.rb
+++ b/test/types/cron.rb
@@ -1,18 +1,11 @@
# Test cron job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestCron < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/types/exec.rb b/test/types/exec.rb
index 8f09420d1..4719e0baa 100755
--- a/test/types/exec.rb
+++ b/test/types/exec.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
require 'facter'
class TestExec < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_execution
command = nil
output = nil
diff --git a/test/types/file.rb b/test/types/file.rb
index e814b6c37..b87f1b928 100644
--- a/test/types/file.rb
+++ b/test/types/file.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
-require 'test/unit'
require 'fileutils'
require 'puppettest'
class TestFile < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
# hmmm
# this is complicated, because we store references to the created
# objects in a central store
diff --git a/test/types/filebucket.rb b/test/types/filebucket.rb
index e7e7e3e73..eb7ee59f7 100755
--- a/test/types/filebucket.rb
+++ b/test/types/filebucket.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
-require 'test/unit'
require 'fileutils'
require 'puppettest'
# $Id$
class TestFileBucket < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
# hmmm
# this is complicated, because we store references to the created
# objects in a central store
diff --git a/test/types/fileignoresource.rb b/test/types/fileignoresource.rb
index 4189c50e3..1340dbbc9 100644
--- a/test/types/fileignoresource.rb
+++ b/test/types/fileignoresource.rb
@@ -1,19 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $:.unshift "../../../../language/trunk/lib"
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'cgi'
-require 'test/unit'
require 'fileutils'
require 'puppettest'
class TestFileIgnoreSources < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def setup
super
diff --git a/test/types/filesources.rb b/test/types/filesources.rb
index 009d1a35a..3cc546b40 100755
--- a/test/types/filesources.rb
+++ b/test/types/filesources.rb
@@ -1,18 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $:.unshift "../../../../language/trunk/lib"
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'cgi'
-require 'test/unit'
require 'fileutils'
require 'puppettest'
class TestFileSources < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def setup
super
begin
diff --git a/test/types/group.rb b/test/types/group.rb
index 508b8436c..68893ff4d 100755
--- a/test/types/group.rb
+++ b/test/types/group.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'etc'
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestGroup < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
- p = Puppet::Type.type(:group).provide :fake, :parent => TestPuppet::FakeProvider do
+ p = Puppet::Type.type(:group).provide :fake, :parent => PuppetTest::FakeProvider do
@name = :fake
apimethods :ensure, :gid
diff --git a/test/types/host.rb b/test/types/host.rb
index 8af9e3e4a..db2c391bf 100755
--- a/test/types/host.rb
+++ b/test/types/host.rb
@@ -1,18 +1,11 @@
# Test host job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
class TestHost < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
# god i'm lazy
diff --git a/test/types/mount.rb b/test/types/mount.rb
index 70170289e..e0838e072 100755
--- a/test/types/mount.rb
+++ b/test/types/mount.rb
@@ -1,19 +1,12 @@
# Test host job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
require 'puppet/type/parsedtype/mount'
-require 'test/unit'
require 'facter'
class TestMounts < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@mounttype = Puppet.type(:mount)
diff --git a/test/types/package.rb b/test/types/package.rb
index 51bfc5fa3..4d04dc147 100644
--- a/test/types/package.rb
+++ b/test/types/package.rb
@@ -1,12 +1,5 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'facter'
$platform = Facter["operatingsystem"].value
@@ -16,7 +9,7 @@ unless Puppet.type(:package).defaultprovider
else
class TestPackages < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def setup
super
#@list = Puppet.type(:package).getpkglist
diff --git a/test/types/parameter.rb b/test/types/parameter.rb
index 902f1398e..e94fe914b 100644
--- a/test/types/parameter.rb
+++ b/test/types/parameter.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestParameter < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def newparam(name = :fakeparam)
assert_nothing_raised {
diff --git a/test/types/port.rb b/test/types/port.rb
index debd7ed89..ad73e7d97 100755
--- a/test/types/port.rb
+++ b/test/types/port.rb
@@ -1,19 +1,12 @@
# Test host job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
require 'puppet/type/parsedtype/port'
-require 'test/unit'
require 'facter'
class TestPort < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
@porttype = Puppet.type(:port)
diff --git a/test/types/query.rb b/test/types/query.rb
index 121670012..fe5742490 100644
--- a/test/types/query.rb
+++ b/test/types/query.rb
@@ -1,23 +1,16 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = File.join(Dir.getwd(), "../..")
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestQuery < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# hmmm
# this is complicated, because we store references to the created
# objects in a central store
def file
assert_nothing_raised() {
- cfile = File.join($puppetbase,"examples/root/etc/configfile")
+ cfile = exampledir("root/etc/configfile")
unless Puppet.type(:file).has_key?(cfile)
Puppet.type(:file).create(
:path => cfile,
@@ -35,7 +28,7 @@ class TestQuery < Test::Unit::TestCase
Puppet.type(:service).create(
:name => "sleeper",
:provider => "init",
- :path => File.join($puppetbase,"examples/root/etc/init.d"),
+ :path => exampledir("root/etc/init.d"),
:hasstatus => true,
:check => [:ensure]
)
diff --git a/test/types/schedule.rb b/test/types/schedule.rb
index ded677fd2..b68540d84 100755
--- a/test/types/schedule.rb
+++ b/test/types/schedule.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
-require 'test/unit'
require 'puppet/type/schedule'
require 'puppettest'
class TestSchedule < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/types/service.rb b/test/types/service.rb
index e936e8f84..f9d6251ad 100644
--- a/test/types/service.rb
+++ b/test/types/service.rb
@@ -1,12 +1,5 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
$skipsvcs = false
case Facter["operatingsystem"].value
@@ -18,13 +11,13 @@ if $skipsvcs
else
#class TestInitService < Test::Unit::TestCase
class TestInitService
- include TestPuppet
+ include PuppetTest
def setup
super
sleeper = nil
- script = File.join($puppetbase,"examples/root/etc/init.d/sleeper")
- @init = File.join($puppetbase,"examples/root/etc/init.d")
+ script = exampledir("root/etc/init.d/sleeper")
+ @init = exampledir("root/etc/init.d")
@status = script + " status"
end
@@ -44,7 +37,7 @@ class TestInitService
def mksleeper(hash = {})
hash[:name] = "sleeper"
- hash[:path] = File.join($puppetbase,"examples/root/etc/init.d")
+ hash[:path] = exampledir("root/etc/init.d")
hash[:ensure] = true
hash[:hasstatus] = true
hash[:hasrestart] = true
@@ -111,7 +104,7 @@ class TestInitService
end
class TestLocalService < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def teardown
Puppet.type(:service).clear
diff --git a/test/types/sshkey.rb b/test/types/sshkey.rb
index ff9adc336..e541a0bd6 100755
--- a/test/types/sshkey.rb
+++ b/test/types/sshkey.rb
@@ -1,19 +1,12 @@
# Test key job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
require 'puppet/type/parsedtype/sshkey'
-require 'test/unit'
require 'facter'
class TestSSHKey < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
# god i'm lazy
diff --git a/test/types/state.rb b/test/types/state.rb
index 638372afe..c3ea0965f 100644
--- a/test/types/state.rb
+++ b/test/types/state.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestState < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def newinst(state)
inst = nil
diff --git a/test/types/symlink.rb b/test/types/symlink.rb
index 408817cb7..8f3e1d598 100755
--- a/test/types/symlink.rb
+++ b/test/types/symlink.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestSymlink < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def mktmpfile
# because luke's home directory is on nfs, it can't be used for testing
# as root
diff --git a/test/types/tidy.rb b/test/types/tidy.rb
index dc5bc2d2d..74c6bceda 100755
--- a/test/types/tidy.rb
+++ b/test/types/tidy.rb
@@ -1,17 +1,10 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../../../../language/trunk"
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
# $Id$
class TestTidy < Test::Unit::TestCase
- include FileTesting
+ include PuppetTest::FileTesting
def mktmpfile
# because luke's home directory is on nfs, it can't be used for testing
# as root
diff --git a/test/types/type.rb b/test/types/type.rb
index 010102ad9..f8785fd3b 100644
--- a/test/types/type.rb
+++ b/test/types/type.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestType < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_typemethods
Puppet::Type.eachtype { |type|
name = nil
diff --git a/test/types/user.rb b/test/types/user.rb
index 008f39272..958cf9441 100755
--- a/test/types/user.rb
+++ b/test/types/user.rb
@@ -1,18 +1,11 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'etc'
require 'puppet/type'
require 'puppettest'
-require 'test/unit'
class TestUser < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
- p = Puppet::Type.type(:user).provide :fake, :parent => TestPuppet::FakeProvider do
+ p = Puppet::Type.type(:user).provide :fake, :parent => PuppetTest::FakeProvider do
@name = :fake
apimethods
def create
diff --git a/test/types/yumrepo.rb b/test/types/yumrepo.rb
index f88525d1e..4a377c3ed 100644
--- a/test/types/yumrepo.rb
+++ b/test/types/yumrepo.rb
@@ -1,18 +1,11 @@
# Test the yumrepo type
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
-require 'test/unit'
require 'fileutils'
class TestYumRepo < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def setup
super
diff --git a/test/types/zone.rb b/test/types/zone.rb
index 4370c300d..46f411ef3 100755
--- a/test/types/zone.rb
+++ b/test/types/zone.rb
@@ -1,19 +1,12 @@
# Test host job creation, modification, and destruction
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = "../.."
-end
-
require 'puppettest'
require 'puppet'
require 'puppet/type/zone'
-require 'test/unit'
require 'facter'
class TestZone < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_nothing
end
diff --git a/test/util/classgen.rb b/test/util/classgen.rb
index 7b1b4731c..7f3cb23ca 100755
--- a/test/util/classgen.rb
+++ b/test/util/classgen.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestPuppetUtilClassGen < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
class FakeBase
class << self
diff --git a/test/util/execution.rb b/test/util/execution.rb
index ec56c84bb..932e03807 100755
--- a/test/util/execution.rb
+++ b/test/util/execution.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestPuppetUtilExecution < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
def test_withenv
ENV["testing"] = "yay"
diff --git a/test/util/package.rb b/test/util/package.rb
index 2d7f633de..bb5cd3c85 100755
--- a/test/util/package.rb
+++ b/test/util/package.rb
@@ -1,16 +1,9 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppet/util/package'
require 'puppettest'
-require 'test/unit'
class TestPuppetUtilPackage < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
include Puppet::Util::Package
def test_versioncmp
diff --git a/test/util/utiltest.rb b/test/util/utiltest.rb
index 481b8a9fe..b3a356429 100755
--- a/test/util/utiltest.rb
+++ b/test/util/utiltest.rb
@@ -1,15 +1,8 @@
-if __FILE__ == $0
- $:.unshift '..'
- $:.unshift '../../lib'
- $puppetbase = ".."
-end
-
require 'puppet'
require 'puppettest'
-require 'test/unit'
class TestPuppetUtil < Test::Unit::TestCase
- include TestPuppet
+ include PuppetTest
# we're getting corrupt files, probably because multiple processes
# are reading or writing the file at once