pdqtest 1.9.9beta8 → 1.9.9beta9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 318a1841d2bcfda00c332734315ddf1278163cd50f3ce406463e400dad95bbb2
4
- data.tar.gz: 1502c06caeea59ac008f102a14d4691e2ca0c9c4387dfc83fe0236d897e0fb6f
3
+ metadata.gz: 438426faf365d5ee59ac7b075dec4bef83048a08e4d231bf9e069f8b70374194
4
+ data.tar.gz: b8d07f4d78e6e4f4721fcbe6a9e34e7e5ca51bd59e11c4f55fd1765b548b571f
5
5
  SHA512:
6
- metadata.gz: e33f2c4d47f585819125cd74c0dbad0e38798c800df5aad2c1524c83d0687d86edfec2999cdb21db8fd6ad6e810f3b4fb56d13b30c84c064416c5a9091dc42b7
7
- data.tar.gz: 9d8ba622a7c9b62e0b5946a444f2e3b1d1b34d76e82b857afb28439cb8a2c823a6c426ea41a51defddd3fdc650c5c9ef2409b2553375462b96c74eb5228d1349
6
+ metadata.gz: 66d94c1d45b76ab56e30dc7ab1aa26b0f32727f12232b04b83b308d65cc25328bae044ca1e4941c927b08d9680b6d91a335bed6e8213306aff073ff7ba66e811
7
+ data.tar.gz: cd0acb639f47015da1c6d23e1431ac512a07585c429fbf8ad5a9336d23f90f72a45808921337c584b938f924f917b46523f6438f4129624b1822f08c906afc98
data/README.md CHANGED
@@ -32,6 +32,7 @@ PDQTest 2.0 new features:
32
32
  * [PDK Support](doc/pdk.md)
33
33
  * [Windows support](doc/windows.md)
34
34
  * [PDQTest 1.x -> 2.x Upgrade guide](doc/upgrade_1_2.md)
35
+ * [Inplace execution](https://github.com/declarativesystems/pdqtest/issues/34)
35
36
 
36
37
  ## PDQTest Manual
37
38
  1. [Installation](doc/installation.md)
data/exe/pdqtest CHANGED
@@ -76,6 +76,20 @@ Escort::App.create do |app|
76
76
  :type => :boolean,
77
77
  :default => false,
78
78
  )
79
+
80
+ opts.opt(:inplace,
81
+ 'Run puppet in place on *THIS* system -- WARNING! this is likely to destroy your computer',
82
+ :long => '--inplace',
83
+ :type => :boolean,
84
+ :default => false,
85
+ )
86
+
87
+ opts.opt(:inplace_enable,
88
+ 'Enable inplace mode to make changes (safety/debugging switch)',
89
+ :long => '--inplace-enable',
90
+ :type => :boolean,
91
+ :default => false,
92
+ )
79
93
  end
80
94
 
81
95
  app.command :all do |command|
@@ -85,9 +99,12 @@ Escort::App.create do |app|
85
99
 
86
100
  $logger.level = :debug if options[:global][:options][:debug]
87
101
 
102
+
88
103
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
89
104
  PDQTest::Puppet.skip_second_run(options[:global][:options][:skip_idempotency])
90
105
 
106
+ PDQTest::Inplace.set_enable options[:global][:options][:inplace_enable]
107
+ PDQTest::Instance.set_inplace options[:global][:options][:inplace]
91
108
  PDQTest::Instance.set_privileged(options[:global][:options][:privileged])
92
109
  PDQTest::Instance.set_keep_container(options[:global][:options][:keep_container])
93
110
  PDQTest::Instance.set_docker_image(options[:global][:options][:image_name])
@@ -112,6 +129,8 @@ Escort::App.create do |app|
112
129
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
113
130
  PDQTest::Puppet.skip_second_run(options[:global][:options][:skip_idempotency])
114
131
 
132
+ PDQTest::Inplace.set_enable options[:global][:options][:inplace_enable]
133
+ PDQTest::Instance.set_inplace options[:global][:options][:inplace]
115
134
  PDQTest::Instance.set_privileged(options[:global][:options][:privileged])
116
135
  PDQTest::Instance.set_keep_container(options[:global][:options][:keep_container])
117
136
  PDQTest::Instance.set_docker_image(options[:global][:options][:image_name])
@@ -143,6 +162,9 @@ Escort::App.create do |app|
143
162
 
144
163
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
145
164
  PDQTest::Puppet.skip_second_run(options[:global][:options][:skip_idempotency])
165
+
166
+ PDQTest::Inplace.set_enable options[:global][:options][:inplace_enable]
167
+ PDQTest::Instance.set_inplace options[:global][:options][:inplace]
146
168
  PDQTest::Instance.set_privileged(options[:global][:options][:privileged])
147
169
  PDQTest::Instance.set_docker_image(options[:global][:options][:image_name])
148
170
  PDQTest::Instance.set_keep_container(options[:global][:options][:keep_container])
@@ -1,12 +1,13 @@
1
1
  require 'pdqtest/util'
2
2
  require 'pdqtest/puppet'
3
+ require 'pdqtest/execution'
3
4
 
4
5
  module PDQTest
5
6
  module Docker
6
7
  OUT = 0
7
8
  ERR = 1
8
9
  STATUS = 2
9
- REAL_CMD = 3
10
+
10
11
  IMAGES = {
11
12
  :DEFAULT => 'declarativesystems/pdqtest-centos:2018-09-15-0',
12
13
  :UBUNTU => 'declarativesystems/pdqtest-ubuntu:2018-09-15-0',
@@ -43,6 +44,7 @@ module PDQTest
43
44
 
44
45
  # convenience lookup for container testcase dir since its used all over the
45
46
  # place
47
+ # fixme! - belongs somewhere else now...
46
48
  def self.test_dir
47
49
  CONTAINER_PATHS[Util.host_platform][:testcase]
48
50
  end
@@ -67,38 +69,16 @@ module PDQTest
67
69
  volumes
68
70
  end
69
71
 
72
+ def self._exec_real(container, real_c)
73
+ $logger.debug("exec_real: running docker command: #{real_c}")
74
+ _res = container.exec(real_c, tty: true)
70
75
 
71
- def self.exec(container, cmd)
72
- status = 0
73
- res = []
74
-
75
- res[OUT]=[]
76
- res[ERR]=[]
77
- res[STATUS]=0
78
- res[REAL_CMD]=[]
79
-
80
- Array(cmd).each do |c|
81
- real_c = Util.wrap_cmd(c)
82
- res[REAL_CMD] << real_c
83
- $logger.debug "Executing: #{real_c}"
84
- _res = container.exec(real_c, tty: true)
85
-
86
- if c =~ /robocopy/
87
- # robocopy exit codes break the status check we do later on - we have
88
- # to manually 'fix' them here
89
- if _res[STATUS] < 4
90
- _res[STATUS] = 0
91
- end
92
- end
93
- res[STATUS] += _res[STATUS]
94
- res[OUT] += _res[OUT]
95
- res[ERR] += _res[ERR]
96
-
97
- # non zero status from something thats not puppet apply is probably an error
98
- if _res[STATUS] != 0 && !(c =~ /pupet apply|bats/)
99
- $logger.warn "non-zero exit status: #{_res[STATUS]} from #{real_c}: #{_res[OUT]} #{_res[ERR]}"
100
- end
101
- end
76
+ # docker returns an array of stuff - convert to hash with labels
77
+ res = {
78
+ :OUT => _res[OUT],
79
+ :ERR => _res[ERR],
80
+ :STATUS => _res[STATUS],
81
+ }
102
82
 
103
83
  res
104
84
  end
@@ -218,45 +198,5 @@ module PDQTest
218
198
  container.delete(:force => true)
219
199
  end
220
200
 
221
- def self.exec_status(res, puppet=false)
222
- if puppet
223
- # 0 == ok, no changes
224
- # 2 == ok, changes made
225
- allowable_values = [0,2]
226
- else
227
- allowable_values = [0]
228
- end
229
- status = allowable_values.include?(res[STATUS])
230
- end
231
-
232
- def self.exec_out(res)
233
- res[OUT]
234
- end
235
-
236
- def self.exec_err(res)
237
- res[ERR]
238
- end
239
-
240
- def self.log_out(res)
241
- exec_out(res).each { |l|
242
- # Output comes back as an array and needs to be iterated or we lose our
243
- # ansi formatting
244
- $logger.info l.chomp
245
- }
246
- end
247
-
248
- def self.log_all(res)
249
- log_err(res)
250
- log_out(res)
251
- end
252
-
253
- def self.log_err(res)
254
- exec_err(res).each { |l|
255
- # Output comes back as an array and needs to be iterated or we lose our
256
- # ansi formatting
257
- $logger.error l.chomp
258
- }
259
- end
260
-
261
201
  end
262
202
  end
@@ -0,0 +1,82 @@
1
+ require 'pdqtest/puppet'
2
+ module PDQTest
3
+ module Execution
4
+
5
+ def self.exec_out(res)
6
+ res[:OUT]
7
+ end
8
+
9
+ def self.exec_err(res)
10
+ res[:ERR]
11
+ end
12
+
13
+ def self.log_out(res)
14
+ exec_out(res).each { |l|
15
+ # Output comes back as an array and needs to be iterated or we lose our
16
+ # ansi formatting
17
+ $logger.info l.chomp
18
+ }
19
+ end
20
+
21
+ def self.log_all(res)
22
+ log_err(res)
23
+ log_out(res)
24
+ end
25
+
26
+ def self.log_err(res)
27
+ exec_err(res).each { |l|
28
+ # Output comes back as an array and needs to be iterated or we lose our
29
+ # ansi formatting
30
+ $logger.error l.chomp
31
+ }
32
+ end
33
+
34
+ def self.exec(cc, container, cmd)
35
+ status = 0
36
+ res = {}
37
+
38
+ res[:OUT]=[]
39
+ res[:ERR]=[]
40
+ res[:STATUS]=0
41
+ res[:REAL_CMD]=[]
42
+
43
+ Array(cmd).each do |c|
44
+ real_c = Util.wrap_cmd(c)
45
+ res[:REAL_CMD] << real_c
46
+ $logger.debug "Executing: #{real_c}"
47
+ _res = cc._exec_real(container, real_c)
48
+
49
+ if c =~ /robocopy/
50
+ # robocopy exit codes break the status check we do later on - we have
51
+ # to manually 'fix' them here
52
+ if _res[:STATUS] < 4
53
+ _res[:STATUS] = 0
54
+ end
55
+ end
56
+ res[:STATUS] += _res[:STATUS]
57
+ res[:OUT] += _res[:OUT]
58
+ res[:ERR] += _res[:ERR]
59
+
60
+ # non zero status from something thats not puppet apply is probably an error
61
+ if _res[:STATUS] != 0 && !(c =~ /pupet apply|bats/)
62
+ $logger.warn "non-zero exit status: #{_res[:STATUS]} from #{real_c}: #{_res[:OUT]} #{_res[:ERR]}"
63
+ end
64
+ end
65
+
66
+ res
67
+ end
68
+
69
+ # convert exit code (integer) to boolean: true == good; false == bad
70
+ def self.exec_status(res, puppet=false)
71
+ if puppet
72
+ # 0 == ok, no changes
73
+ # 2 == ok, changes made
74
+ allowable_values = [0,2]
75
+ else
76
+ allowable_values = [0]
77
+ end
78
+ status = allowable_values.include?(res[:STATUS])
79
+ end
80
+
81
+ end
82
+ end
@@ -0,0 +1,58 @@
1
+ require 'pdqtest/puppet'
2
+ require 'open3'
3
+ module PDQTest
4
+ module Inplace
5
+ INPLACE_IMAGE = "__INPLACE__"
6
+ @@enable = false
7
+
8
+ def self.set_enable(enable)
9
+ if enable
10
+ $logger.warn <<~END
11
+ PDQTest run with --inplace --inplace-enable will run Puppet on
12
+ *this* computer!
13
+
14
+ You have 5 seconds to abort, press ctrl+c now
15
+ END
16
+ sleep(5)
17
+ end
18
+ @@enable = enable
19
+ end
20
+
21
+ def self._exec_real(container, real_c)
22
+ res = {}
23
+
24
+ res[:OUT] = []
25
+ res[:ERR] = []
26
+ res[:STATUS] = 0
27
+ $logger.debug("exec_real: running inplace command: #{real_c}")
28
+ if @@enable
29
+ # must splat to avoid "wrong first argument"
30
+ Open3.popen3(*real_c) do |stdin, stdout, stderr, wait_thr|
31
+ res[:OUT] = stdout.read.split("\n")
32
+ res[:ERR] = stderr.read.split("\n")
33
+ # Process::Status object returned from `.value`
34
+ res[:STATUS] = wait_thr.value.exitstatus
35
+ end
36
+ else
37
+ $logger.info "didn't run command, reason: DISABLED"
38
+ end
39
+ $logger.debug("...result: #{res[:STATUS]}")
40
+
41
+ res
42
+ end
43
+
44
+ def self.id
45
+ INPLACE_IMAGE
46
+ end
47
+
48
+ def self.new_container(image_name, privileged)
49
+ FileUtils.rm_f Docker.test_dir if Dir.exist? Docker.test_dir
50
+
51
+ FileUtils.cp_r(File.join(Dir.pwd, "."), Docker.test_dir)
52
+ end
53
+
54
+ def self.cleanup_container(container)
55
+ FileUtils.rm_f Docker.test_dir
56
+ end
57
+ end
58
+ end
@@ -1,6 +1,7 @@
1
1
  require 'docker-api'
2
2
  require 'pdqtest/puppet'
3
3
  require 'pdqtest/docker'
4
+ require 'pdqtest/inplace'
4
5
  require 'escort'
5
6
 
6
7
  module PDQTest
@@ -9,6 +10,7 @@ module PDQTest
9
10
  @@active_container = nil
10
11
  @@image_name = false
11
12
  @@privileged = false
13
+ @@inplace = false
12
14
 
13
15
  def self.get_active_container
14
16
  @@active_container
@@ -39,6 +41,37 @@ module PDQTest
39
41
  @@privileged
40
42
  end
41
43
 
44
+ def self.set_inplace(inplace)
45
+ @@inplace = inplace
46
+ end
47
+
48
+ def self.get_inplace()
49
+ @@inplace
50
+ end
51
+
52
+
53
+ def self.get_acceptance_test_images
54
+ test_platforms = @@image_name || PDQTest::Docker.acceptance_test_images
55
+ filtered_test_platforms = test_platforms.reject do |image_name|
56
+ reject = false
57
+ if Util.is_windows
58
+ if image_name !~ /windows/
59
+ $logger.info "Skipping test image #{image_name} (requires Linux)"
60
+ reject = true
61
+ end
62
+ else
63
+ if image_name =~ /windows/
64
+ $logger.info "Skipping test image #{image_name} (requires Windows)"
65
+ reject = true
66
+ end
67
+ end
68
+
69
+ reject
70
+ end
71
+
72
+ filtered_test_platforms
73
+ end
74
+
42
75
  def self.run(example=nil)
43
76
  # needed to prevent timeouts from container.exec()
44
77
  Excon.defaults[:write_timeout] = 10000
@@ -48,38 +81,29 @@ module PDQTest
48
81
  # remove reference to any previous test container
49
82
  @@active_container = nil
50
83
 
51
- if PDQTest::Puppet::find_examples().empty?
84
+ if PDQTest::Puppet.find_examples.empty?
52
85
  $logger.info "No acceptance tests found, annotate examples with #{PDQTest::Puppet.setting(:magic_marker)} to make some"
53
86
  else
54
- # process each supported OS
55
- test_platforms = @@image_name || Docker::acceptance_test_images
56
- $logger.info "Acceptance test on #{test_platforms}..."
57
- test_platforms.reject { |image_name|
58
- reject = false
59
- if Util.is_windows
60
- if image_name !~ /windows/
61
- $logger.info "Skipping test image #{image_name} (requires Linux)"
62
- reject = true
63
- end
64
- else
65
- if image_name =~ /windows/
66
- $logger.info "Skipping test image #{image_name} (requires Windows)"
67
- reject = true
68
- end
69
- end
70
-
71
- reject
72
- }.each { |image_name|
87
+ # process each supported OS and figure out what controller container to use
88
+ if @@inplace
89
+ test_platforms = [PDQTest::Inplace::INPLACE_IMAGE]
90
+ cc = PDQTest::Inplace
91
+ else
92
+ test_platforms = get_acceptance_test_images
93
+ cc = PDQTest::Docker
94
+ end
95
+
96
+ test_platforms.each { |image_name|
73
97
  $logger.info "--- start test with #{image_name} ---"
74
- @@active_container = PDQTest::Docker::new_container(image_name, @@privileged)
98
+ @@active_container = cc.new_container(image_name, @@privileged)
75
99
  $logger.info "alive, running tests"
76
- status &= PDQTest::Puppet.run(@@active_container, example)
100
+ status &= PDQTest::Puppet.run(cc, @@active_container, example)
77
101
 
78
- if @@keep_container
102
+ if @@keep_container && ! @@inplace
79
103
  $logger.info "finished build, container #{@@active_container.id} left on system"
80
104
  $logger.info " docker exec -ti #{@@active_container.id} #{Util.shell} "
81
105
  else
82
- PDQTest::Docker.cleanup_container(@@active_container)
106
+ cc.cleanup_container(@@active_container)
83
107
  @@active_container = nil
84
108
  end
85
109
 
@@ -97,7 +121,9 @@ module PDQTest
97
121
  $logger.info "Opening a shell in #{image_name}"
98
122
  @@active_container = PDQTest::Docker::new_container(image_name, @@privileged)
99
123
 
100
- PDQTest::Docker.exec(@@active_container, PDQTest::Puppet.setup)
124
+ # Shell is always executed with docker - if you want a new shell for
125
+ # in-place, your already in it ;-)
126
+ PDQTest::Execution.exec(PDQTest::Docker, @@active_container, PDQTest::Puppet.setup)
101
127
 
102
128
  # In theory I should be able to get something like the code below to
103
129
  # redirect all input streams and give a makeshift interactive shell, howeve
@@ -260,13 +260,13 @@ module PDQTest
260
260
  t.gsub(EXAMPLES_DIR + '/','').gsub('.pp','')
261
261
  end
262
262
 
263
- def self.xats_test(container, example, suffix)
263
+ def self.xats_test(cc, container, example, suffix)
264
264
  testcase = Util.joinp(XATS_TESTS, test_basename(example) + suffix)
265
265
  if File.exists?(testcase)
266
266
  $logger.info "*** #{setting(:name)} test **** #{setting(:test_cmd)} #{testcase}"
267
- res = PDQTest::Docker.exec(container, "cd #{Docker.test_dir} ; #{setting(:test_cmd)} #{testcase}")
268
- status = PDQTest::Docker.exec_status(res)
269
- PDQTest::Docker.log_out(res)
267
+ res = PDQTest::Execution.exec(cc, container, "cd #{Docker.test_dir} ; #{setting(:test_cmd)} #{testcase}")
268
+ status = PDQTest::Execution.exec_status(res)
269
+ PDQTest::Execution.log_all(res)
270
270
  @@bats_executed << testcase
271
271
  else
272
272
  $logger.info "no #{suffix} tests for #{example} (should be at #{testcase})"
@@ -276,19 +276,20 @@ module PDQTest
276
276
  status
277
277
  end
278
278
 
279
- def self.setup_test(container, example)
279
+ def self.setup_test(cc, container, example)
280
280
  setup_script = Util.joinp(XATS_TESTS, test_basename(example)) + setting(:setup_suffix)
281
281
  if File.exists?(setup_script)
282
282
  script = File.read(setup_script)
283
283
  $logger.debug "setup script: \n #{script}"
284
284
  if script.strip.empty?
285
285
  $logger.info "skipping empty setup script at #{setup_script}"
286
+ status = true
286
287
  else
287
288
  $logger.info "Setting up test for #{example}"
288
289
 
289
- res = PDQTest::Docker.exec(container, script)
290
- status = PDQTest::Docker.exec_status(res)
291
- PDQTest::Docker.log_out(res)
290
+ res = PDQTest::Execution.exec(cc, container, script)
291
+ status = PDQTest::Execution.exec_status(res)
292
+ PDQTest::Execution.log_all(res)
292
293
  end
293
294
  @@setup_executed << setup_script
294
295
  else
@@ -299,42 +300,42 @@ module PDQTest
299
300
  status
300
301
  end
301
302
 
302
- def self.run_example(container, example)
303
+ def self.run_example(cc, container, example)
303
304
  $logger.info "testing #{example}"
304
305
  status = false
305
306
 
306
- if setup_test(container, example)
307
+ if setup_test(cc, container, example)
307
308
 
308
309
  # see if we should run a bats test before running puppet
309
- if xats_test(container, example, setting(:before_suffix))
310
+ if xats_test(cc, container, example, setting(:before_suffix))
310
311
 
311
312
  # run puppet apply - 1st run
312
- res = PDQTest::Docker.exec(container, puppet_apply(example))
313
- PDQTest::Docker.log_out(res)
314
- if PDQTest::Docker.exec_status(res, true) # allow 2 as exit status
313
+ res = PDQTest::Execution.exec(cc, container, puppet_apply(example))
314
+ PDQTest::Execution.log_out(res)
315
+ if PDQTest::Execution.exec_status(res, true) # allow 2 as exit status
315
316
 
316
317
  if @@skip_second_run
317
318
  $logger.info "Skipping idempotency check as you requested..."
318
319
 
319
320
  # check the system right now since puppet ran OK once
320
- status = xats_test(container, example, setting(:after_suffix))
321
+ status = xats_test(cc, container, example, setting(:after_suffix))
321
322
  else
322
323
  # run puppet apply - 2nd run (check for idempotencey/no more changes)
323
- res = PDQTest::Docker.exec(container, puppet_apply(example))
324
- PDQTest::Docker.log_out(res)
324
+ res = PDQTest::Execution.exec(cc, container, puppet_apply(example))
325
+ PDQTest::Execution.log_out(res)
325
326
 
326
327
  # run the bats test if nothing failed yet
327
- if PDQTest::Docker.exec_status(res) # only allow 0 as exit status
328
- status = xats_test(container, example, setting(:after_suffix))
328
+ if PDQTest::Execution.exec_status(res) # only allow 0 as exit status
329
+ status = xats_test(cc, container, example, setting(:after_suffix))
329
330
  else
330
331
  $logger.error "Not idempotent: #{example}"
331
332
  end
332
333
  end
333
334
  else
334
- $logger.error "First puppet run of #{example} failed (status: #{res[Docker::STATUS]})"
335
+ $logger.error "First puppet run of #{example} failed (status: #{res[:STATUS]})"
335
336
  end
336
337
  else
337
- $logger.error "#{setting(:name)} tests to run before #{example} failed (status: #{res[Docker::STATUS]})"
338
+ $logger.error "#{setting(:name)} tests to run before #{example} failed"
338
339
  end
339
340
  else
340
341
  $logger.error "Setup script for #{example} failed (see previous error)"
@@ -343,7 +344,7 @@ module PDQTest
343
344
  status
344
345
  end
345
346
 
346
- def self.run(container, example=nil)
347
+ def self.run(cc, container, example=nil)
347
348
  # we must always have ./spec/fixtures/modules because we need to create a
348
349
  # symlink back to the main module inside here...
349
350
  # (spec/fixtures/modules/foo -> /testcase)
@@ -357,14 +358,14 @@ module PDQTest
357
358
  status = true
358
359
  $logger.info "...running container setup"
359
360
  setup_start = Time.now
360
- res = PDQTest::Docker.exec(container, setup)
361
+ res = PDQTest::Execution.exec(cc, container, setup)
361
362
  setup_end = Time.now
362
- status &= PDQTest::Docker.exec_status(res)
363
+ status &= PDQTest::Execution.exec_status(res)
363
364
  if Util.is_windows
364
365
  # write a script to allow user to update modules
365
366
  $logger.info "wasted #{((setup_end - setup_start))} seconds of your life on windows tax"
366
367
  File.open("refresh.ps1", 'w') do |file|
367
- res[Docker::REAL_CMD].each do |c|
368
+ res[:REAL_CMD].each do |c|
368
369
  file.puts("#{c[0]} #{c[1]} \"#{c[2]}\"")
369
370
  end
370
371
  end
@@ -376,14 +377,14 @@ module PDQTest
376
377
  if status
377
378
  $logger.info "...run tests"
378
379
  if example
379
- status &= run_example(container, example)
380
+ status &= run_example(cc, container, example)
380
381
  if ! status
381
382
  $logger.error "Example #{example} failed!"
382
383
  end
383
384
  else
384
385
  find_examples.each { |e|
385
386
  if status
386
- status &= run_example(container, e)
387
+ status &= run_example(cc, container, e)
387
388
  if ! status
388
389
  $logger.error "Example #{e} failed! - skipping rest of tests"
389
390
  end
@@ -391,8 +392,8 @@ module PDQTest
391
392
  }
392
393
  end
393
394
  else
394
- PDQTest::Docker.log_all(res)
395
- $logger.error "Error running puppet setup, see previous error, command was: #{res[Docker::REAL_CMD]}"
395
+ PDQTest::Execution.log_all(res)
396
+ $logger.error "Error running puppet setup, see previous error, command was: #{res[:REAL_CMD]}"
396
397
  end
397
398
 
398
399
  PDQTest::Emoji.partial_status(status, 'Puppet')
@@ -20,7 +20,7 @@ module PDQTest
20
20
  'added' => false,
21
21
  },
22
22
  'puppet' => {
23
- 'line' => "gem 'puppet', '5.5.3'",
23
+ 'line' => "gem 'puppet', '5.5.6'",
24
24
  'added' => false,
25
25
  },
26
26
  'puppet-lint' => {
@@ -1,3 +1,3 @@
1
1
  module PDQTest
2
- VERSION = "1.9.9beta8"
2
+ VERSION = "1.9.9beta9"
3
3
  end
@@ -18,7 +18,7 @@ pipelines:
18
18
  - apt install -y pdk
19
19
  - sh .ci_custom.sh
20
20
  - make pdqtestbundle
21
- - make logical
21
+ - cd .pdqtest && bundle exec pdqtest --inplace --inplace enable all
22
22
 
23
23
  definitions:
24
24
  caches:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdqtest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.9beta8
4
+ version: 1.9.9beta9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoff Williams
@@ -211,7 +211,9 @@ files:
211
211
  - lib/pdqtest/core.rb
212
212
  - lib/pdqtest/docker.rb
213
213
  - lib/pdqtest/emoji.rb
214
+ - lib/pdqtest/execution.rb
214
215
  - lib/pdqtest/fastcheck.rb
216
+ - lib/pdqtest/inplace.rb
215
217
  - lib/pdqtest/instance.rb
216
218
  - lib/pdqtest/logger.rb
217
219
  - lib/pdqtest/pdk.rb