run_loop 0.1.0.pre8 → 0.1.0.pre9
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 +4 -4
- data/lib/run_loop/core.rb +38 -24
- data/lib/run_loop/version.rb +1 -1
- data/scripts/run_loop_fast_uia.js +2 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d07182bfd4a970c2acfe923ac8b5a94650149db
|
4
|
+
data.tar.gz: 4abbd2fdc27bcd848bcb02b8fc86989cca82e1e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f988014195fbc3525edc9b43539eb440d418186ef57be437a01fcbc60e410dc017703e7ff4045643fe495b312a49ebcf65445787b9e6f314a2f76825cd92fabf
|
7
|
+
data.tar.gz: 6518e52d8cd49c979042debf89f989e659343b96f413b1862cde461bdccc8954f59e1a0b29cb2ac459c2d292fa397ef108807763492b4df54b6058d58a5ea81b
|
data/lib/run_loop/core.rb
CHANGED
@@ -54,8 +54,8 @@ module RunLoop
|
|
54
54
|
log_file = options[:log_path]
|
55
55
|
timeout = options[:timeout] || 30
|
56
56
|
|
57
|
-
results_dir = options[:results_dir] || Dir.mktmpdir(
|
58
|
-
results_dir_trace = File.join(results_dir,
|
57
|
+
results_dir = options[:results_dir] || Dir.mktmpdir('run_loop')
|
58
|
+
results_dir_trace = File.join(results_dir, 'trace')
|
59
59
|
FileUtils.mkdir_p(results_dir_trace)
|
60
60
|
|
61
61
|
dependencies = options[:dependencies] || []
|
@@ -64,17 +64,17 @@ module RunLoop
|
|
64
64
|
FileUtils.cp(dep, results_dir)
|
65
65
|
end
|
66
66
|
|
67
|
-
script = File.join(results_dir,
|
67
|
+
script = File.join(results_dir, '_run_loop.js')
|
68
68
|
|
69
69
|
|
70
70
|
code = File.read(options[:script])
|
71
71
|
code = code.gsub(/\$PATH/, results_dir)
|
72
|
-
code = code.gsub(/\$MODE/,
|
72
|
+
code = code.gsub(/\$MODE/, 'FLUSH') unless options[:no_flush]
|
73
73
|
|
74
|
-
repl_path = File.join(results_dir,
|
75
|
-
File.open(repl_path,
|
74
|
+
repl_path = File.join(results_dir, 'repl-cmd.txt')
|
75
|
+
File.open(repl_path, 'w') { |file| file.puts "0:UIALogger.logMessage('Listening for run loop commands');" }
|
76
76
|
|
77
|
-
File.open(script,
|
77
|
+
File.open(script, 'w') { |file| file.puts code }
|
78
78
|
|
79
79
|
|
80
80
|
bundle_dir_or_bundle_id = options[:app] || ENV['BUNDLE_ID']|| ENV['APP_BUNDLE_PATH'] || ENV['APP']
|
@@ -96,7 +96,7 @@ module RunLoop
|
|
96
96
|
device = options[:device] || :iphone
|
97
97
|
device = device && device.to_sym
|
98
98
|
|
99
|
-
plistbuddy=
|
99
|
+
plistbuddy='/usr/libexec/PlistBuddy'
|
100
100
|
plistfile="#{bundle_dir_or_bundle_id}/Info.plist"
|
101
101
|
if device == :iphone
|
102
102
|
uidevicefamily=1
|
@@ -133,10 +133,16 @@ module RunLoop
|
|
133
133
|
|
134
134
|
end
|
135
135
|
|
136
|
-
cmd = instruments_command(udid
|
136
|
+
cmd = instruments_command(options.merge(:udid => udid,
|
137
|
+
:results_dir_trace => results_dir_trace,
|
138
|
+
:bundle_dir_or_bundle_id => bundle_dir_or_bundle_id,
|
139
|
+
:results_dir => results_dir,
|
140
|
+
:script => script,
|
141
|
+
:log_file => log_file,
|
142
|
+
:args => args))
|
137
143
|
|
138
144
|
log_header("Starting on #{device_target} App: #{bundle_dir_or_bundle_id}")
|
139
|
-
cmd_str = cmd.join(
|
145
|
+
cmd_str = cmd.join(' ')
|
140
146
|
if ENV['DEBUG']
|
141
147
|
log(cmd_str)
|
142
148
|
end
|
@@ -150,7 +156,7 @@ module RunLoop
|
|
150
156
|
|
151
157
|
Process.detach(pid)
|
152
158
|
|
153
|
-
File.open(File.join(results_dir,
|
159
|
+
File.open(File.join(results_dir, 'run_loop.pid'), 'w') do |f|
|
154
160
|
f.write pid
|
155
161
|
end
|
156
162
|
|
@@ -203,7 +209,7 @@ module RunLoop
|
|
203
209
|
|
204
210
|
|
205
211
|
tmp_cmd = File.join(File.dirname(repl_path), '__repl-cmd.txt')
|
206
|
-
File.open(tmp_cmd,
|
212
|
+
File.open(tmp_cmd, 'w') do |f|
|
207
213
|
f.write("#{index}:#{cmd}")
|
208
214
|
if ENV['DEBUG']
|
209
215
|
puts "Wrote: #{index}:#{cmd}"
|
@@ -235,7 +241,7 @@ module RunLoop
|
|
235
241
|
end
|
236
242
|
index_if_found = output.index(START_DELIMITER)
|
237
243
|
if ENV['DEBUG_READ']=='1'
|
238
|
-
puts output.gsub(
|
244
|
+
puts output.gsub('*', '')
|
239
245
|
puts "Size #{size}"
|
240
246
|
puts "offset #{offset}"
|
241
247
|
puts "index_of #{START_DELIMITER}: #{index_if_found}"
|
@@ -309,15 +315,23 @@ module RunLoop
|
|
309
315
|
end
|
310
316
|
|
311
317
|
|
312
|
-
def self.instruments_command(
|
318
|
+
def self.instruments_command(options)
|
319
|
+
udid = options[:udid]
|
320
|
+
results_dir_trace = options[:results_dir_trace]
|
321
|
+
bundle_dir_or_bundle_id = options[:bundle_dir_or_bundle_id]
|
322
|
+
results_dir = options[:results_dir]
|
323
|
+
script = options[:script]
|
324
|
+
log_file = options[:log_file]
|
325
|
+
args= options[:args] || []
|
326
|
+
|
313
327
|
instruments_prefix = instruments_command_prefix(udid, results_dir_trace)
|
314
328
|
cmd = [
|
315
329
|
instruments_prefix,
|
316
|
-
|
330
|
+
'-t', automation_template,
|
317
331
|
"\"#{bundle_dir_or_bundle_id}\"",
|
318
|
-
|
319
|
-
|
320
|
-
args.join(
|
332
|
+
'-e', 'UIARESULTSPATH', results_dir,
|
333
|
+
'-e', 'UIASCRIPT', script,
|
334
|
+
args.join(' ')
|
321
335
|
]
|
322
336
|
if log_file
|
323
337
|
cmd << "&> #{log_file}"
|
@@ -334,12 +348,12 @@ module RunLoop
|
|
334
348
|
|
335
349
|
def self.default_tracetemplate
|
336
350
|
xcode_path = `xcode-select -print-path`.chomp
|
337
|
-
automation_bundle = File.expand_path(File.join(xcode_path,
|
351
|
+
automation_bundle = File.expand_path(File.join(xcode_path, '..', 'Applications', 'Instruments.app', 'Contents', 'PlugIns', 'AutomationInstrument.bundle'))
|
338
352
|
if not File.exist? automation_bundle
|
339
|
-
automation_bundle= File.expand_path(File.join(xcode_path,
|
340
|
-
raise
|
353
|
+
automation_bundle= File.expand_path(File.join(xcode_path, 'Platforms', 'iPhoneOS.platform', 'Developer', 'Library', 'Instruments', 'PlugIns', 'AutomationInstrument.bundle'))
|
354
|
+
raise 'Unable to find AutomationInstrument.bundle' if not File.exist? automation_bundle
|
341
355
|
end
|
342
|
-
File.join(automation_bundle,
|
356
|
+
File.join(automation_bundle, 'Contents', 'Resources', 'Automation.tracetemplate')
|
343
357
|
end
|
344
358
|
|
345
359
|
def self.log(message)
|
@@ -371,7 +385,7 @@ module RunLoop
|
|
371
385
|
|
372
386
|
def self.instruments_pids
|
373
387
|
pids_str = `ps x -o pid,command | grep -v grep | grep "instruments" | awk '{printf "%s,", $1}'`.strip
|
374
|
-
pids_str.split(
|
388
|
+
pids_str.split(',').map { |pid| pid.to_i }
|
375
389
|
end
|
376
390
|
|
377
391
|
end
|
@@ -420,7 +434,7 @@ module RunLoop
|
|
420
434
|
FileUtils.mkdir_p(dest)
|
421
435
|
|
422
436
|
if results_dir
|
423
|
-
pngs = Dir.glob(File.join(results_dir,
|
437
|
+
pngs = Dir.glob(File.join(results_dir, 'Run 1', '*.png'))
|
424
438
|
else
|
425
439
|
pngs = []
|
426
440
|
end
|
data/lib/run_loop/version.rb
CHANGED
@@ -329,9 +329,8 @@ UIATarget.localTarget().frontMostApp().setPreferencesValueForKey(null, __calabas
|
|
329
329
|
UIATarget.localTarget().frontMostApp().setPreferencesValueForKey(0, __calabashRequest);
|
330
330
|
|
331
331
|
Log.result('success',true,true);
|
332
|
-
|
332
|
+
target = UIATarget.localTarget();
|
333
333
|
while (true) {
|
334
|
-
target = UIATarget.localTarget();
|
335
334
|
try {
|
336
335
|
preferences = target.frontMostApp().preferencesValueForKey(__calabashRequest);
|
337
336
|
} catch (e) {
|
@@ -349,7 +348,7 @@ while (true) {
|
|
349
348
|
if (!isNaN(_actualIndex) && _actualIndex >= _expectedIndex) {
|
350
349
|
_exp = preferences['command'];
|
351
350
|
UIALogger.logMessage("index " + _actualIndex + " is command: "+ _exp);
|
352
|
-
target.frontMostApp().setPreferencesValueForKey(
|
351
|
+
target.frontMostApp().setPreferencesValueForKey(null, __calabashRequest);
|
353
352
|
try {
|
354
353
|
_result = eval(_exp);
|
355
354
|
UIALogger.logMessage("Success: "+ _result);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: run_loop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.pre9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Krukow
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|