test-kitchen 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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: