blob: 631b3b22a0e72db627802d57eb4152765bc66778 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../lib/puppettest'
require 'puppettest'
class TestPuppetBin < Test::Unit::TestCase
include PuppetTest::ExeTest
def test_version
output = nil
assert_nothing_raised {
output = %x{puppet --version}.chomp
}
assert_equal(Puppet.version, output)
end
def test_execution
file = mktestmanifest()
output = nil
cmd = "puppet"
if Puppet[:debug]
cmd += " --debug"
end
cmd += " --confdir %s" % Puppet[:confdir]
cmd += " --vardir %s" % Puppet[:vardir]
unless Puppet[:debug]
cmd += " --logdest %s" % "/dev/null"
end
assert_nothing_raised {
output = %x{#{cmd + " " + file} 2>&1}
}
assert($? == 0, "Puppet exited with code %s" % $?.to_i)
assert(FileTest.exists?(@createdfile), "Failed to create config'ed file")
end
def test_inlineexecution
path = tempfile()
code = "file { '#{path}': ensure => file }"
output = nil
cmd = "puppet"
if Puppet[:debug]
cmd += " --debug"
end
#cmd += " --fqdn %s" % fqdn
cmd += " --confdir %s" % Puppet[:confdir]
cmd += " --vardir %s" % Puppet[:vardir]
unless Puppet[:debug]
cmd += " --logdest %s" % "/dev/null"
end
cmd += " -e \"#{code}\""
assert_nothing_raised {
out = %x{#{cmd} 2>&1}
}
assert($? == 0, "Puppet exited with code %s" % $?.to_i)
assert(FileTest.exists?(path), "Failed to create config'ed file")
end
def test_stdin_execution
path = tempfile()
manifest = tempfile()
env = %x{which env}.chomp
if env == ""
Puppet.info "cannot find env; cannot test stdin_execution"
return
end
File.open(manifest, "w") do |f|
f.puts "#!#{env} puppet
exec { '/bin/touch #{path}': }"
end
File.chmod(0755, manifest)
assert_nothing_raised {
out = %x{#{manifest} 2>&1}
}
assert($? == 0, "manifest exited with code %s" % $?.to_i)
assert(FileTest.exists?(path), "Failed to create config'ed file")
end
def test_parseonly
path = tempfile()
manifest = tempfile()
puppet = %x{which puppet}.chomp
if puppet == ""
Puppet.info "cannot find puppet; cannot test parseonly"
return
end
code = 'File <<| |>>
include nosuchclass'
assert_nothing_raised {
IO.popen("#{puppet} --parseonly", 'w') { |p| p.puts code }
}
assert($? == 0, "parseonly test exited with code %s" % $?.to_i)
end
end
|