beaker 2.11.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/HISTORY.md +84 -2
- data/acceptance/pre_suite/pe/install.rb +1 -0
- data/acceptance/pre_suite/puppet_gem/install.rb +10 -0
- data/acceptance/pre_suite/puppet_git/install.rb +151 -0
- data/acceptance/pre_suite/puppet_pkg/install.rb +7 -0
- data/acceptance/tests/puppet/install_smoke.rb +21 -0
- data/lib/beaker/dsl/helpers.rb +2 -1
- data/lib/beaker/dsl/helpers/test_helpers.rb +72 -0
- data/lib/beaker/dsl/structure.rb +2 -0
- data/lib/beaker/host/freebsd/exec.rb +1 -1
- data/lib/beaker/hypervisor/vmpooler.rb +23 -2
- data/lib/beaker/options/command_line_parser.rb +4 -0
- data/lib/beaker/test_case.rb +4 -0
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/dsl/helpers/test_helpers_spec.rb +77 -0
- data/spec/beaker/dsl/install_utils/puppet_utils_spec.rb +4 -0
- data/spec/beaker/dsl/structure_spec.rb +25 -0
- data/spec/beaker/host/freebsd/exec_spec.rb +37 -0
- data/spec/beaker/hypervisor/vmpooler_spec.rb +1 -0
- data/spec/beaker/options/command_line_parser_spec.rb +22 -2
- data/spec/beaker/test_case_spec.rb +30 -0
- metadata +10 -2
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
MDViYzc2MGNjNDgxMjczMmE4MmQ2NzY3NTNhOWI5ZWU1NGYxNjA4Zg==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
MmExY2UzMTI0ZDA2MzkzYzgwOGNhZTVmZDVhNWIxMDFlOWI0OGM5Mw==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
NDY5MjdhMGYwMWRmN2FiZGY4Y2YxYzAyNmNmYjYwOGYzZmZkN2YzYWJkY2Uy
|
|
10
|
+
YjQ3MmY2NjE1ODgyZTEyNzkxOWI4ZWRjOTk2MTFjODI0YWQzMDBkOTMwNzI5
|
|
11
|
+
ZWI4NGFjMTE5YjdjZTdmY2NjY2U5MTM1MGQ1OGRiNTU2ZGYxZTY=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
NjBmYzBhZDcyMzA3NDdjMzUwZDVjYmFlMTEwMjllZDFhNWViMzI0NWFlNjBh
|
|
14
|
+
NDQwYTc5NGJjNGRlY2RhNzZiMThkOTU3MmU0ZmEwMmNiMTJlZDMwNzEwZmEx
|
|
15
|
+
MmE0MTE5ZmVhYTc5ZDFhZWY0NDJiNjE5ZDY1NTQ0MzEyMzcxZGM=
|
data/HISTORY.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# default - History
|
|
2
2
|
## Tags
|
|
3
|
-
* [LATEST -
|
|
3
|
+
* [LATEST - 20 May, 2015 (88efb0d6)](#LATEST)
|
|
4
|
+
* [2.11.0 - 6 May, 2015 (b775cc73)](#2.11.0)
|
|
4
5
|
* [2.10.0 - 22 Apr, 2015 (c4f37479)](#2.10.0)
|
|
5
6
|
* [2.9.0 - 9 Apr, 2015 (b161d325)](#2.9.0)
|
|
6
7
|
* [beaker2.8.0 - 26 Mar, 2015 (2d25d06d)](#beaker2.8.0)
|
|
@@ -79,7 +80,88 @@
|
|
|
79
80
|
* [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
|
|
80
81
|
|
|
81
82
|
## Details
|
|
82
|
-
### <a name = "LATEST">LATEST -
|
|
83
|
+
### <a name = "LATEST">LATEST - 20 May, 2015 (88efb0d6)
|
|
84
|
+
|
|
85
|
+
* (GEM) update beaker version to 2.12.0 (88efb0d6)
|
|
86
|
+
|
|
87
|
+
* Merge pull request #790 from kevpl/bkr76_acceptance_addpresuite (4d43e91d)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Merge pull request #790 from kevpl/bkr76_acceptance_addpresuite
|
|
92
|
+
|
|
93
|
+
(BKR-76) created first pre-suite acceptance tests
|
|
94
|
+
```
|
|
95
|
+
* Merge pull request #814 from kevpl/bkr186_test_addaccessors2 (121ee9f8)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Merge pull request #814 from kevpl/bkr186_test_addaccessors2
|
|
100
|
+
|
|
101
|
+
(BKR-186) added current test info accessors to DSL
|
|
102
|
+
```
|
|
103
|
+
* Merge pull request #815 from kevpl/bkr232_option_noprovision_implies_no_configure_validate (f60724a6)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Merge pull request #815 from kevpl/bkr232_option_noprovision_implies_no_configure_validate
|
|
108
|
+
|
|
109
|
+
(BKR-232) --no-provision now implies --no-configure & --no-validate
|
|
110
|
+
```
|
|
111
|
+
* Merge pull request #816 from petems/BKR-276-fix_freebsd_file_making (158273ef)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
Merge pull request #816 from petems/BKR-276-fix_freebsd_file_making
|
|
116
|
+
|
|
117
|
+
(BKR-276) Fixes `#echo_to_file` for FreeBSD
|
|
118
|
+
```
|
|
119
|
+
* (BKR-276) Fixes `#echo_to_file` for FreeBSD (d1e36080)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
(BKR-276) Fixes `#echo_to_file` for FreeBSD
|
|
124
|
+
|
|
125
|
+
Previous command didn't wrap printf string in `"`
|
|
126
|
+
Stops command working:
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
freebsd-9-x64 executed in 0.04 seconds
|
|
132
|
+
Warning: ssh connection to 10.255.52.108 has been terminated
|
|
133
|
+
|
|
134
|
+
freebsd-9-x64 20:12:47$ printf 127.0.0.1\tlocalhost localhost.localdomain\n10.255.52.108\tfreebsd-9-x64\n > /etc/hosts
|
|
135
|
+
Attempting ssh connection to 10.255.52.108, user: root, opts: {:config=>"/var/folders/nn/408ddhln26s1b356ry19q6yr0000gp/T/freebsd-9-x6420150518-65951-3jag0b"}
|
|
136
|
+
printf: missing format character
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
* (BKR-232) --no-provision now implies --no-configure & --no-validate (e2200d2e)
|
|
141
|
+
|
|
142
|
+
* (BKR-76) sles: fixed git & gem install issues (d0d0b95d)
|
|
143
|
+
|
|
144
|
+
* (BKR-76) fixed solaris 11 issues with git install (8909ff3b)
|
|
145
|
+
|
|
146
|
+
* Merge pull request #799 from sschneid/vmpooler_tokens (3e545182)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Merge pull request #799 from sschneid/vmpooler_tokens
|
|
151
|
+
|
|
152
|
+
(BKR-218) Support using vmpooler API tokens
|
|
153
|
+
```
|
|
154
|
+
* (BKR-76) added windows ruby setup steps (1f45fc57)
|
|
155
|
+
|
|
156
|
+
* (BKR-186) added current test info accessors to DSL (76b07a5a)
|
|
157
|
+
|
|
158
|
+
* (BKR-218) Support using vmpooler API tokens (4c860f93)
|
|
159
|
+
|
|
160
|
+
* (BKR-76) created first pre-suite acceptance tests (b5d1dd1f)
|
|
161
|
+
|
|
162
|
+
### <a name = "2.11.0">2.11.0 - 6 May, 2015 (b775cc73)
|
|
163
|
+
|
|
164
|
+
* (HISTORY) update beaker history for gem release 2.11.0 (b775cc73)
|
|
83
165
|
|
|
84
166
|
* (GEM) update beaker version to 2.11.0 (50128ac0)
|
|
85
167
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
install_pe
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
hosts.each do |host|
|
|
2
|
+
install_puppet_from_gem(host, {:version => '3.7.5'})
|
|
3
|
+
|
|
4
|
+
if host['platform'] =~ /sles/
|
|
5
|
+
host.mkdir_p(host['puppetbindir'])
|
|
6
|
+
['facter', 'hiera', 'puppet'].each do |tool|
|
|
7
|
+
on host, "ln -s /usr/bin/#{tool}.ruby* #{host['puppetbindir']}/#{tool}"
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
install = [
|
|
2
|
+
'facter#stable',
|
|
3
|
+
'hiera#stable',
|
|
4
|
+
'puppet#3.7.5'
|
|
5
|
+
]
|
|
6
|
+
|
|
7
|
+
SourcePath = Beaker::DSL::InstallUtils::SourcePath
|
|
8
|
+
|
|
9
|
+
PACKAGES = {
|
|
10
|
+
:redhat => [
|
|
11
|
+
'git',
|
|
12
|
+
'ruby',
|
|
13
|
+
'rubygem-json', # :add_el_extras is required to find this package
|
|
14
|
+
],
|
|
15
|
+
:debian => [
|
|
16
|
+
['git', 'git-core'],
|
|
17
|
+
'ruby',
|
|
18
|
+
],
|
|
19
|
+
:debian_ruby18 => [
|
|
20
|
+
'libjson-ruby',
|
|
21
|
+
],
|
|
22
|
+
:solaris_11 => [
|
|
23
|
+
['git', 'developer/versioning/git'],
|
|
24
|
+
['ruby', 'runtime/ruby-18'],
|
|
25
|
+
],
|
|
26
|
+
:solaris_10 => [
|
|
27
|
+
'coreutils',
|
|
28
|
+
'curl', # update curl to fix "CURLOPT_SSL_VERIFYHOST no longer supports 1 as value!" issue
|
|
29
|
+
'git',
|
|
30
|
+
'ruby19',
|
|
31
|
+
'ruby19_dev',
|
|
32
|
+
'gcc4core',
|
|
33
|
+
],
|
|
34
|
+
:windows => [
|
|
35
|
+
'git',
|
|
36
|
+
# there isn't a need for json on windows because it is bundled in ruby 1.9
|
|
37
|
+
],
|
|
38
|
+
:sles => [
|
|
39
|
+
'git-core',
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
PLATFORM_PATTERNS = {
|
|
44
|
+
:redhat => /fedora|el|centos/,
|
|
45
|
+
:debian => /debian|ubuntu/,
|
|
46
|
+
:debian_ruby18 => /debian|ubuntu-lucid|ubuntu-precise/,
|
|
47
|
+
:solaris_10 => /solaris-10/,
|
|
48
|
+
:solaris_11 => /solaris-11/,
|
|
49
|
+
:windows => /windows/,
|
|
50
|
+
:sles => /sles/,
|
|
51
|
+
}.freeze
|
|
52
|
+
|
|
53
|
+
# Installs packages on the hosts.
|
|
54
|
+
#
|
|
55
|
+
# @param hosts [Array<Host>] Array of hosts to install packages to.
|
|
56
|
+
# @param package_hash [Hash{Symbol=>Array<String,Array<String,String>>}]
|
|
57
|
+
# Keys should be a symbol for a platform in PLATFORM_PATTERNS. Values
|
|
58
|
+
# should be an array of package names to install, or of two element
|
|
59
|
+
# arrays where a[0] is the command we expect to find on the platform
|
|
60
|
+
# and a[1] is the package name (when they are different).
|
|
61
|
+
# @param options [Hash{Symbol=>Boolean}]
|
|
62
|
+
# @option options [Boolean] :check_if_exists First check to see if
|
|
63
|
+
# command is present before installing package. (Default false)
|
|
64
|
+
# @return true
|
|
65
|
+
def install_packages_on(hosts, package_hash, options = {})
|
|
66
|
+
return true if hosts == nil
|
|
67
|
+
check_if_exists = options[:check_if_exists]
|
|
68
|
+
hosts = [hosts] unless hosts.kind_of?(Array)
|
|
69
|
+
hosts.each do |host|
|
|
70
|
+
package_hash.each do |platform_key,package_list|
|
|
71
|
+
if pattern = PLATFORM_PATTERNS[platform_key]
|
|
72
|
+
if pattern.match(host['platform'])
|
|
73
|
+
package_list.each do |cmd_pkg|
|
|
74
|
+
if cmd_pkg.kind_of?(Array)
|
|
75
|
+
command, package = cmd_pkg
|
|
76
|
+
else
|
|
77
|
+
command = package = cmd_pkg
|
|
78
|
+
end
|
|
79
|
+
if !check_if_exists || !host.check_for_package(command)
|
|
80
|
+
host.logger.notify("Installing #{package}")
|
|
81
|
+
additional_switches = '--allow-unauthenticated' if platform_key == :debian
|
|
82
|
+
host.install_package(package, additional_switches)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
else
|
|
87
|
+
raise("Unknown platform '#{platform_key}' in package_hash")
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
return true
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
install_packages_on(hosts, PACKAGES, :check_if_exists => true)
|
|
95
|
+
|
|
96
|
+
def lookup_in_env(env_variable_name, project_name, default)
|
|
97
|
+
project_specific_name = "#{project_name.upcase.gsub("-","_")}_#{env_variable_name}"
|
|
98
|
+
ENV[project_specific_name] || ENV[env_variable_name] || default
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def build_giturl(project_name, git_fork = nil, git_server = nil)
|
|
102
|
+
git_fork ||= lookup_in_env('FORK', project_name, 'puppetlabs')
|
|
103
|
+
git_server ||= lookup_in_env('GIT_SERVER', project_name, 'github.com')
|
|
104
|
+
repo = (git_server == 'github.com') ?
|
|
105
|
+
"#{git_fork}/#{project_name}.git" :
|
|
106
|
+
"#{git_fork}-#{project_name}.git"
|
|
107
|
+
"git://#{git_server}/#{repo}"
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
hosts.each do |host|
|
|
111
|
+
case host['platform']
|
|
112
|
+
when /windows/
|
|
113
|
+
arch = host[:ruby_arch] || 'x86'
|
|
114
|
+
step "#{host} Selected architecture #{arch}"
|
|
115
|
+
|
|
116
|
+
revision = if arch == 'x64'
|
|
117
|
+
'2.0.0-x64'
|
|
118
|
+
else
|
|
119
|
+
'1.9.3-x86'
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
step "#{host} Install ruby from git using revision #{revision}"
|
|
123
|
+
# TODO remove this step once we are installing puppet from msi packages
|
|
124
|
+
install_from_git(host, "/opt/puppet-git-repos",
|
|
125
|
+
:name => 'puppet-win32-ruby',
|
|
126
|
+
:path => build_giturl('puppet-win32-ruby'),
|
|
127
|
+
:rev => revision)
|
|
128
|
+
on host, 'cd /opt/puppet-git-repos/puppet-win32-ruby; cp -r ruby/* /'
|
|
129
|
+
on host, 'cd /lib; icacls ruby /grant "Everyone:(OI)(CI)(RX)"'
|
|
130
|
+
on host, 'cd /lib; icacls ruby /reset /T'
|
|
131
|
+
on host, 'cd /; icacls bin /grant "Everyone:(OI)(CI)(RX)"'
|
|
132
|
+
on host, 'cd /; icacls bin /reset /T'
|
|
133
|
+
on host, 'ruby --version'
|
|
134
|
+
on host, 'cmd /c gem list'
|
|
135
|
+
when /solaris/
|
|
136
|
+
on host, 'gem install json'
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
tmp_repos = []
|
|
141
|
+
install.each do |reponame|
|
|
142
|
+
tmp_repos << extract_repo_info_from("https://github.com/puppetlabs/#{reponame}")
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
repos = order_packages(tmp_repos)
|
|
146
|
+
|
|
147
|
+
hosts.each do |host|
|
|
148
|
+
repos.each do |repo|
|
|
149
|
+
install_from_git(host, SourcePath, repo)
|
|
150
|
+
end
|
|
151
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
test_name "puppet install smoketest"
|
|
2
|
+
|
|
3
|
+
step 'puppet install smoketest: verify \'facter --help\' can be successfully called on all hosts'
|
|
4
|
+
hosts.each do |host|
|
|
5
|
+
on host, facter('--help')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
step 'puppet install smoketest: verify \'hiera --help\' can be successfully called on all hosts'
|
|
9
|
+
hosts.each do |host|
|
|
10
|
+
on host, hiera('--help')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
step 'puppet install smoketest: verify \'puppet help\' can be successfully called on all hosts'
|
|
14
|
+
hosts.each do |host|
|
|
15
|
+
on host, puppet('help')
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
step "puppet install smoketest: can get a configprint of the puppet server setting on all hosts"
|
|
19
|
+
hosts.each do |host|
|
|
20
|
+
assert(!host.puppet['server'].empty?, "can get a configprint of the puppet server setting")
|
|
21
|
+
end
|
data/lib/beaker/dsl/helpers.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
[ 'facter', 'hiera', 'host', 'puppet', 'tk', 'web' ].each do |lib|
|
|
2
|
+
[ 'facter', 'hiera', 'host', 'puppet', 'test', 'tk', 'web' ].each do |lib|
|
|
3
3
|
require "beaker/dsl/helpers/#{lib}_helpers"
|
|
4
4
|
end
|
|
5
5
|
|
|
@@ -25,6 +25,7 @@ module Beaker
|
|
|
25
25
|
include Beaker::DSL::Helpers::HieraHelpers
|
|
26
26
|
include Beaker::DSL::Helpers::HostHelpers
|
|
27
27
|
include Beaker::DSL::Helpers::PuppetHelpers
|
|
28
|
+
include Beaker::DSL::Helpers::TestHelpers
|
|
28
29
|
include Beaker::DSL::Helpers::TKHelpers
|
|
29
30
|
include Beaker::DSL::Helpers::WebHelpers
|
|
30
31
|
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
module Beaker
|
|
2
|
+
module DSL
|
|
3
|
+
module Helpers
|
|
4
|
+
# Methods that help you query the state of your tests, these
|
|
5
|
+
# methods do not require puppet to be installed to execute correctly
|
|
6
|
+
module TestHelpers
|
|
7
|
+
|
|
8
|
+
# Gets the currently executing test's name, which is set in a test
|
|
9
|
+
# using the {Beaker::DSL::Structure#test_name} method.
|
|
10
|
+
#
|
|
11
|
+
# @return [String] Test name, or nil if it hasn't been set
|
|
12
|
+
def current_test_name()
|
|
13
|
+
@metadata[:case] && @metadata[:case][:name] ? @metadata[:case][:name] : nil
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Gets the currently executing test's filename, which is set from the
|
|
17
|
+
# +@path+ variable passed into the {Beaker::TestCase#initialize} method,
|
|
18
|
+
# not including the '.rb' extension
|
|
19
|
+
#
|
|
20
|
+
# @example if the path variable was man/plan/canal.rb, then the filename would be:
|
|
21
|
+
# canal
|
|
22
|
+
#
|
|
23
|
+
# @return [String] Test filename, or nil if it hasn't been set
|
|
24
|
+
def current_test_filename()
|
|
25
|
+
@metadata[:case] && @metadata[:case][:file_name] ? @metadata[:case][:file_name] : nil
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Gets the currently executing test's currently executing step name.
|
|
29
|
+
# This is set using the {Beaker::DSL::Structure#step} method.
|
|
30
|
+
#
|
|
31
|
+
# @return [String] Step name, or nil if it hasn't been set
|
|
32
|
+
def current_step_name()
|
|
33
|
+
@metadata[:step] && @metadata[:step][:name] ? @metadata[:step][:name] : nil
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Sets the currently executing test's name.
|
|
37
|
+
#
|
|
38
|
+
# @param [String] name Name of the test
|
|
39
|
+
#
|
|
40
|
+
# @return nil
|
|
41
|
+
# @api private
|
|
42
|
+
def set_current_test_name(name)
|
|
43
|
+
@metadata[:case] ||= {}
|
|
44
|
+
@metadata[:case][:name] = name
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Sets the currently executing test's filename.
|
|
48
|
+
#
|
|
49
|
+
# @param [String] filename Name of the file being tested
|
|
50
|
+
#
|
|
51
|
+
# @return nil
|
|
52
|
+
# @api private
|
|
53
|
+
def set_current_test_filename(filename)
|
|
54
|
+
@metadata[:case] ||= {}
|
|
55
|
+
@metadata[:case][:file_name] = filename
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Sets the currently executing step's name.
|
|
59
|
+
#
|
|
60
|
+
# @param [String] name Name of the step
|
|
61
|
+
#
|
|
62
|
+
# @return nil
|
|
63
|
+
# @api private
|
|
64
|
+
def set_current_step_name(name)
|
|
65
|
+
@metadata[:step] ||= {}
|
|
66
|
+
@metadata[:step][:name] = name
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
data/lib/beaker/dsl/structure.rb
CHANGED
|
@@ -37,6 +37,7 @@ module Beaker
|
|
|
37
37
|
# @param [Proc] block The actions to be performed in this step.
|
|
38
38
|
def step step_name, &block
|
|
39
39
|
logger.notify "\n * #{step_name}\n"
|
|
40
|
+
set_current_step_name(step_name)
|
|
40
41
|
yield if block_given?
|
|
41
42
|
end
|
|
42
43
|
|
|
@@ -47,6 +48,7 @@ module Beaker
|
|
|
47
48
|
#
|
|
48
49
|
def test_name my_name, &block
|
|
49
50
|
logger.notify "\n#{my_name}\n"
|
|
51
|
+
set_current_test_name(my_name)
|
|
50
52
|
yield if block_given?
|
|
51
53
|
end
|
|
52
54
|
|
|
@@ -5,6 +5,6 @@ module FreeBSD::Exec
|
|
|
5
5
|
# FreeBSD gets weird about special characters, we have to go a little OTT here
|
|
6
6
|
escaped_str = str.gsub(/\t/,'\\t').gsub(/\n/,'\\n')
|
|
7
7
|
|
|
8
|
-
exec(Beaker::Command.new("printf #{escaped_str} > #{filename}"))
|
|
8
|
+
exec(Beaker::Command.new("printf \"#{escaped_str}\" > #{filename}"))
|
|
9
9
|
end
|
|
10
10
|
end
|
|
@@ -19,6 +19,22 @@ module Beaker
|
|
|
19
19
|
@options = options
|
|
20
20
|
@logger = options[:logger]
|
|
21
21
|
@hosts = vmpooler_hosts
|
|
22
|
+
@credentials = load_credentials(@options[:dot_fog])
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def load_credentials(dot_fog = '.fog')
|
|
26
|
+
creds = {}
|
|
27
|
+
|
|
28
|
+
begin
|
|
29
|
+
fog = YAML.load_file(dot_fog)
|
|
30
|
+
default = fog[:default]
|
|
31
|
+
|
|
32
|
+
creds[:vmpooler_token] = default[:vmpooler_token]
|
|
33
|
+
rescue Errno::ENOENT
|
|
34
|
+
@logger.warn "Credentials file (#{@options[:dot_fog]}) not found; proceeding without authentication"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
creds
|
|
22
38
|
end
|
|
23
39
|
|
|
24
40
|
def check_url url
|
|
@@ -62,8 +78,6 @@ module Beaker
|
|
|
62
78
|
request_payload[h['template']] = (request_payload[h['template']].to_i + 1).to_s
|
|
63
79
|
end
|
|
64
80
|
|
|
65
|
-
@logger.notify "Requesting VM set from vmpooler"
|
|
66
|
-
|
|
67
81
|
last_wait, wait = 0, 1
|
|
68
82
|
waited = 0 #the amount of time we've spent waiting for this host to provision
|
|
69
83
|
begin
|
|
@@ -72,6 +86,13 @@ module Beaker
|
|
|
72
86
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
73
87
|
request = Net::HTTP::Post.new(uri.request_uri)
|
|
74
88
|
|
|
89
|
+
if @credentials[:vmpooler_token]
|
|
90
|
+
request['X-AUTH-TOKEN'] = @credentials[:vmpooler_token]
|
|
91
|
+
@logger.notify "Requesting VM set from vmpooler (with authentication token)"
|
|
92
|
+
else
|
|
93
|
+
@logger.notify "Requesting VM set from vmpooler"
|
|
94
|
+
end
|
|
95
|
+
|
|
75
96
|
request.body = request_payload.to_json
|
|
76
97
|
|
|
77
98
|
response = http.request(request)
|
|
@@ -64,6 +64,10 @@ module Beaker
|
|
|
64
64
|
'Do not provision vm images before testing',
|
|
65
65
|
'(default: true)' do |bool|
|
|
66
66
|
@cmd_options[:provision] = bool
|
|
67
|
+
unless bool
|
|
68
|
+
@cmd_options[:validate] = false
|
|
69
|
+
@cmd_options[:configure] = false
|
|
70
|
+
end
|
|
67
71
|
end
|
|
68
72
|
|
|
69
73
|
opts.on '--[no-]configure',
|
data/lib/beaker/test_case.rb
CHANGED
|
@@ -97,6 +97,8 @@ module Beaker
|
|
|
97
97
|
@exception = nil
|
|
98
98
|
@runtime = nil
|
|
99
99
|
@teardown_procs = []
|
|
100
|
+
@metadata = {}
|
|
101
|
+
set_current_test_filename(@path ? File.basename(@path, '.rb') : nil)
|
|
100
102
|
|
|
101
103
|
|
|
102
104
|
#
|
|
@@ -107,6 +109,8 @@ module Beaker
|
|
|
107
109
|
@logger.start_sublog
|
|
108
110
|
@logger.last_result = nil
|
|
109
111
|
|
|
112
|
+
set_current_step_name(nil)
|
|
113
|
+
|
|
110
114
|
#add arbitrary role methods
|
|
111
115
|
roles = []
|
|
112
116
|
@hosts.each do |host|
|
data/lib/beaker/version.rb
CHANGED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
class ClassMixedWithDSLHelpers
|
|
4
|
+
include Beaker::DSL::Helpers
|
|
5
|
+
include Beaker::DSL::Wrappers
|
|
6
|
+
include Beaker::DSL::Roles
|
|
7
|
+
include Beaker::DSL::Patterns
|
|
8
|
+
|
|
9
|
+
def logger
|
|
10
|
+
RSpec::Mocks::Double.new('logger').as_null_object
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe ClassMixedWithDSLHelpers do
|
|
16
|
+
let(:metadata) { @metadata ? @metadata : {} }
|
|
17
|
+
|
|
18
|
+
describe '#current_test_name' do
|
|
19
|
+
it 'returns nil if the case is undefined' do
|
|
20
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
21
|
+
expect( subject.current_test_name ).to be_nil
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'returns nil if the name is undefined' do
|
|
25
|
+
@metadata = { :case => {} }
|
|
26
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
27
|
+
expect( subject.current_test_name ).to be_nil
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'returns the set value' do
|
|
31
|
+
name = 'holyGrail_testName'
|
|
32
|
+
@metadata = { :case => { :name => name } }
|
|
33
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
34
|
+
expect( subject.current_test_name ).to be === name
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
describe '#current_test_filename' do
|
|
39
|
+
it 'returns nil if the case is undefined' do
|
|
40
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
41
|
+
expect( subject.current_test_filename ).to be_nil
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'returns nil if the name is undefined' do
|
|
45
|
+
@metadata = { :case => {} }
|
|
46
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
47
|
+
expect( subject.current_test_filename ).to be_nil
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it 'returns the set value' do
|
|
51
|
+
name = 'holyGrail_testFilename'
|
|
52
|
+
@metadata = { :case => { :file_name => name } }
|
|
53
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
54
|
+
expect( subject.current_test_filename ).to be === name
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
describe '#current_step_name' do
|
|
59
|
+
it 'returns nil if the step is undefined' do
|
|
60
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
61
|
+
expect( subject.current_step_name ).to be_nil
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it 'returns nil if the name is undefined' do
|
|
65
|
+
@metadata = { :step => {} }
|
|
66
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
67
|
+
expect( subject.current_step_name ).to be_nil
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it 'returns the set value' do
|
|
71
|
+
name = 'holyGrail_stepName'
|
|
72
|
+
@metadata = { :step => { :name => name } }
|
|
73
|
+
subject.instance_variable_set( :@metadata, metadata )
|
|
74
|
+
expect( subject.current_step_name ).to be === name
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -86,6 +86,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
|
86
86
|
expect( subject ).to receive( :on ).with( host, cmd ).and_yield
|
|
87
87
|
expect( subject ).to receive( :stdout ).and_return( '2' )
|
|
88
88
|
|
|
89
|
+
subject.instance_variable_set( :@metadata, {} )
|
|
89
90
|
version = subject.find_git_repo_versions( host, path, repository )
|
|
90
91
|
|
|
91
92
|
expect( version ).to be == { 'name' => '2' }
|
|
@@ -132,6 +133,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
|
132
133
|
expect( subject ).to receive( :logger ).exactly( 3 ).times.and_return( logger )
|
|
133
134
|
expect( subject ).to receive( :on ).exactly( 4 ).times
|
|
134
135
|
|
|
136
|
+
subject.instance_variable_set( :@metadata, {} )
|
|
135
137
|
subject.install_from_git( host, path, repo )
|
|
136
138
|
end
|
|
137
139
|
|
|
@@ -152,6 +154,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
|
152
154
|
expect( subject ).to receive( :on ).with( host, "cd #{path}/#{repo[:name]} && git remote rm origin && git remote add origin #{repo[:path]} && git fetch origin +refs/pull/*:refs/remotes/origin/pr/* +refs/heads/*:refs/remotes/origin/* && git clean -fdx && git checkout -f #{repo[:rev]}" ).exactly( 1 ).times
|
|
153
155
|
expect( subject ).to receive( :on ).with( host, "cd #{path}/#{repo[:name]} && if [ -f install.rb ]; then ruby ./install.rb ; else true; fi" ).exactly( 1 ).times
|
|
154
156
|
|
|
157
|
+
subject.instance_variable_set( :@metadata, {} )
|
|
155
158
|
subject.install_from_git( host, path, repo )
|
|
156
159
|
end
|
|
157
160
|
|
|
@@ -173,6 +176,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
|
173
176
|
expect( subject ).to receive( :on ).with( host, "cd #{path}/#{repo[:name]} && git remote rm origin && git remote add origin #{repo[:path]} && git fetch origin +refs/pull/*:refs/remotes/origin/pr/* +refs/heads/*:refs/remotes/origin/* && git clean -fdx && git checkout -f #{repo[:rev]}" ).exactly( 1 ).times
|
|
174
177
|
expect( subject ).to receive( :on ).with( host, "cd #{path}/#{repo[:name]} && if [ -f install.rb ]; then ruby ./install.rb ; else true; fi" ).exactly( 1 ).times
|
|
175
178
|
|
|
179
|
+
subject.instance_variable_set( :@metadata, {} )
|
|
176
180
|
subject.install_from_git( host, path, repo )
|
|
177
181
|
end
|
|
178
182
|
end
|
|
@@ -2,6 +2,7 @@ require 'spec_helper'
|
|
|
2
2
|
|
|
3
3
|
class ClassMixedWithDSLStructure
|
|
4
4
|
include Beaker::DSL::Structure
|
|
5
|
+
include Beaker::DSL::Helpers::TestHelpers
|
|
5
6
|
end
|
|
6
7
|
|
|
7
8
|
describe ClassMixedWithDSLStructure do
|
|
@@ -13,19 +14,32 @@ describe ClassMixedWithDSLStructure do
|
|
|
13
14
|
end
|
|
14
15
|
|
|
15
16
|
it 'notifies the logger' do
|
|
17
|
+
subject.instance_variable_set(:@metadata, {})
|
|
18
|
+
allow( subject ).to receive( :set_current_step_name )
|
|
16
19
|
expect( subject ).to receive( :logger ).and_return( logger )
|
|
17
20
|
expect( logger ).to receive( :notify )
|
|
18
21
|
subject.step 'blah'
|
|
19
22
|
end
|
|
20
23
|
|
|
21
24
|
it 'yields if a block is given' do
|
|
25
|
+
subject.instance_variable_set(:@metadata, {})
|
|
22
26
|
expect( subject ).to receive( :logger ).and_return( logger )
|
|
27
|
+
allow( subject ).to receive( :set_current_step_name )
|
|
23
28
|
expect( logger ).to receive( :notify )
|
|
24
29
|
expect( subject ).to receive( :foo )
|
|
25
30
|
subject.step 'blah' do
|
|
26
31
|
subject.foo
|
|
27
32
|
end
|
|
28
33
|
end
|
|
34
|
+
|
|
35
|
+
it 'sets the metadata' do
|
|
36
|
+
subject.instance_variable_set(:@metadata, {})
|
|
37
|
+
allow( subject ).to receive( :logger ).and_return( logger )
|
|
38
|
+
allow( logger ).to receive( :notify )
|
|
39
|
+
step_name = 'pierceBrosnanTests'
|
|
40
|
+
subject.step step_name
|
|
41
|
+
expect( subject.instance_variable_get(:@metadata)[:step][:name] ).to be === step_name
|
|
42
|
+
end
|
|
29
43
|
end
|
|
30
44
|
|
|
31
45
|
describe '#test_name' do
|
|
@@ -34,12 +48,14 @@ describe ClassMixedWithDSLStructure do
|
|
|
34
48
|
end
|
|
35
49
|
|
|
36
50
|
it 'notifies the logger' do
|
|
51
|
+
subject.instance_variable_set(:@metadata, {})
|
|
37
52
|
expect( subject ).to receive( :logger ).and_return( logger )
|
|
38
53
|
expect( logger ).to receive( :notify )
|
|
39
54
|
subject.test_name 'blah'
|
|
40
55
|
end
|
|
41
56
|
|
|
42
57
|
it 'yields if a block is given' do
|
|
58
|
+
subject.instance_variable_set(:@metadata, {})
|
|
43
59
|
expect( subject ).to receive( :logger ).and_return( logger )
|
|
44
60
|
expect( logger ).to receive( :notify )
|
|
45
61
|
expect( subject ).to receive( :foo )
|
|
@@ -47,6 +63,15 @@ describe ClassMixedWithDSLStructure do
|
|
|
47
63
|
subject.foo
|
|
48
64
|
end
|
|
49
65
|
end
|
|
66
|
+
|
|
67
|
+
it 'sets the metadata' do
|
|
68
|
+
subject.instance_variable_set(:@metadata, {})
|
|
69
|
+
allow( subject ).to receive( :logger ).and_return( logger )
|
|
70
|
+
allow( logger ).to receive( :notify )
|
|
71
|
+
test_name = '15-05-08\'s weather is beautiful'
|
|
72
|
+
subject.test_name test_name
|
|
73
|
+
expect( subject.instance_variable_get(:@metadata)[:case][:name] ).to be === test_name
|
|
74
|
+
end
|
|
50
75
|
end
|
|
51
76
|
|
|
52
77
|
describe '#teardown' do
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Beaker
|
|
4
|
+
describe FreeBSD::Exec do
|
|
5
|
+
class FreeBSDExecTest
|
|
6
|
+
include FreeBSD::Exec
|
|
7
|
+
|
|
8
|
+
def initialize(hash, logger)
|
|
9
|
+
@hash = hash
|
|
10
|
+
@logger = logger
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def [](k)
|
|
14
|
+
@hash[k]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_s
|
|
18
|
+
"me"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
let (:opts) { @opts || {} }
|
|
23
|
+
let (:logger) { double( 'logger' ).as_null_object }
|
|
24
|
+
let (:instance) { FreeBSDExecTest.new(opts, logger) }
|
|
25
|
+
|
|
26
|
+
context "echo_to_file" do
|
|
27
|
+
|
|
28
|
+
it "runs the correct echo command" do
|
|
29
|
+
expect( Beaker::Command ).to receive(:new).with('printf "127.0.0.1\tlocalhost localhost.localdomain\n10.255.39.23\tfreebsd-10-x64\n" > /etc/hosts').and_return('')
|
|
30
|
+
expect( instance ).to receive(:exec).with('').and_return(generate_result("hello", {:exit_code => 0}))
|
|
31
|
+
instance.echo_to_file('127.0.0.1\tlocalhost localhost.localdomain\n10.255.39.23\tfreebsd-10-x64\n', '/etc/hosts')
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
@@ -6,12 +6,18 @@ module Beaker
|
|
|
6
6
|
|
|
7
7
|
let(:parser) {Beaker::Options::CommandLineParser.new}
|
|
8
8
|
let(:test_opts) {["-h", "vcloud.cfg", "--debug", "--tests", "test.rb", "--help"]}
|
|
9
|
-
let(:full_opts_in) {["--hosts", "host.cfg", "--options", "opts_file", "--type", "pe", "--helper", "path_to_helper", "--load-path", "load_path", "--tests", "test1.rb,test2.rb,test3.rb", "--pre-suite", "pre_suite.rb", "--post-suite", "post_suite.rb", "--no-provision", "--preserve-hosts", "always", "--root-keys", "--keyfile", "../.ssh/id_rsa", "--install", "gitrepopath", "-m", "module", "-q", "--dry-run", "--no-ntp", "--repo-proxy", "--add-el-extras", "--config", "anotherfile.cfg", "--fail-mode", "fast", "--no-color", "--version", "--log-level", "info", "--package-proxy", "http://192.168.100.1:3128", "--collect-perf-data", "--parse-only", "--validate", "--timeout", "40", "--log-prefix", "pants"]}
|
|
10
|
-
let(:full_opts_out) {{:hosts_file=>"anotherfile.cfg",:options_file=>"opts_file", :type => "pe", :helper => "path_to_helper", :load_path => "load_path", :tests => "test1.rb,test2.rb,test3.rb", :pre_suite => "pre_suite.rb", :post_suite => "post_suite.rb", :provision=>false, :preserve_hosts => "always", :root_keys=>true, :keyfile => "../.ssh/id_rsa", :install => "gitrepopath", :modules=>"module", :quiet=>true, :dry_run=>true, :timesync=>false, :repo_proxy=>true, :add_el_extras=>true, :fail_mode => "fast", :color=>false, :version=>true, :log_level => "info", :package_proxy => "http://192.168.100.1:3128", :collect_perf_data=>true, :parse_only=>true, :validate=>true, :timeout => "40", :log_prefix => "pants"}}
|
|
9
|
+
let(:full_opts_in) {["--hosts", "host.cfg", "--options", "opts_file", "--type", "pe", "--helper", "path_to_helper", "--load-path", "load_path", "--tests", "test1.rb,test2.rb,test3.rb", "--pre-suite", "pre_suite.rb", "--post-suite", "post_suite.rb", "--no-provision", "--preserve-hosts", "always", "--root-keys", "--keyfile", "../.ssh/id_rsa", "--install", "gitrepopath", "-m", "module", "-q", "--dry-run", "--no-ntp", "--repo-proxy", "--add-el-extras", "--config", "anotherfile.cfg", "--fail-mode", "fast", "--no-color", "--version", "--log-level", "info", "--package-proxy", "http://192.168.100.1:3128", "--collect-perf-data", "--parse-only", "--validate", "--timeout", "40", "--log-prefix", "pants", "--configure"]}
|
|
10
|
+
let(:full_opts_out) {{:hosts_file=>"anotherfile.cfg",:options_file=>"opts_file", :type => "pe", :helper => "path_to_helper", :load_path => "load_path", :tests => "test1.rb,test2.rb,test3.rb", :pre_suite => "pre_suite.rb", :post_suite => "post_suite.rb", :provision=>false, :preserve_hosts => "always", :root_keys=>true, :keyfile => "../.ssh/id_rsa", :install => "gitrepopath", :modules=>"module", :quiet=>true, :dry_run=>true, :timesync=>false, :repo_proxy=>true, :add_el_extras=>true, :fail_mode => "fast", :color=>false, :version=>true, :log_level => "info", :package_proxy => "http://192.168.100.1:3128", :collect_perf_data=>true, :parse_only=>true, :validate=>true, :timeout => "40", :log_prefix => "pants", :configure => true}}
|
|
11
11
|
let(:validate_true) {["--validate"]}
|
|
12
12
|
let(:validate_false) {["--no-validate"]}
|
|
13
13
|
let(:configure_true) {['--configure']}
|
|
14
14
|
let(:configure_false) {['--no-configure']}
|
|
15
|
+
let(:provision_false) {['--no-provision']}
|
|
16
|
+
let(:provision_other) {{:provision => false, :configure => false, :validate => false}}
|
|
17
|
+
let(:provision_both_in) {['--no-provision', '--configure', '--validate']}
|
|
18
|
+
let(:provision_both_out) {{:provision => false, :configure => true, :validate => true}}
|
|
19
|
+
let(:provision_half_in) {['--no-provision', '--configure']}
|
|
20
|
+
let(:provision_half_out) {{:provision => false, :configure => true, :validate => false}}
|
|
15
21
|
|
|
16
22
|
|
|
17
23
|
it "can correctly read command line input" do
|
|
@@ -36,6 +42,20 @@ module Beaker
|
|
|
36
42
|
expect{parser.usage}.to_not raise_error
|
|
37
43
|
end
|
|
38
44
|
|
|
45
|
+
context '--no-provision flag effects other options' do
|
|
46
|
+
it 'sets --no-validate/configure when --no-provision is set' do
|
|
47
|
+
expect(parser.parse(provision_false)).to be === provision_other
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it 'can still have --validate & --configure set correctly when --no-provision is set' do
|
|
51
|
+
expect(parser.parse(provision_both_in)).to be === provision_both_out
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it 'can override just one of the two flags when --no-provision is set' do
|
|
55
|
+
expect(parser.parse(provision_half_in)).to be === provision_half_out
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
39
59
|
end
|
|
40
60
|
end
|
|
41
61
|
end
|
|
@@ -96,5 +96,35 @@ module Beaker
|
|
|
96
96
|
end
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
+
context 'metadata' do
|
|
100
|
+
it 'sets the filename correctly from the path' do
|
|
101
|
+
answer = 'jacket'
|
|
102
|
+
path = "#{answer}.rb"
|
|
103
|
+
File.open(path, 'w') do |f|
|
|
104
|
+
f.write ""
|
|
105
|
+
end
|
|
106
|
+
@path = path
|
|
107
|
+
testcase.run_test
|
|
108
|
+
metadata = testcase.instance_variable_get(:@metadata)
|
|
109
|
+
expect(metadata[:case][:file_name]).to be === answer
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
it 'resets the step name' do
|
|
113
|
+
path = 'test.rb'
|
|
114
|
+
File.open(path, 'w') do |f|
|
|
115
|
+
f.write ""
|
|
116
|
+
end
|
|
117
|
+
@path = path
|
|
118
|
+
# we have to create a TestCase by hand, so that we can set old
|
|
119
|
+
tc = TestCase.new({}, logger, {}, path)
|
|
120
|
+
# metadata on it, so that we can test that it's being reset correctly
|
|
121
|
+
old_metadata = { :step => { :name => 'CharlieBrown' } }
|
|
122
|
+
tc.instance_variable_set(:@metadata, old_metadata)
|
|
123
|
+
tc.run_test
|
|
124
|
+
metadata = tc.instance_variable_get(:@metadata)
|
|
125
|
+
expect(metadata[:step][:name]).to be_nil
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
99
129
|
end
|
|
100
130
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: beaker
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Puppetlabs
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-05-
|
|
11
|
+
date: 2015-05-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -377,9 +377,14 @@ files:
|
|
|
377
377
|
- acceptance/fixtures/module/tests/init.pp
|
|
378
378
|
- acceptance/fixtures/module/vendor/bundle/ruby/gems.txt
|
|
379
379
|
- acceptance/pre_suite/README.md
|
|
380
|
+
- acceptance/pre_suite/pe/install.rb
|
|
381
|
+
- acceptance/pre_suite/puppet_gem/install.rb
|
|
382
|
+
- acceptance/pre_suite/puppet_git/install.rb
|
|
383
|
+
- acceptance/pre_suite/puppet_pkg/install.rb
|
|
380
384
|
- acceptance/tests/base/README.md
|
|
381
385
|
- acceptance/tests/base/host.rb
|
|
382
386
|
- acceptance/tests/puppet/README.md
|
|
387
|
+
- acceptance/tests/puppet/install_smoke.rb
|
|
383
388
|
- beaker.gemspec
|
|
384
389
|
- bin/beaker
|
|
385
390
|
- ext/completion/beaker-completion.bash
|
|
@@ -402,6 +407,7 @@ files:
|
|
|
402
407
|
- lib/beaker/dsl/helpers/hiera_helpers.rb
|
|
403
408
|
- lib/beaker/dsl/helpers/host_helpers.rb
|
|
404
409
|
- lib/beaker/dsl/helpers/puppet_helpers.rb
|
|
410
|
+
- lib/beaker/dsl/helpers/test_helpers.rb
|
|
405
411
|
- lib/beaker/dsl/helpers/tk_helpers.rb
|
|
406
412
|
- lib/beaker/dsl/helpers/web_helpers.rb
|
|
407
413
|
- lib/beaker/dsl/install_utils.rb
|
|
@@ -501,6 +507,7 @@ files:
|
|
|
501
507
|
- spec/beaker/dsl/helpers/hiera_helpers_spec.rb
|
|
502
508
|
- spec/beaker/dsl/helpers/host_helpers_spec.rb
|
|
503
509
|
- spec/beaker/dsl/helpers/puppet_helpers_spec.rb
|
|
510
|
+
- spec/beaker/dsl/helpers/test_helpers_spec.rb
|
|
504
511
|
- spec/beaker/dsl/helpers/tk_helpers_spec.rb
|
|
505
512
|
- spec/beaker/dsl/helpers/web_helpers_spec.rb
|
|
506
513
|
- spec/beaker/dsl/install_utils/module_utils_spec.rb
|
|
@@ -510,6 +517,7 @@ files:
|
|
|
510
517
|
- spec/beaker/dsl/roles_spec.rb
|
|
511
518
|
- spec/beaker/dsl/structure_spec.rb
|
|
512
519
|
- spec/beaker/dsl/wrappers_spec.rb
|
|
520
|
+
- spec/beaker/host/freebsd/exec_spec.rb
|
|
513
521
|
- spec/beaker/host/mac/group_spec.rb
|
|
514
522
|
- spec/beaker/host/mac/user_spec.rb
|
|
515
523
|
- spec/beaker/host/unix/pkg_spec.rb
|