run_loop 0.0.19 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e28f0fffdaffee568375402ca313bf41c6ffabc9
4
- data.tar.gz: c24a6b8dd934ee6ba2e09a269330f7e0b70df566
3
+ metadata.gz: be6623163af4dc2e54253b91dc9ac4009576ae25
4
+ data.tar.gz: 922198cf53cf9177a755e22468b4c857e486f520
5
5
  SHA512:
6
- metadata.gz: c919337cd9929d26d299bba0bf06496c5167c56b83879450be35af542d0ed133ba03065211c9e0c7b0f30502f96304ca4f9acee975358c5fa1332da255738220
7
- data.tar.gz: 939f9acca939d80c076e6cad7a473a421091d61cbfaa7803661118b01a311e9ffb507b3f64777be0d0b4d074708c6313b222aba9ee17f316c549b259aa7614c2
6
+ metadata.gz: dd0b3bd9704d93aa20438ffb7d39f402f2dc5406186f0f31c4ea04c4c88d09562670f8d700d6e6d85d24d3e2d4225c492178431e95bba8b728d926da67b5caea
7
+ data.tar.gz: 6aeb1107fd78c2f4bb2fe2c0bc155571cb0637bfe75bcb06022b51247f7ba4b5e574d1883a64e2f2e253e27a43710ce66c61abc1b39c8c81e94619a527fe4bcc
data/lib/run_loop/core.rb CHANGED
@@ -30,16 +30,28 @@ module RunLoop
30
30
  File.join(scripts_path, SCRIPTS[key])
31
31
  end
32
32
 
33
+ def self.detect_connected_device
34
+ begin
35
+ Timeout::timeout(1, TimeoutError) do
36
+ return `#{File.join(scripts_path, 'udidetect')}`.chomp
37
+ end
38
+ rescue TimeoutError => e
39
+ `killall udidetect &> /dev/null`
40
+ end
41
+ nil
42
+ end
43
+
33
44
  def self.run_with_options(options)
45
+ before = Time.now
34
46
  ensure_instruments_not_running!
35
47
 
36
- device = options[:device] || :iphone
37
- udid = options[:udid]
38
- timeout = options[:timeout] || 15
48
+ device_target = options[:udid] || options[:device_target] || detect_connected_device || 'simulator'
49
+ if device_target && device_target.to_s.downcase == 'device'
50
+ device_target = detect_connected_device
51
+ end
39
52
 
40
53
  log_file = options[:log_path]
41
-
42
-
54
+ timeout = options[:timeout] || 15
43
55
 
44
56
  results_dir = options[:results_dir] || Dir.mktmpdir("run_loop")
45
57
  results_dir_trace = File.join(results_dir, "trace")
@@ -64,15 +76,25 @@ module RunLoop
64
76
  File.open(script, "w") { |file| file.puts code }
65
77
 
66
78
 
67
- bundle_dir_or_bundle_id = options[:app] || ENV['BUNDLE_ID']|| ENV['APP_BUNDLE_PATH']
79
+ bundle_dir_or_bundle_id = options[:app] || ENV['BUNDLE_ID']|| ENV['APP_BUNDLE_PATH'] || ENV['APP']
68
80
 
69
81
  unless bundle_dir_or_bundle_id
70
- raise 'key :app or environment variable APP_BUNDLE_PATH or BUNDLE_ID must be specified as path to app bundle (simulator) or bundle id (device)'
82
+ raise 'key :app or environment variable APP_BUNDLE_PATH, BUNDLE_ID or APP must be specified as path to app bundle (simulator) or bundle id (device)'
71
83
  end
72
84
 
73
- if File.exist?(bundle_dir_or_bundle_id)
74
- #Assume simulator
75
- udid = nil
85
+
86
+ udid = nil
87
+
88
+ if device_target == 'simulator'
89
+
90
+ unless File.exist?(bundle_dir_or_bundle_id)
91
+ raise "Unable to find app in directory #{bundle_dir_or_bundle_id} when trying to launch simulator"
92
+ end
93
+
94
+
95
+ device = options[:device] || :iphone
96
+ device = device && device.to_sym
97
+
76
98
  plistbuddy="/usr/libexec/PlistBuddy"
77
99
  plistfile="#{bundle_dir_or_bundle_id}/Info.plist"
78
100
  if device == :iphone
@@ -84,27 +106,33 @@ module RunLoop
84
106
  system("#{plistbuddy} -c 'Add :UIDeviceFamily array' '#{plistfile}'")
85
107
  system("#{plistbuddy} -c 'Add :UIDeviceFamily:0 integer #{uidevicefamily}' '#{plistfile}'")
86
108
  else
87
- unless udid
88
- begin
89
- Timeout::timeout(3, TimeoutError) do
90
- udid = `#{File.join(scripts_path, 'udidetect')}`.chomp
91
- end
92
- rescue TimeoutError => e
109
+ udid = device_target
110
+ bundle_dir_or_bundle_id = options[:bundle_id] if options[:bundle_id]
111
+ end
93
112
 
94
- end
95
- unless udid
96
- raise "Unable to find connected device."
97
- end
98
- end
113
+ log_file ||= File.join(results_dir, 'run_loop.out')
99
114
 
115
+ if ENV['DEBUG']=='1'
116
+ p options
117
+ puts "device_target=#{device_target}"
118
+ puts "udid=#{udid}"
119
+ puts "bundle_dir_or_bundle_id=#{bundle_dir_or_bundle_id}"
120
+ puts "script=#{script}"
121
+ puts "log_file=#{log_file}"
100
122
  end
101
123
 
102
- log_file ||= File.join(results_dir, 'run_loop.out')
124
+ after = Time.now
125
+
126
+ if ENV['DEBUG']=='1'
127
+ puts "Preparation took #{after-before} seconds"
128
+
129
+ end
103
130
 
104
131
  cmd = instruments_command(udid, results_dir_trace, bundle_dir_or_bundle_id, results_dir, script, log_file)
105
132
 
133
+
106
134
  pid = fork do
107
- log_header("Starting App: #{bundle_dir_or_bundle_id}")
135
+ log_header("Starting on #{device_target} App: #{bundle_dir_or_bundle_id}")
108
136
  cmd_str = cmd.join(" ")
109
137
  if ENV['DEBUG']
110
138
  log(cmd_str)
@@ -121,6 +149,7 @@ module RunLoop
121
149
  run_loop = {:pid => pid, :udid => udid, :app => bundle_dir_or_bundle_id, :repl_path => repl_path, :log_file => log_file, :results_dir => results_dir}
122
150
 
123
151
  #read_response(run_loop,0)
152
+ before = Time.now
124
153
  begin
125
154
  Timeout::timeout(timeout, TimeoutError) do
126
155
  read_response(run_loop, 0)
@@ -129,6 +158,12 @@ module RunLoop
129
158
  raise TimeoutError, "Time out waiting for UIAutomation run-loop to Start. \n Logfile #{log_file} \n #{File.read(log_file)}"
130
159
  end
131
160
 
161
+ after = Time.now()
162
+
163
+ if ENV['DEBUG']=='1'
164
+ puts "Launching took #{after-before} seconds"
165
+ end
166
+
132
167
  run_loop
133
168
  end
134
169
 
@@ -158,6 +193,7 @@ module RunLoop
158
193
  end
159
194
 
160
195
  def self.read_response(run_loop, expected_index)
196
+
161
197
  log_file = run_loop[:log_file]
162
198
  initial_offset = run_loop[:initial_offset] || 0
163
199
  offset = initial_offset
@@ -165,7 +201,7 @@ module RunLoop
165
201
  result = nil
166
202
  loop do
167
203
  unless File.exist?(log_file) && File.size?(log_file)
168
- sleep(0.5)
204
+ sleep(0.2)
169
205
  next
170
206
  end
171
207
 
@@ -288,8 +324,10 @@ module RunLoop
288
324
 
289
325
  def self.ensure_instruments_not_running!
290
326
  if instruments_running?
291
- puts "Killing instruments"
292
- `killall -9 instruments`
327
+ if ENV['DEBUG']=='1'
328
+ puts "Killing instruments"
329
+ end
330
+ `killall -9 instruments > /dev/null 2>&1`
293
331
  end
294
332
  end
295
333
 
@@ -1,3 +1,3 @@
1
1
  module RunLoop
2
- VERSION = '0.0.19'
2
+ VERSION = '0.0.20'
3
3
  end
@@ -21677,10 +21677,10 @@ calabash_script.core.calculate_swipe_to_offset = function calculate_swipe_to_off
21677
21677
  var base_movement = function() {
21678
21678
  var G__2931 = (new cljs.core.Keyword("\ufdd0'direction")).call(null, options);
21679
21679
  if(cljs.core._EQ_.call(null, "\ufdd0'down", G__2931)) {
21680
- return cljs.core.ObjMap.fromObject(["\ufdd0'x", "\ufdd0'y"], {"\ufdd0'x":x + cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'vertical", "\ufdd0'dx"], true)), "\ufdd0'y":y - cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'vertical", "\ufdd0'dy"], true))})
21680
+ return cljs.core.ObjMap.fromObject(["\ufdd0'x", "\ufdd0'y"], {"\ufdd0'x":x + cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'vertical", "\ufdd0'dx"], true)), "\ufdd0'y":y + cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'vertical", "\ufdd0'dy"], true))})
21681
21681
  }else {
21682
21682
  if(cljs.core._EQ_.call(null, "\ufdd0'up", G__2931)) {
21683
- return cljs.core.ObjMap.fromObject(["\ufdd0'x", "\ufdd0'y"], {"\ufdd0'x":x + cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'vertical", "\ufdd0'dx"], true)), "\ufdd0'y":y + cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'vertical", "\ufdd0'dy"], true))})
21683
+ return cljs.core.ObjMap.fromObject(["\ufdd0'x", "\ufdd0'y"], {"\ufdd0'x":x + cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'vertical", "\ufdd0'dx"], true)), "\ufdd0'y":y - cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'vertical", "\ufdd0'dy"], true))})
21684
21684
  }else {
21685
21685
  if(cljs.core._EQ_.call(null, "\ufdd0'right", G__2931)) {
21686
21686
  return cljs.core.ObjMap.fromObject(["\ufdd0'x", "\ufdd0'y"], {"\ufdd0'x":x + cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'horizontal", "\ufdd0'dx"], true)), "\ufdd0'y":y + cljs.core.get_in.call(null, calabash_script.core.swipe_delta, cljs.core.PersistentVector.fromArray(["\ufdd0'horizontal", "\ufdd0'dy"], true))})
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.0.19
4
+ version: 0.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karl Krukow
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-07 00:00:00.000000000 Z
11
+ date: 2013-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor