roku_builder 4.25.4 → 4.26.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/intergration/roku_builder/test_helper.rb +2 -3
  3. data/intergration/roku_builder/test_profiler.rb +1 -1
  4. data/lib/roku_builder/config_parser.rb +4 -5
  5. data/lib/roku_builder/device_manager.rb +100 -0
  6. data/lib/roku_builder/plugins/core.rb +3 -1
  7. data/lib/roku_builder/plugins/indentation_inspector.rb +2 -2
  8. data/lib/roku_builder/plugins/inspector.rb +36 -26
  9. data/lib/roku_builder/plugins/line_inspector.rb +27 -6
  10. data/lib/roku_builder/plugins/linker.rb +29 -22
  11. data/lib/roku_builder/plugins/loader.rb +30 -11
  12. data/lib/roku_builder/plugins/monitor.rb +19 -17
  13. data/lib/roku_builder/plugins/navigator.rb +40 -34
  14. data/lib/roku_builder/plugins/packager.rb +109 -92
  15. data/lib/roku_builder/plugins/profiler.rb +24 -15
  16. data/lib/roku_builder/plugins/tester.rb +15 -13
  17. data/lib/roku_builder/util.rb +39 -17
  18. data/lib/roku_builder/version.rb +1 -1
  19. data/lib/roku_builder.rb +3 -19
  20. data/roku_builder.gemspec +3 -2
  21. data/test/roku_builder/plugins/test_analyzer.rb +19 -10
  22. data/test/roku_builder/plugins/test_core.rb +2 -3
  23. data/test/roku_builder/plugins/test_inspector.rb +48 -8
  24. data/test/roku_builder/plugins/test_linker.rb +66 -10
  25. data/test/roku_builder/plugins/test_loader.rb +44 -15
  26. data/test/roku_builder/plugins/test_monitor.rb +33 -16
  27. data/test/roku_builder/plugins/test_navigator.rb +55 -14
  28. data/test/roku_builder/plugins/test_packager.rb +118 -34
  29. data/test/roku_builder/plugins/test_profiler.rb +153 -78
  30. data/test/roku_builder/plugins/test_tester.rb +20 -5
  31. data/test/roku_builder/test_device_manager.rb +187 -0
  32. data/test/roku_builder/test_files/analyzer_test/dont_use_hello_world.json +11 -0
  33. data/test/roku_builder/test_files/analyzer_test/linter_positive_match.json +13 -0
  34. data/test/roku_builder/test_helper.rb +6 -0
  35. data/test/roku_builder/test_roku_builder.rb +5 -42
  36. metadata +27 -6
@@ -10,9 +10,12 @@ module RokuBuilder
10
10
  RokuBuilder.setup_plugins
11
11
  register_plugins(Packager)
12
12
  @requests = []
13
+ @device_manager = Minitest::Mock.new
13
14
  end
14
15
  def teardown
15
16
  @requests.each {|req| remove_request_stub(req)}
17
+ @device_manager.verify
18
+ clean_device_locks()
16
19
  end
17
20
  def test_packager_parse_options_long
18
21
  parser = OptionParser.new
@@ -61,6 +64,10 @@ module RokuBuilder
61
64
  end
62
65
  def test_packager_package_failed
63
66
  config, options = build_config_options_objects(PackagerTest, {package: true, stage: "production"}, false)
67
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
68
+ @device_manager.expect(:reserve_device, device, no_lock: false)
69
+ @device_manager.expect(:release_device, nil, [device])
70
+
64
71
  @requests.push(stub_request(:post, "http://192.168.0.100:8060/keypress/Home").
65
72
  to_return(status: 200, body: "", headers: {}))
66
73
  @requests.push(stub_request(:post, "http://192.168.0.100/plugin_install").
@@ -68,8 +75,10 @@ module RokuBuilder
68
75
  @requests.push(stub_request(:post, "http://192.168.0.100/plugin_package").
69
76
  to_return(status: 200, body: "Failed: Error.", headers: {}))
70
77
  packager = Packager.new(config: config)
71
- assert_raises ExecutionError do
72
- packager.package(options: options)
78
+ RokuBuilder.stub(:device_manager, @device_manager) do
79
+ assert_raises ExecutionError do
80
+ packager.package(options: options)
81
+ end
73
82
  end
74
83
  end
75
84
  def test_packager_package
@@ -88,9 +97,13 @@ module RokuBuilder
88
97
  @requests.push(stub_request(:get, "http://192.168.0.100/pkgs/pkg_url").
89
98
  to_return(status: 200, body: body, headers: {}))
90
99
 
91
- loader.expect(:sideload, nil, [Hash])
100
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
101
+ @device_manager.expect(:reserve_device, device, no_lock: false)
102
+ @device_manager.expect(:release_device, nil, [device])
103
+
104
+ loader.expect(:sideload, nil, options: Hash, device: device)
92
105
  io.expect(:write, nil, ["package_body"])
93
- inspector.expect(:inspect, nil, [Hash])
106
+ inspector.expect(:inspect, nil, options: Hash, device: device)
94
107
 
95
108
  logger.expect(:debug, nil, [String])
96
109
  io.expect(:each_line, nil)
@@ -101,12 +114,14 @@ module RokuBuilder
101
114
  Logger.class_variable_set(:@@instance, logger)
102
115
  packager = Packager.new(config: config)
103
116
  dev_id = Proc.new {"#{Random.rand(999999999999)}"}
104
- Loader.stub(:new, loader) do
105
- Time.stub(:now, Time.at(0)) do
106
- File.stub(:open, nil, io) do
107
- Inspector.stub(:new, inspector) do
108
- packager.stub(:dev_id, dev_id) do
109
- packager.package(options: options)
117
+ RokuBuilder.stub(:device_manager, @device_manager) do
118
+ Loader.stub(:new, loader) do
119
+ Time.stub(:now, Time.at(0)) do
120
+ File.stub(:open, nil, io) do
121
+ Inspector.stub(:new, inspector) do
122
+ packager.stub(:dev_id, dev_id) do
123
+ packager.package(options: options)
124
+ end
110
125
  end
111
126
  end
112
127
  end
@@ -126,6 +141,10 @@ module RokuBuilder
126
141
  config[:projects][:project1][:stages][:production][:squash] = true
127
142
  config, options = build_config_options_objects(PackagerTest, {package: true, stage: "production", inspect_package: true, verbose: true}, false, config)
128
143
 
144
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
145
+ @device_manager.expect(:reserve_device, device, no_lock: false)
146
+ @device_manager.expect(:release_device, nil, [device])
147
+
129
148
  @requests.push(stub_request(:post, "http://192.168.0.100/plugin_inspect").
130
149
  to_return(status: 200, body: "", headers: {}).times(2))
131
150
  body = "<a href=\"pkgs\">pkg_url</a>"
@@ -135,10 +154,10 @@ module RokuBuilder
135
154
  @requests.push(stub_request(:get, "http://192.168.0.100/pkgs/pkg_url").
136
155
  to_return(status: 200, body: body, headers: {}))
137
156
 
138
- loader.expect(:sideload, nil, [Hash])
139
- loader.expect(:squash, nil, [Hash])
157
+ loader.expect(:sideload, nil, options: Hash, device: device)
158
+ loader.expect(:squash, nil, options: Hash, device: device)
140
159
  io.expect(:write, nil, ["package_body"])
141
- inspector.expect(:inspect, nil, [Hash])
160
+ inspector.expect(:inspect, nil, options: Hash, device: device)
142
161
 
143
162
  logger.expect(:debug, nil, [String])
144
163
  io.expect(:each_line, nil)
@@ -149,12 +168,14 @@ module RokuBuilder
149
168
  Logger.class_variable_set(:@@instance, logger)
150
169
  packager = Packager.new(config: config)
151
170
  dev_id = Proc.new {"#{Random.rand(999999999999)}"}
152
- Loader.stub(:new, loader) do
153
- Time.stub(:now, Time.at(0)) do
154
- File.stub(:open, nil, io) do
155
- Inspector.stub(:new, inspector) do
156
- packager.stub(:dev_id, dev_id) do
157
- packager.package(options: options)
171
+ RokuBuilder.stub(:device_manager, @device_manager) do
172
+ Loader.stub(:new, loader) do
173
+ Time.stub(:now, Time.at(0)) do
174
+ File.stub(:open, nil, io) do
175
+ Inspector.stub(:new, inspector) do
176
+ packager.stub(:dev_id, dev_id) do
177
+ packager.package(options: options)
178
+ end
158
179
  end
159
180
  end
160
181
  end
@@ -171,8 +192,16 @@ module RokuBuilder
171
192
  to_return(status: 200, body: body, headers: {}))
172
193
 
173
194
  config = build_config_options_objects(PackagerTest, {key: true, stage: "production"}, false)[0]
195
+
196
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
197
+ @device_manager.expect(:reserve_device, device, no_lock: false)
198
+ @device_manager.expect(:release_device, nil, [device])
199
+
174
200
  packager = Packager.new(config: config)
175
- dev_id = packager.dev_id
201
+ dev_id = nil
202
+ RokuBuilder.stub(:device_manager, @device_manager) do
203
+ dev_id = packager.dev_id
204
+ end
176
205
 
177
206
  assert_equal "dev_id", dev_id
178
207
  end
@@ -182,8 +211,15 @@ module RokuBuilder
182
211
  to_return(status: 200, body: body, headers: {}))
183
212
 
184
213
  config = build_config_options_objects(PackagerTest, {key: true, stage: "production"}, false)[0]
214
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
215
+ @device_manager.expect(:reserve_device, device, no_lock: false)
216
+ @device_manager.expect(:release_device, nil, [device])
217
+
185
218
  packager = Packager.new(config: config)
186
- dev_id = packager.dev_id
219
+ dev_id = nil
220
+ RokuBuilder.stub(:device_manager, @device_manager) do
221
+ dev_id = packager.dev_id
222
+ end
187
223
 
188
224
  assert_equal "dev_id", dev_id
189
225
  end
@@ -195,10 +231,16 @@ module RokuBuilder
195
231
  logger.expect(:debug, nil) {|s| s =~ /\d* -> \d*/}
196
232
  dev_id = Proc.new {"#{Random.rand(999999999999)}"}
197
233
  config, options = build_config_options_objects(PackagerTest, {key: true, stage: "production"}, false)
234
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
235
+ @device_manager.expect(:reserve_device, device, no_lock: false)
236
+ @device_manager.expect(:release_device, nil, [device])
237
+
198
238
  packager = Packager.new(config: config)
199
239
  Logger.class_variable_set(:@@instance, logger)
200
- packager.stub(:dev_id, dev_id) do
201
- packager.key(options: options)
240
+ RokuBuilder.stub(:device_manager, @device_manager) do
241
+ packager.stub(:dev_id, dev_id) do
242
+ packager.key(options: options)
243
+ end
202
244
  end
203
245
  end
204
246
 
@@ -210,9 +252,32 @@ module RokuBuilder
210
252
  logger.expect(:debug, nil) {|s| s =~ /\d* -> \d*/}
211
253
  dev_id = Proc.new {"#{Random.rand(999999999999)}"}
212
254
  config, options = build_config_options_objects(PackagerTest, {key: true, stage: "production"}, false)
255
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
256
+ @device_manager.expect(:reserve_device, device, no_lock: false)
257
+ @device_manager.expect(:release_device, nil, [device])
258
+
213
259
  packager = Packager.new(config: config)
214
260
  Logger.class_variable_set(:@@instance, logger)
215
- packager.stub(:dev_id, dev_id) do
261
+ RokuBuilder.stub(:device_manager, @device_manager) do
262
+ packager.stub(:dev_id, dev_id) do
263
+ packager.key(options: options)
264
+ end
265
+ end
266
+ end
267
+
268
+ def test_packager_key_same_device
269
+ config, options = build_config_options_objects(PackagerTest, {key: true, stage: "production"}, false)
270
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
271
+ @device_manager.expect(:reserve_device, device, no_lock: false)
272
+ @device_manager.expect(:release_device, nil, [device])
273
+
274
+ body = "<p> Your Dev ID: <font face=\"Courier\">dev_id</font> </p>"
275
+ @requests.push(stub_request(:get, "http://192.168.0.100/plugin_package").
276
+ to_return(status: 200, body: body, headers: {}))
277
+ @requests.push(stub_request(:post, "http://192.168.0.100/plugin_inspect").
278
+ to_return(status: 200, body: "", headers: {}))
279
+ packager = Packager.new(config: config)
280
+ RokuBuilder.stub(:device_manager, @device_manager) do
216
281
  packager.key(options: options)
217
282
  end
218
283
  end
@@ -230,9 +295,15 @@ module RokuBuilder
230
295
  connection.expect(:close, nil, [])
231
296
 
232
297
  config = build_config_options_objects(PackagerTest, {genkey: true}, false)[0]
298
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
299
+ @device_manager.expect(:reserve_device, device, no_lock: false)
300
+ @device_manager.expect(:release_device, nil, [device])
301
+
233
302
  packager = Packager.new(config: config)
234
- Net::Telnet.stub(:new, connection) do
235
- packager.send(:generate_new_key)
303
+ RokuBuilder.stub(:device_manager, @device_manager) do
304
+ Net::Telnet.stub(:new, connection) do
305
+ packager.send(:generate_new_key)
306
+ end
236
307
  end
237
308
  end
238
309
 
@@ -240,18 +311,22 @@ module RokuBuilder
240
311
  config = good_config(PackagerTest)
241
312
  config[:projects][:project1][:stages][:production].delete(:key)
242
313
  config, options = build_config_options_objects(PackagerTest, {key: true, stage: "production"}, false, config)
314
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
315
+ @device_manager.expect(:reserve_device, device, no_lock: false)
316
+ @device_manager.expect(:release_device, nil, [device])
317
+
243
318
  packager = Packager.new(config: config)
244
319
  dev_id = Proc.new {"#{Random.rand(999999999999)}"}
245
320
  assert_raises ExecutionError do
246
- packager.stub(:dev_id, dev_id) do
247
- packager.key(options: options)
321
+ RokuBuilder.stub(:device_manager, @device_manager) do
322
+ packager.stub(:dev_id, dev_id) do
323
+ packager.key(options: options)
324
+ end
248
325
  end
249
326
  end
250
327
  end
251
328
 
252
329
  def test_packager_genkey
253
- loader = Minitest::Mock.new
254
- loader.expect(:sideload, nil, [Hash])
255
330
 
256
331
  body = "<a href=\"pkgs\">pkg_url</a>"
257
332
  @requests.push(stub_request(:post, "http://192.168.0.100/plugin_package").
@@ -259,13 +334,22 @@ module RokuBuilder
259
334
  @requests.push(stub_request(:get, "http://192.168.0.100/pkgs/pkg_url").
260
335
  to_return(status: 200, body: "", headers: {}))
261
336
  config, options = build_config_options_objects(PackagerTest, {genkey: true}, false)
337
+
338
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
339
+ @device_manager.expect(:reserve_device, device, no_lock: false)
340
+ @device_manager.expect(:release_device, nil, [device])
341
+
342
+ loader = Minitest::Mock.new
343
+ loader.expect(:sideload, nil, options: Hash)
344
+
262
345
  packager = Packager.new(config: config)
263
- Loader.stub(:new, loader) do
264
- packager.stub(:generate_new_key, ["password", "dev_id"]) do
265
- packager.genkey(options: options)
346
+ RokuBuilder.stub(:device_manager, @device_manager) do
347
+ Loader.stub(:new, loader) do
348
+ packager.stub(:generate_new_key, ["password", "dev_id"]) do
349
+ packager.genkey(options: options)
350
+ end
266
351
  end
267
352
  end
268
-
269
353
  loader.verify
270
354
  end
271
355
  end
@@ -11,6 +11,10 @@ module RokuBuilder
11
11
  unless RokuBuilder.plugins.include?(Profiler)
12
12
  RokuBuilder.register_plugin(Profiler)
13
13
  end
14
+ @device_manager = Minitest::Mock.new
15
+ end
16
+ def teardown
17
+ @device_manager.verify
14
18
  end
15
19
  def test_profiler_parse_options_long
16
20
  parser = OptionParser.new
@@ -23,12 +27,16 @@ module RokuBuilder
23
27
  def test_profiler_node_tracking
24
28
  options = {profile: "stats"}
25
29
  config, options = build_config_options_objects(ProfilerTest, options, false)
30
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
31
+ @device_manager.expect(:reserve_device, device, no_lock: true)
32
+ @device_manager.expect(:release_device, nil, [device])
33
+
26
34
  waitfor = Proc.new do |telnet_config, &blk|
27
- assert_equal(/.+/, telnet_config["Match"])
28
- assert_equal(1, telnet_config["Timeout"])
29
- txt = "<All_Nodes><NodeA /><NodeB /><NodeC><NodeD /></NodeC></All_Nodes>\n"
30
- blk.call(txt)
31
- true
35
+ assert_equal(/.+/, telnet_config["Match"])
36
+ assert_equal(1, telnet_config["Timeout"])
37
+ txt = "<All_Nodes><NodeA /><NodeB /><NodeC><NodeD /></NodeC></All_Nodes>\n"
38
+ blk.call(txt)
39
+ true
32
40
  end
33
41
  count = 0
34
42
  read_stub = Proc.new do |size|
@@ -43,10 +51,12 @@ module RokuBuilder
43
51
  connection.expect(:waitfor, nil, &waitfor)
44
52
  connection.expect(:close, nil)
45
53
 
46
- Net::Telnet.stub(:new, connection) do
47
- profiler.stub(:printf, nil) do
48
- STDIN.stub(:read, read_stub) do
49
- profiler.node_tracking(options: options)
54
+ RokuBuilder.stub(:device_manager, @device_manager) do
55
+ Net::Telnet.stub(:new, connection) do
56
+ profiler.stub(:printf, nil) do
57
+ STDIN.stub(:read, read_stub) do
58
+ profiler.node_tracking(options: options)
59
+ end
50
60
  end
51
61
  end
52
62
  end
@@ -56,12 +66,16 @@ module RokuBuilder
56
66
  def test_profiler_stats
57
67
  options = {profile: "stats"}
58
68
  config, options = build_config_options_objects(ProfilerTest, options, false)
69
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
70
+ @device_manager.expect(:reserve_device, device, no_lock: true)
71
+ @device_manager.expect(:release_device, nil, [device])
72
+
59
73
  waitfor = Proc.new do |telnet_config, &blk|
60
- assert_equal(/.+/, telnet_config["Match"])
61
- assert_equal(1, telnet_config["Timeout"])
62
- txt = "<All_Nodes><NodeA /><NodeB /><NodeC><NodeD /></NodeC></All_Nodes>\n"
63
- blk.call(txt)
64
- true
74
+ assert_equal(/.+/, telnet_config["Match"])
75
+ assert_equal(1, telnet_config["Timeout"])
76
+ txt = "<All_Nodes><NodeA /><NodeB /><NodeC><NodeD /></NodeC></All_Nodes>\n"
77
+ blk.call(txt)
78
+ true
65
79
  end
66
80
  connection = Minitest::Mock.new
67
81
  profiler = Profiler.new(config: config)
@@ -70,9 +84,11 @@ module RokuBuilder
70
84
  connection.expect(:waitfor, nil, &waitfor)
71
85
  connection.expect(:close, nil)
72
86
 
73
- Net::Telnet.stub(:new, connection) do
74
- profiler.stub(:printf, nil) do
75
- profiler.profile(options: options)
87
+ RokuBuilder.stub(:device_manager, @device_manager) do
88
+ Net::Telnet.stub(:new, connection) do
89
+ profiler.stub(:printf, nil) do
90
+ profiler.profile(options: options)
91
+ end
76
92
  end
77
93
  end
78
94
 
@@ -81,12 +97,16 @@ module RokuBuilder
81
97
  def test_profiler_all
82
98
  options = {profile: "all"}
83
99
  config, options = build_config_options_objects(ProfilerTest, options, false)
100
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
101
+ @device_manager.expect(:reserve_device, device, no_lock: true)
102
+ @device_manager.expect(:release_device, nil, [device])
103
+
84
104
  waitfor = Proc.new do |telnet_config, &blk|
85
- assert_equal(/.+/, telnet_config["Match"])
86
- assert_equal(1, telnet_config["Timeout"])
87
- txt = "<All_Nodes><NodeA /><NodeB /><NodeC><NodeD /></NodeC></All_Nodes>\n"
88
- blk.call(txt)
89
- true
105
+ assert_equal(/.+/, telnet_config["Match"])
106
+ assert_equal(1, telnet_config["Timeout"])
107
+ txt = "<All_Nodes><NodeA /><NodeB /><NodeC><NodeD /></NodeC></All_Nodes>\n"
108
+ blk.call(txt)
109
+ true
90
110
  end
91
111
  connection = Minitest::Mock.new
92
112
  profiler = Profiler.new(config: config)
@@ -95,9 +115,11 @@ module RokuBuilder
95
115
  connection.expect(:waitfor, nil, &waitfor)
96
116
  connection.expect(:close, nil)
97
117
 
98
- Net::Telnet.stub(:new, connection) do
99
- profiler.stub(:print, nil) do
100
- profiler.profile(options: options)
118
+ RokuBuilder.stub(:device_manager, @device_manager) do
119
+ Net::Telnet.stub(:new, connection) do
120
+ profiler.stub(:print, nil) do
121
+ profiler.profile(options: options)
122
+ end
101
123
  end
102
124
  end
103
125
 
@@ -106,12 +128,16 @@ module RokuBuilder
106
128
  def test_profiler_roots
107
129
  options = {profile: "roots"}
108
130
  config, options = build_config_options_objects(ProfilerTest, options, false)
131
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
132
+ @device_manager.expect(:reserve_device, device, no_lock: true)
133
+ @device_manager.expect(:release_device, nil, [device])
134
+
109
135
  waitfor = Proc.new do |telnet_config, &blk|
110
- assert_equal(/.+/, telnet_config["Match"])
111
- assert_equal(1, telnet_config["Timeout"])
112
- txt = "<Root_Nodes><NodeA /><NodeB /><NodeC><NodeD /></NodeC></Root_Nodes>\n"
113
- blk.call(txt)
114
- true
136
+ assert_equal(/.+/, telnet_config["Match"])
137
+ assert_equal(1, telnet_config["Timeout"])
138
+ txt = "<Root_Nodes><NodeA /><NodeB /><NodeC><NodeD /></NodeC></Root_Nodes>\n"
139
+ blk.call(txt)
140
+ true
115
141
  end
116
142
  connection = Minitest::Mock.new
117
143
  profiler = Profiler.new(config: config)
@@ -120,9 +146,11 @@ module RokuBuilder
120
146
  connection.expect(:waitfor, nil, &waitfor)
121
147
  connection.expect(:close, nil)
122
148
 
123
- Net::Telnet.stub(:new, connection) do
124
- profiler.stub(:print, nil) do
125
- profiler.profile(options: options)
149
+ RokuBuilder.stub(:device_manager, @device_manager) do
150
+ Net::Telnet.stub(:new, connection) do
151
+ profiler.stub(:print, nil) do
152
+ profiler.profile(options: options)
153
+ end
126
154
  end
127
155
  end
128
156
  connection.verify
@@ -130,12 +158,16 @@ module RokuBuilder
130
158
  def test_profiler_node
131
159
  options = {profile: "nodeId"}
132
160
  config, options = build_config_options_objects(ProfilerTest, options, false)
161
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
162
+ @device_manager.expect(:reserve_device, device, no_lock: true)
163
+ @device_manager.expect(:release_device, nil, [device])
164
+
133
165
  waitfor = Proc.new do |telnet_config, &blk|
134
- assert_equal(/.+/, telnet_config["Match"])
135
- assert_equal(1, telnet_config["Timeout"])
136
- txt = "<nodeId><NodeA /><NodeB /><NodeC><NodeD /></NodeC></nodeId>\n"
137
- blk.call(txt)
138
- true
166
+ assert_equal(/.+/, telnet_config["Match"])
167
+ assert_equal(1, telnet_config["Timeout"])
168
+ txt = "<nodeId><NodeA /><NodeB /><NodeC><NodeD /></NodeC></nodeId>\n"
169
+ blk.call(txt)
170
+ true
139
171
  end
140
172
  connection = Minitest::Mock.new
141
173
  profiler = Profiler.new(config: config)
@@ -144,9 +176,11 @@ module RokuBuilder
144
176
  connection.expect(:waitfor, nil, &waitfor)
145
177
  connection.expect(:close, nil)
146
178
 
147
- Net::Telnet.stub(:new, connection) do
148
- profiler.stub(:print, nil) do
149
- profiler.profile(options: options)
179
+ RokuBuilder.stub(:device_manager, @device_manager) do
180
+ Net::Telnet.stub(:new, connection) do
181
+ profiler.stub(:print, nil) do
182
+ profiler.profile(options: options)
183
+ end
150
184
  end
151
185
  end
152
186
  connection.verify
@@ -154,12 +188,16 @@ module RokuBuilder
154
188
  def test_profiler_images
155
189
  options = {profile: "images"}
156
190
  config, options = build_config_options_objects(ProfilerTest, options, false)
191
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
192
+ @device_manager.expect(:reserve_device, device, no_lock: true)
193
+ @device_manager.expect(:release_device, nil, [device])
194
+
157
195
  waitfor = Proc.new do |telnet_config, &blk|
158
- assert_equal(/.+/, telnet_config["Match"])
159
- assert_equal(1, telnet_config["Timeout"])
160
- txt = " RoGraphics instance\n0x234 1 2 3 4\nAvailable memory\n"
161
- blk.call(txt)
162
- true
196
+ assert_equal(/.+/, telnet_config["Match"])
197
+ assert_equal(1, telnet_config["Timeout"])
198
+ txt = " RoGraphics instance\n0x234 1 2 3 4\nAvailable memory\n"
199
+ blk.call(txt)
200
+ true
163
201
  end
164
202
  connection = Minitest::Mock.new
165
203
  profiler = Profiler.new(config: config)
@@ -168,9 +206,11 @@ module RokuBuilder
168
206
  connection.expect(:waitfor, nil, &waitfor)
169
207
  connection.expect(:close, nil)
170
208
 
171
- Net::Telnet.stub(:new, connection) do
172
- profiler.stub(:print, nil) do
173
- profiler.profile(options: options)
209
+ RokuBuilder.stub(:device_manager, @device_manager) do
210
+ Net::Telnet.stub(:new, connection) do
211
+ profiler.stub(:print, nil) do
212
+ profiler.profile(options: options)
213
+ end
174
214
  end
175
215
  end
176
216
 
@@ -180,12 +220,16 @@ module RokuBuilder
180
220
  def test_profiler_memmory
181
221
  options = {profile: "memmory"}
182
222
  config, options = build_config_options_objects(ProfilerTest, options, false)
223
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
224
+ @device_manager.expect(:reserve_device, device, no_lock: true)
225
+ @device_manager.expect(:release_device, nil, [device])
226
+
183
227
  waitfor = Proc.new do |telnet_config, &blk|
184
- assert_equal(/.+/, telnet_config["Match"])
185
- assert_equal(1, telnet_config["Timeout"])
186
- txt = " RoGraphics instance 0x123\nAvailable memory 123 used 456 max 579\n"
187
- blk.call(txt)
188
- true
228
+ assert_equal(/.+/, telnet_config["Match"])
229
+ assert_equal(1, telnet_config["Timeout"])
230
+ txt = " RoGraphics instance 0x123\nAvailable memory 123 used 456 max 579\n"
231
+ blk.call(txt)
232
+ true
189
233
  end
190
234
  print_count = 0
191
235
  print_stub = Proc.new do |message|
@@ -216,9 +260,11 @@ module RokuBuilder
216
260
  connection.expect(:puts, nil, &puts_stub)
217
261
  connection.expect(:close, nil)
218
262
 
219
- Net::Telnet.stub(:new, connection) do
220
- profiler.stub(:print, print_stub) do
221
- profiler.profile(options: options)
263
+ RokuBuilder.stub(:device_manager, @device_manager) do
264
+ Net::Telnet.stub(:new, connection) do
265
+ profiler.stub(:print, print_stub) do
266
+ profiler.profile(options: options)
267
+ end
222
268
  end
223
269
  end
224
270
 
@@ -228,15 +274,19 @@ module RokuBuilder
228
274
  def test_profiler_textures
229
275
  options = {profile: "textures"}
230
276
  config, options = build_config_options_objects(ProfilerTest, options, false)
277
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
278
+ @device_manager.expect(:reserve_device, device, no_lock: true)
279
+ @device_manager.expect(:release_device, nil, [device])
280
+
231
281
  waitfor = Proc.new do |telnet_config, &blk|
232
- assert_equal(/.+/, telnet_config["Match"])
233
- assert_equal(1, telnet_config["Timeout"])
234
- txt = "*******\ntexture\n"
235
- blk.call(txt)
236
- true
282
+ assert_equal(/.+/, telnet_config["Match"])
283
+ assert_equal(1, telnet_config["Timeout"])
284
+ txt = "*******\ntexture\n"
285
+ blk.call(txt)
286
+ true
237
287
  end
238
288
  timeout = Proc.new do |telnet_config, &blk|
239
- raise ::Net::ReadTimeout
289
+ raise ::Net::ReadTimeout
240
290
  end
241
291
  connection = Minitest::Mock.new
242
292
  profiler = Profiler.new(config: config)
@@ -246,9 +296,11 @@ module RokuBuilder
246
296
  connection.expect(:waitfor, nil, &timeout)
247
297
  connection.expect(:close, nil)
248
298
 
249
- Net::Telnet.stub(:new, connection) do
250
- profiler.stub(:print, nil) do
251
- profiler.profile(options: options)
299
+ RokuBuilder.stub(:device_manager, @device_manager) do
300
+ Net::Telnet.stub(:new, connection) do
301
+ profiler.stub(:print, nil) do
302
+ profiler.profile(options: options)
303
+ end
252
304
  end
253
305
  end
254
306
 
@@ -257,19 +309,30 @@ module RokuBuilder
257
309
  def test_profiler_devlog
258
310
  options = {devlog: "rendezvous", devlog_function: "on"}
259
311
  config, options = build_config_options_objects(ProfilerTest, options, false)
312
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
313
+ @device_manager.expect(:reserve_device, device, no_lock: true)
314
+ @device_manager.expect(:release_device, nil, [device])
260
315
 
261
316
  connection = Minitest::Mock.new
262
317
  connection.expect(:puts, nil, ["enhanced_dev_log rendezvous on\n"])
263
318
 
264
319
  profiler = Profiler.new(config: config)
265
- Net::Telnet.stub(:new, connection) do
266
- profiler.devlog(options: options)
320
+ RokuBuilder.stub(:device_manager, @device_manager) do
321
+ Net::Telnet.stub(:new, connection) do
322
+ profiler.stub(:print, nil) do
323
+ profiler.devlog(options: options)
324
+ end
325
+ end
267
326
  end
268
327
  connection.verify
269
328
  end
270
329
  def test_profiler_sgperf
271
330
  options = {sgperf: true}
272
331
  config, options = build_config_options_objects(ProfilerTest, options, false)
332
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
333
+ @device_manager.expect(:reserve_device, device, no_lock: true)
334
+ @device_manager.expect(:release_device, nil, [device])
335
+
273
336
  profiler = Profiler.new(config: config)
274
337
 
275
338
  connection = Object.new
@@ -298,11 +361,15 @@ module RokuBuilder
298
361
  raise Net::ReadTimeout
299
362
  }
300
363
 
301
- Net::Telnet.stub(:new, connection) do
302
- connection.stub(:puts, puts_stub) do
303
- txt = ">>thread node calls: create 0 + op 24 @ 100.0% rendezvous"
304
- connection.stub(:waitfor, waitfor, txt) do
305
- profiler.sgperf(options: options)
364
+ RokuBuilder.stub(:device_manager, @device_manager) do
365
+ Net::Telnet.stub(:new, connection) do
366
+ connection.stub(:puts, puts_stub) do
367
+ txt = ">>thread node calls: create 0 + op 24 @ 100.0% rendezvous"
368
+ connection.stub(:waitfor, waitfor, txt) do
369
+ profiler.stub(:print, nil) do
370
+ profiler.sgperf(options: options)
371
+ end
372
+ end
306
373
  end
307
374
  end
308
375
  end
@@ -315,6 +382,10 @@ module RokuBuilder
315
382
  def test_profiler_sgperf_multi_lines
316
383
  options = {sgperf: true}
317
384
  config, options = build_config_options_objects(ProfilerTest, options, false)
385
+ device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
386
+ @device_manager.expect(:reserve_device, device, no_lock: true)
387
+ @device_manager.expect(:release_device, nil, [device])
388
+
318
389
  profiler = Profiler.new(config: config)
319
390
 
320
391
  connection = Object.new
@@ -357,11 +428,15 @@ module RokuBuilder
357
428
  call_count += 1
358
429
  }
359
430
 
360
- Net::Telnet.stub(:new, connection) do
361
- connection.stub(:puts, connection_puts) do
362
- profiler.stub(:get_command_response, command_response) do
363
- profiler.stub(:puts, profiler_puts) do
364
- profiler.sgperf(options: options)
431
+ RokuBuilder.stub(:device_manager, @device_manager) do
432
+ Net::Telnet.stub(:new, connection) do
433
+ connection.stub(:puts, connection_puts) do
434
+ profiler.stub(:get_command_response, command_response) do
435
+ profiler.stub(:puts, profiler_puts) do
436
+ profiler.stub(:print, nil) do
437
+ profiler.sgperf(options: options)
438
+ end
439
+ end
365
440
  end
366
441
  end
367
442
  end