test-kitchen 1.2.1 → 1.3.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.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/.cane +1 -1
  3. data/.rubocop.yml +3 -0
  4. data/.travis.yml +20 -9
  5. data/CHANGELOG.md +219 -108
  6. data/Gemfile +10 -6
  7. data/Guardfile +38 -9
  8. data/README.md +11 -1
  9. data/Rakefile +21 -37
  10. data/bin/kitchen +4 -4
  11. data/features/kitchen_action_commands.feature +161 -0
  12. data/features/kitchen_console_command.feature +34 -0
  13. data/features/kitchen_diagnose_command.feature +64 -0
  14. data/features/kitchen_init_command.feature +29 -17
  15. data/features/kitchen_list_command.feature +2 -2
  16. data/features/kitchen_login_command.feature +56 -0
  17. data/features/{sink_command.feature → kitchen_sink_command.feature} +0 -0
  18. data/features/kitchen_test_command.feature +88 -0
  19. data/features/step_definitions/gem_steps.rb +8 -6
  20. data/features/step_definitions/git_steps.rb +4 -2
  21. data/features/step_definitions/output_steps.rb +5 -0
  22. data/features/support/env.rb +12 -9
  23. data/lib/kitchen.rb +60 -38
  24. data/lib/kitchen/base64_stream.rb +55 -0
  25. data/lib/kitchen/busser.rb +124 -58
  26. data/lib/kitchen/cli.rb +121 -38
  27. data/lib/kitchen/collection.rb +3 -3
  28. data/lib/kitchen/color.rb +4 -4
  29. data/lib/kitchen/command.rb +78 -11
  30. data/lib/kitchen/command/action.rb +3 -2
  31. data/lib/kitchen/command/console.rb +12 -5
  32. data/lib/kitchen/command/diagnose.rb +17 -3
  33. data/lib/kitchen/command/driver_discover.rb +26 -7
  34. data/lib/kitchen/command/exec.rb +41 -0
  35. data/lib/kitchen/command/list.rb +44 -14
  36. data/lib/kitchen/command/login.rb +2 -1
  37. data/lib/kitchen/command/sink.rb +2 -1
  38. data/lib/kitchen/command/test.rb +5 -4
  39. data/lib/kitchen/config.rb +146 -14
  40. data/lib/kitchen/configurable.rb +314 -0
  41. data/lib/kitchen/data_munger.rb +522 -18
  42. data/lib/kitchen/diagnostic.rb +43 -4
  43. data/lib/kitchen/driver.rb +4 -4
  44. data/lib/kitchen/driver/base.rb +80 -115
  45. data/lib/kitchen/driver/dummy.rb +34 -6
  46. data/lib/kitchen/driver/proxy.rb +14 -3
  47. data/lib/kitchen/driver/ssh_base.rb +61 -7
  48. data/lib/kitchen/errors.rb +109 -9
  49. data/lib/kitchen/generator/driver_create.rb +39 -5
  50. data/lib/kitchen/generator/init.rb +130 -45
  51. data/lib/kitchen/instance.rb +162 -28
  52. data/lib/kitchen/lazy_hash.rb +79 -7
  53. data/lib/kitchen/loader/yaml.rb +159 -27
  54. data/lib/kitchen/logger.rb +267 -21
  55. data/lib/kitchen/logging.rb +30 -3
  56. data/lib/kitchen/login_command.rb +11 -2
  57. data/lib/kitchen/metadata_chopper.rb +2 -2
  58. data/lib/kitchen/provisioner.rb +4 -4
  59. data/lib/kitchen/provisioner/base.rb +107 -103
  60. data/lib/kitchen/provisioner/chef/berkshelf.rb +36 -8
  61. data/lib/kitchen/provisioner/chef/librarian.rb +40 -11
  62. data/lib/kitchen/provisioner/chef_base.rb +206 -167
  63. data/lib/kitchen/provisioner/chef_solo.rb +25 -7
  64. data/lib/kitchen/provisioner/chef_zero.rb +105 -29
  65. data/lib/kitchen/provisioner/dummy.rb +1 -1
  66. data/lib/kitchen/provisioner/shell.rb +21 -6
  67. data/lib/kitchen/rake_tasks.rb +8 -3
  68. data/lib/kitchen/shell_out.rb +15 -18
  69. data/lib/kitchen/ssh.rb +122 -27
  70. data/lib/kitchen/state_file.rb +24 -7
  71. data/lib/kitchen/thor_tasks.rb +9 -4
  72. data/lib/kitchen/util.rb +43 -118
  73. data/lib/kitchen/version.rb +1 -1
  74. data/lib/vendor/hash_recursive_merge.rb +10 -2
  75. data/spec/kitchen/base64_stream_spec.rb +77 -0
  76. data/spec/kitchen/busser_spec.rb +490 -0
  77. data/spec/kitchen/collection_spec.rb +10 -10
  78. data/spec/kitchen/color_spec.rb +2 -2
  79. data/spec/kitchen/config_spec.rb +234 -62
  80. data/spec/kitchen/configurable_spec.rb +490 -0
  81. data/spec/kitchen/data_munger_spec.rb +1070 -862
  82. data/spec/kitchen/diagnostic_spec.rb +79 -0
  83. data/spec/kitchen/driver/base_spec.rb +80 -85
  84. data/spec/kitchen/driver/dummy_spec.rb +43 -14
  85. data/spec/kitchen/driver/proxy_spec.rb +134 -0
  86. data/spec/kitchen/driver/ssh_base_spec.rb +644 -0
  87. data/spec/kitchen/driver_spec.rb +15 -15
  88. data/spec/kitchen/errors_spec.rb +309 -0
  89. data/spec/kitchen/instance_spec.rb +143 -46
  90. data/spec/kitchen/lazy_hash_spec.rb +36 -9
  91. data/spec/kitchen/loader/yaml_spec.rb +237 -226
  92. data/spec/kitchen/logger_spec.rb +419 -0
  93. data/spec/kitchen/logging_spec.rb +59 -0
  94. data/spec/kitchen/login_command_spec.rb +49 -0
  95. data/spec/kitchen/metadata_chopper_spec.rb +82 -0
  96. data/spec/kitchen/platform_spec.rb +4 -4
  97. data/spec/kitchen/provisioner/base_spec.rb +65 -125
  98. data/spec/kitchen/provisioner/chef_base_spec.rb +798 -0
  99. data/spec/kitchen/provisioner/chef_solo_spec.rb +316 -0
  100. data/spec/kitchen/provisioner/chef_zero_spec.rb +624 -0
  101. data/spec/kitchen/provisioner/shell_spec.rb +269 -0
  102. data/spec/kitchen/provisioner_spec.rb +6 -6
  103. data/spec/kitchen/shell_out_spec.rb +143 -0
  104. data/spec/kitchen/ssh_spec.rb +683 -0
  105. data/spec/kitchen/state_file_spec.rb +28 -21
  106. data/spec/kitchen/suite_spec.rb +7 -7
  107. data/spec/kitchen/util_spec.rb +68 -10
  108. data/spec/kitchen_spec.rb +107 -0
  109. data/spec/spec_helper.rb +18 -13
  110. data/support/chef-client-zero.rb +10 -9
  111. data/support/chef_helpers.sh +16 -0
  112. data/support/download_helpers.sh +109 -0
  113. data/test-kitchen.gemspec +42 -33
  114. metadata +107 -33
@@ -0,0 +1,16 @@
1
+ # @param $1 the omnibus root directory
2
+ # @param $2 the requested version of omnibus package
3
+ # @return 0 if omnibus needs to be installed, non-zero otherwise
4
+ should_update_chef() {
5
+ if test ! -d "$1" ; then return 0
6
+ elif test "$2" = "true" ; then return 1
7
+ elif test "$2" = "latest" ; then return 0
8
+ fi
9
+
10
+ local version="`$1/bin/chef-solo -v | cut -d " " -f 2`"
11
+ if echo "$version" | grep "^$2" 2>&1 >/dev/null; then
12
+ return 1
13
+ else
14
+ return 0
15
+ fi
16
+ }
@@ -0,0 +1,109 @@
1
+ # Check whether a command exists - returns 0 if it does, 1 if it does not
2
+ exists() {
3
+ if command -v $1 >/dev/null 2>&1
4
+ then
5
+ return 0
6
+ else
7
+ return 1
8
+ fi
9
+ }
10
+
11
+ # do_wget URL FILENAME
12
+ do_wget() {
13
+ echo "trying wget..."
14
+ wget -O "$2" "$1" 2>/tmp/stderr
15
+ # check for bad return status
16
+ test $? -ne 0 && return 1
17
+ # check for 404 or empty file
18
+ grep "ERROR 404" /tmp/stderr 2>&1 >/dev/null
19
+ if test $? -eq 0 || test ! -s "$2"; then
20
+ return 1
21
+ fi
22
+ return 0
23
+ }
24
+
25
+ # do_curl URL FILENAME
26
+ do_curl() {
27
+ echo "trying curl..."
28
+ curl -L "$1" > "$2"
29
+ # check for bad return status
30
+ [ $? -ne 0 ] && return 1
31
+ # check for bad output or empty file
32
+ grep "The specified key does not exist." "$2" 2>&1 >/dev/null
33
+ if test $? -eq 0 || test ! -s "$2"; then
34
+ return 1
35
+ fi
36
+ return 0
37
+ }
38
+
39
+ # do_fetch URL FILENAME
40
+ do_fetch() {
41
+ echo "trying fetch..."
42
+ fetch -o "$2" "$1" 2>/tmp/stderr
43
+ # check for bad return status
44
+ test $? -ne 0 && return 1
45
+ return 0
46
+ }
47
+
48
+ # do_perl URL FILENAME
49
+ do_perl() {
50
+ echo "trying perl..."
51
+ perl -e "use LWP::Simple; getprint($ARGV[0]);" "$1" > "$2"
52
+ # check for bad return status
53
+ test $? -ne 0 && return 1
54
+ # check for bad output or empty file
55
+ # grep "The specified key does not exist." "$2" 2>&1 >/dev/null
56
+ # if test $? -eq 0 || test ! -s "$2"; then
57
+ # unable_to_retrieve_package
58
+ # fi
59
+ return 0
60
+ }
61
+
62
+ # do_python URL FILENAME
63
+ do_python() {
64
+ echo "trying python..."
65
+ python -c "import sys,urllib2 ; sys.stdout.write(urllib2.urlopen(sys.argv[1]).read())" "$1" > "$2"
66
+ # check for bad return status
67
+ test $? -ne 0 && return 1
68
+ # check for bad output or empty file
69
+ #grep "The specified key does not exist." "$2" 2>&1 >/dev/null
70
+ #if test $? -eq 0 || test ! -s "$2"; then
71
+ # unable_to_retrieve_package
72
+ #fi
73
+ return 0
74
+ }
75
+
76
+ # do_download URL FILENAME
77
+ do_download() {
78
+ PATH=/opt/local/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
79
+ export PATH
80
+
81
+ echo "downloading $1"
82
+ echo " to file $2"
83
+
84
+ # we try all of these until we get success.
85
+ # perl, in particular may be present but LWP::Simple may not be installed
86
+
87
+ if exists wget; then
88
+ do_wget $1 $2 && return 0
89
+ fi
90
+
91
+ if exists curl; then
92
+ do_curl $1 $2 && return 0
93
+ fi
94
+
95
+ if exists fetch; then
96
+ do_fetch $1 $2 && return 0
97
+ fi
98
+
99
+ if exists perl; then
100
+ do_perl $1 $2 && return 0
101
+ fi
102
+
103
+ if exists python; then
104
+ do_python $1 $2 && return 0
105
+ fi
106
+
107
+ echo ">>>>>> wget, curl, fetch, perl or python not found on this instance."
108
+ return 16
109
+ }
@@ -1,43 +1,52 @@
1
1
  # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'kitchen/version'
4
+ require "kitchen/version"
5
+ require "English"
5
6
 
6
7
  Gem::Specification.new do |gem|
7
8
  gem.name = "test-kitchen"
8
9
  gem.version = Kitchen::VERSION
9
- gem.license = 'Apache 2.0'
10
- gem.authors = ['Fletcher Nichol']
11
- gem.email = ['fnichol@nichol.ca']
12
- gem.description = %q{Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.}
10
+ gem.license = "Apache 2.0"
11
+ gem.authors = ["Fletcher Nichol"]
12
+ gem.email = ["fnichol@nichol.ca"]
13
+ gem.description = "Test Kitchen is an integration tool for developing " \
14
+ "and testing infrastructure code and software on " \
15
+ "isolated target platforms."
13
16
  gem.summary = gem.description
14
- gem.homepage = 'http://kitchen.ci'
17
+ gem.homepage = "http://kitchen.ci"
15
18
 
16
- gem.files = `git ls-files`.split($/)
17
- gem.executables = %w(kitchen)
19
+ gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
20
+ gem.executables = %w[kitchen]
18
21
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
- gem.require_paths = ['lib']
20
-
21
- gem.required_ruby_version = '>= 1.9.1'
22
-
23
- gem.add_dependency 'mixlib-shellout', '~> 1.2'
24
- gem.add_dependency 'net-scp', '~> 1.1'
25
- gem.add_dependency 'net-ssh', '~> 2.7'
26
- gem.add_dependency 'safe_yaml', '~> 1.0'
27
- gem.add_dependency 'thor', '~> 0.18'
28
-
29
- gem.add_development_dependency 'bundler', '~> 1.3'
30
- gem.add_development_dependency 'rake'
31
-
32
- gem.add_development_dependency 'aruba', '~> 0.5'
33
- gem.add_development_dependency 'fakefs', '~> 0.4'
34
- gem.add_development_dependency 'minitest', '~> 5.1.0'
35
- gem.add_development_dependency 'mocha', '~> 0.14'
36
-
37
- gem.add_development_dependency 'cane', '~> 2.6'
38
- gem.add_development_dependency 'countloc', '~> 0.4'
39
- gem.add_development_dependency 'maruku', '~> 0.6'
40
- gem.add_development_dependency 'simplecov', '~> 0.7'
41
- gem.add_development_dependency 'tailor', '~> 1.2'
42
- gem.add_development_dependency 'yard', '~> 0.8'
22
+ gem.require_paths = ["lib"]
23
+
24
+ gem.required_ruby_version = ">= 1.9.1"
25
+
26
+ gem.add_dependency "mixlib-shellout", ">= 1.2", "< 3.0"
27
+ gem.add_dependency "net-scp", "~> 1.1"
28
+ gem.add_dependency "net-ssh", "~> 2.7"
29
+ gem.add_dependency "safe_yaml", "~> 1.0"
30
+ gem.add_dependency "thor", "~> 0.18"
31
+
32
+ gem.add_development_dependency "pry"
33
+
34
+ gem.add_development_dependency "bundler", "~> 1.3"
35
+ gem.add_development_dependency "rake"
36
+
37
+ gem.add_development_dependency "aruba", "~> 0.5"
38
+ gem.add_development_dependency "fakefs", "~> 0.4"
39
+ gem.add_development_dependency "minitest", "~> 5.3"
40
+ gem.add_development_dependency "mocha", "~> 1.1"
41
+
42
+ gem.add_development_dependency "countloc", "~> 0.4"
43
+ gem.add_development_dependency "maruku", "~> 0.6"
44
+ gem.add_development_dependency "simplecov", "~> 0.7"
45
+ gem.add_development_dependency "yard", "~> 0.8"
46
+
47
+ # style and complexity libraries are tightly version pinned as newer releases
48
+ # may introduce new and undesireable style choices which would be immediately
49
+ # enforced in CI
50
+ gem.add_development_dependency "finstyle", "1.4.0"
51
+ gem.add_development_dependency "cane", "2.6.2"
43
52
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-kitchen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fletcher Nichol
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-12 00:00:00.000000000 Z
11
+ date: 2015-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: net-scp
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +86,20 @@ dependencies:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
88
  version: '0.18'
89
+ - !ruby/object:Gem::Dependency
90
+ name: pry
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
83
103
  - !ruby/object:Gem::Dependency
84
104
  name: bundler
85
105
  requirement: !ruby/object:Gem::Requirement
@@ -142,42 +162,28 @@ dependencies:
142
162
  requirements:
143
163
  - - "~>"
144
164
  - !ruby/object:Gem::Version
145
- version: 5.1.0
165
+ version: '5.3'
146
166
  type: :development
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
149
169
  requirements:
150
170
  - - "~>"
151
171
  - !ruby/object:Gem::Version
152
- version: 5.1.0
172
+ version: '5.3'
153
173
  - !ruby/object:Gem::Dependency
154
174
  name: mocha
155
175
  requirement: !ruby/object:Gem::Requirement
156
176
  requirements:
157
177
  - - "~>"
158
178
  - !ruby/object:Gem::Version
159
- version: '0.14'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '0.14'
167
- - !ruby/object:Gem::Dependency
168
- name: cane
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '2.6'
179
+ version: '1.1'
174
180
  type: :development
175
181
  prerelease: false
176
182
  version_requirements: !ruby/object:Gem::Requirement
177
183
  requirements:
178
184
  - - "~>"
179
185
  - !ruby/object:Gem::Version
180
- version: '2.6'
186
+ version: '1.1'
181
187
  - !ruby/object:Gem::Dependency
182
188
  name: countloc
183
189
  requirement: !ruby/object:Gem::Requirement
@@ -221,33 +227,47 @@ dependencies:
221
227
  - !ruby/object:Gem::Version
222
228
  version: '0.7'
223
229
  - !ruby/object:Gem::Dependency
224
- name: tailor
230
+ name: yard
225
231
  requirement: !ruby/object:Gem::Requirement
226
232
  requirements:
227
233
  - - "~>"
228
234
  - !ruby/object:Gem::Version
229
- version: '1.2'
235
+ version: '0.8'
230
236
  type: :development
231
237
  prerelease: false
232
238
  version_requirements: !ruby/object:Gem::Requirement
233
239
  requirements:
234
240
  - - "~>"
235
241
  - !ruby/object:Gem::Version
236
- version: '1.2'
242
+ version: '0.8'
237
243
  - !ruby/object:Gem::Dependency
238
- name: yard
244
+ name: finstyle
239
245
  requirement: !ruby/object:Gem::Requirement
240
246
  requirements:
241
- - - "~>"
247
+ - - '='
242
248
  - !ruby/object:Gem::Version
243
- version: '0.8'
249
+ version: 1.4.0
244
250
  type: :development
245
251
  prerelease: false
246
252
  version_requirements: !ruby/object:Gem::Requirement
247
253
  requirements:
248
- - - "~>"
254
+ - - '='
249
255
  - !ruby/object:Gem::Version
250
- version: '0.8'
256
+ version: 1.4.0
257
+ - !ruby/object:Gem::Dependency
258
+ name: cane
259
+ requirement: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - '='
262
+ - !ruby/object:Gem::Version
263
+ version: 2.6.2
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - '='
269
+ - !ruby/object:Gem::Version
270
+ version: 2.6.2
251
271
  description: Test Kitchen is an integration tool for developing and testing infrastructure
252
272
  code and software on isolated target platforms.
253
273
  email:
@@ -259,6 +279,7 @@ extra_rdoc_files: []
259
279
  files:
260
280
  - ".cane"
261
281
  - ".gitignore"
282
+ - ".rubocop.yml"
262
283
  - ".travis.yml"
263
284
  - ".yardopts"
264
285
  - CHANGELOG.md
@@ -268,17 +289,24 @@ files:
268
289
  - README.md
269
290
  - Rakefile
270
291
  - bin/kitchen
292
+ - features/kitchen_action_commands.feature
271
293
  - features/kitchen_command.feature
294
+ - features/kitchen_console_command.feature
295
+ - features/kitchen_diagnose_command.feature
272
296
  - features/kitchen_driver_create_command.feature
273
297
  - features/kitchen_driver_discover_command.feature
274
298
  - features/kitchen_help_command.feature
275
299
  - features/kitchen_init_command.feature
276
300
  - features/kitchen_list_command.feature
277
- - features/sink_command.feature
301
+ - features/kitchen_login_command.feature
302
+ - features/kitchen_sink_command.feature
303
+ - features/kitchen_test_command.feature
278
304
  - features/step_definitions/gem_steps.rb
279
305
  - features/step_definitions/git_steps.rb
306
+ - features/step_definitions/output_steps.rb
280
307
  - features/support/env.rb
281
308
  - lib/kitchen.rb
309
+ - lib/kitchen/base64_stream.rb
282
310
  - lib/kitchen/busser.rb
283
311
  - lib/kitchen/cli.rb
284
312
  - lib/kitchen/collection.rb
@@ -288,11 +316,13 @@ files:
288
316
  - lib/kitchen/command/console.rb
289
317
  - lib/kitchen/command/diagnose.rb
290
318
  - lib/kitchen/command/driver_discover.rb
319
+ - lib/kitchen/command/exec.rb
291
320
  - lib/kitchen/command/list.rb
292
321
  - lib/kitchen/command/login.rb
293
322
  - lib/kitchen/command/sink.rb
294
323
  - lib/kitchen/command/test.rb
295
324
  - lib/kitchen/config.rb
325
+ - lib/kitchen/configurable.rb
296
326
  - lib/kitchen/data_munger.rb
297
327
  - lib/kitchen/diagnostic.rb
298
328
  - lib/kitchen/driver.rb
@@ -329,24 +359,44 @@ files:
329
359
  - lib/kitchen/util.rb
330
360
  - lib/kitchen/version.rb
331
361
  - lib/vendor/hash_recursive_merge.rb
362
+ - spec/kitchen/base64_stream_spec.rb
363
+ - spec/kitchen/busser_spec.rb
332
364
  - spec/kitchen/collection_spec.rb
333
365
  - spec/kitchen/color_spec.rb
334
366
  - spec/kitchen/config_spec.rb
367
+ - spec/kitchen/configurable_spec.rb
335
368
  - spec/kitchen/data_munger_spec.rb
369
+ - spec/kitchen/diagnostic_spec.rb
336
370
  - spec/kitchen/driver/base_spec.rb
337
371
  - spec/kitchen/driver/dummy_spec.rb
372
+ - spec/kitchen/driver/proxy_spec.rb
373
+ - spec/kitchen/driver/ssh_base_spec.rb
338
374
  - spec/kitchen/driver_spec.rb
375
+ - spec/kitchen/errors_spec.rb
339
376
  - spec/kitchen/instance_spec.rb
340
377
  - spec/kitchen/lazy_hash_spec.rb
341
378
  - spec/kitchen/loader/yaml_spec.rb
379
+ - spec/kitchen/logger_spec.rb
380
+ - spec/kitchen/logging_spec.rb
381
+ - spec/kitchen/login_command_spec.rb
382
+ - spec/kitchen/metadata_chopper_spec.rb
342
383
  - spec/kitchen/platform_spec.rb
343
384
  - spec/kitchen/provisioner/base_spec.rb
385
+ - spec/kitchen/provisioner/chef_base_spec.rb
386
+ - spec/kitchen/provisioner/chef_solo_spec.rb
387
+ - spec/kitchen/provisioner/chef_zero_spec.rb
388
+ - spec/kitchen/provisioner/shell_spec.rb
344
389
  - spec/kitchen/provisioner_spec.rb
390
+ - spec/kitchen/shell_out_spec.rb
391
+ - spec/kitchen/ssh_spec.rb
345
392
  - spec/kitchen/state_file_spec.rb
346
393
  - spec/kitchen/suite_spec.rb
347
394
  - spec/kitchen/util_spec.rb
395
+ - spec/kitchen_spec.rb
348
396
  - spec/spec_helper.rb
349
397
  - support/chef-client-zero.rb
398
+ - support/chef_helpers.sh
399
+ - support/download_helpers.sh
350
400
  - support/dummy-validation.pem
351
401
  - templates/driver/CHANGELOG.md.erb
352
402
  - templates/driver/Gemfile.erb
@@ -384,37 +434,61 @@ required_rubygems_version: !ruby/object:Gem::Requirement
384
434
  version: '0'
385
435
  requirements: []
386
436
  rubyforge_project:
387
- rubygems_version: 2.2.0
437
+ rubygems_version: 2.4.5
388
438
  signing_key:
389
439
  specification_version: 4
390
440
  summary: Test Kitchen is an integration tool for developing and testing infrastructure
391
441
  code and software on isolated target platforms.
392
442
  test_files:
443
+ - features/kitchen_action_commands.feature
393
444
  - features/kitchen_command.feature
445
+ - features/kitchen_console_command.feature
446
+ - features/kitchen_diagnose_command.feature
394
447
  - features/kitchen_driver_create_command.feature
395
448
  - features/kitchen_driver_discover_command.feature
396
449
  - features/kitchen_help_command.feature
397
450
  - features/kitchen_init_command.feature
398
451
  - features/kitchen_list_command.feature
399
- - features/sink_command.feature
452
+ - features/kitchen_login_command.feature
453
+ - features/kitchen_sink_command.feature
454
+ - features/kitchen_test_command.feature
400
455
  - features/step_definitions/gem_steps.rb
401
456
  - features/step_definitions/git_steps.rb
457
+ - features/step_definitions/output_steps.rb
402
458
  - features/support/env.rb
459
+ - spec/kitchen/base64_stream_spec.rb
460
+ - spec/kitchen/busser_spec.rb
403
461
  - spec/kitchen/collection_spec.rb
404
462
  - spec/kitchen/color_spec.rb
405
463
  - spec/kitchen/config_spec.rb
464
+ - spec/kitchen/configurable_spec.rb
406
465
  - spec/kitchen/data_munger_spec.rb
466
+ - spec/kitchen/diagnostic_spec.rb
407
467
  - spec/kitchen/driver/base_spec.rb
408
468
  - spec/kitchen/driver/dummy_spec.rb
469
+ - spec/kitchen/driver/proxy_spec.rb
470
+ - spec/kitchen/driver/ssh_base_spec.rb
409
471
  - spec/kitchen/driver_spec.rb
472
+ - spec/kitchen/errors_spec.rb
410
473
  - spec/kitchen/instance_spec.rb
411
474
  - spec/kitchen/lazy_hash_spec.rb
412
475
  - spec/kitchen/loader/yaml_spec.rb
476
+ - spec/kitchen/logger_spec.rb
477
+ - spec/kitchen/logging_spec.rb
478
+ - spec/kitchen/login_command_spec.rb
479
+ - spec/kitchen/metadata_chopper_spec.rb
413
480
  - spec/kitchen/platform_spec.rb
414
481
  - spec/kitchen/provisioner/base_spec.rb
482
+ - spec/kitchen/provisioner/chef_base_spec.rb
483
+ - spec/kitchen/provisioner/chef_solo_spec.rb
484
+ - spec/kitchen/provisioner/chef_zero_spec.rb
485
+ - spec/kitchen/provisioner/shell_spec.rb
415
486
  - spec/kitchen/provisioner_spec.rb
487
+ - spec/kitchen/shell_out_spec.rb
488
+ - spec/kitchen/ssh_spec.rb
416
489
  - spec/kitchen/state_file_spec.rb
417
490
  - spec/kitchen/suite_spec.rb
418
491
  - spec/kitchen/util_spec.rb
492
+ - spec/kitchen_spec.rb
419
493
  - spec/spec_helper.rb
420
494
  has_rdoc: