run_loop 0.0.22 → 0.1.0.pre1

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: c4c9ae30a399869907b6160aaabf933532272528
4
- data.tar.gz: 5db3c2b9c173101686590d3048a15a43ff73fb02
3
+ metadata.gz: a964878f5f254c2251799bb935534e9e42b68fdb
4
+ data.tar.gz: eee14a802d715caeb9758232d5a8e01e9a8d18ed
5
5
  SHA512:
6
- metadata.gz: a3c31f4c84d8a16eeb1e9f7fd5d5f758d5e14aa7ebe6fac19d4b950f19d4554040e0e2939eb54b39a08743346e2bb0d19b7f71113ed3de5058786bcf9fc900d7
7
- data.tar.gz: d9b522821579cd706750a0baf7d9efba560494a0fb1682b0d48ceb142a560ac9f6e8a074b771bbdb984614b929962bd7b0651be41f92a181038a878b1cf2e302
6
+ metadata.gz: dc29867d1bcf79cb9b1e2c5dd1657840a76695b4f39ef5e3d0b3382bd2d4a89e94e0b8c6934969b6a3aa6764839a77023dbe5c667a94269e8b0423e480fc471c
7
+ data.tar.gz: 73aeac53bfa5316ace1ede7d475d31b2264d7fcd1b1d9d6c264f126ac8083e45162a5e6e9a1c27d534b30d1bef7cf38f78d916910ac3d2e5d1295ace317df13f
data/lib/run_loop/core.rb CHANGED
@@ -148,21 +148,23 @@ module RunLoop
148
148
 
149
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}
150
150
 
151
- #read_response(run_loop,0)
152
151
  before = Time.now
153
152
  begin
154
153
  Timeout::timeout(timeout, TimeoutError) do
155
154
  read_response(run_loop, 0)
156
155
  end
157
156
  rescue TimeoutError => e
158
- puts "Failed to launch\n"
159
- puts "device_target=#{device_target}"
160
- puts "udid=#{udid}"
161
- puts "bundle_dir_or_bundle_id=#{bundle_dir_or_bundle_id}"
162
- puts "script=#{script}"
163
- puts "log_file=#{log_file}"
164
- puts "timeout=#{timeout}"
165
- puts "args=#{args}"
157
+ if ENV['DEBUG']
158
+ puts "Failed to launch\n"
159
+ puts "reason=#{e}: #{e && e.message} "
160
+ puts "device_target=#{device_target}"
161
+ puts "udid=#{udid}"
162
+ puts "bundle_dir_or_bundle_id=#{bundle_dir_or_bundle_id}"
163
+ puts "script=#{script}"
164
+ puts "log_file=#{log_file}"
165
+ puts "timeout=#{timeout}"
166
+ puts "args=#{args}"
167
+ end
166
168
  raise TimeoutError, "Time out waiting for UIAutomation run-loop to Start. \n Logfile #{log_file} \n\n #{File.read(log_file)}\n"
167
169
  end
168
170
 
@@ -215,6 +217,10 @@ module RunLoop
215
217
 
216
218
  size = File.size(log_file)
217
219
  output = File.read(log_file, size-offset, offset)
220
+
221
+ if /AXError: Could not auto-register for pid status change/.match(output)
222
+ raise TimeoutError.new('AXError: Could not auto-register for pid status change')
223
+ end
218
224
  index_if_found = output.index(START_DELIMITER)
219
225
  if ENV['DEBUG_READ']=='1'
220
226
  puts output.gsub("*", '')
@@ -246,6 +252,9 @@ module RunLoop
246
252
 
247
253
  offset = offset + json.size
248
254
  parsed_result = JSON.parse(json)
255
+ if ENV['DEBUG_READ']=='1'
256
+ p parsed_result
257
+ end
249
258
  json_index_if_present = parsed_result['index']
250
259
  if json_index_if_present && json_index_if_present == expected_index
251
260
  result = parsed_result
@@ -1,3 +1,3 @@
1
1
  module RunLoop
2
- VERSION = '0.0.22'
2
+ VERSION = '0.1.0.pre1'
3
3
  end
data/scripts/run_loop.js CHANGED
@@ -147,26 +147,15 @@ if (typeof JSON !== 'object') {
147
147
  }
148
148
  }());
149
149
 
150
- var commandPath = "$PATH";
151
- if (!/\/$/.test(commandPath)) {
152
- commandPath += "/";
153
- }
154
- commandPath += "repl-cmd.txt";
155
-
156
150
 
157
151
  var _expectedIndex = 0,//expected index of next command
158
- _actualIndex,//actual index of next command by reading commandPath
159
- _index,//index of ':' char in command
152
+ _actualIndex=0,//actual index of next command by reading commandPath
160
153
  _exp,//expression to be eval'ed
161
- _result,//result of eval
162
- _input,//command
163
- _process;//host command process
154
+ _result;
164
155
 
165
156
  var Log = (function () {
166
- // According to Appium,
167
- //16384 is the buffer size used by instruments
168
157
  var forceFlush = [],
169
- N = "$MODE" == "FLUSH" ? 16384 : 0,
158
+ N = 16384,
170
159
  i = N;
171
160
  while (i--) {
172
161
  forceFlush[i] = "*";
@@ -179,17 +168,14 @@ var Log = (function () {
179
168
  }
180
169
 
181
170
  return {
182
- result: function (status, data) {
171
+ result: function (status, data,flush) {
183
172
  log_json({"status": status, "value": data, "index":_actualIndex})
184
- if (forceFlush.length > 0) {
173
+ if (flush) {
185
174
  UIALogger.logMessage(forceFlush);
186
175
  }
187
176
  },
188
177
  output: function (msg) {
189
178
  log_json({"output": msg,"last_index":_actualIndex});
190
- if (forceFlush.length > 0) {
191
- UIALogger.logMessage(forceFlush);
192
- }
193
179
  }
194
180
  };
195
181
  })();
@@ -217,8 +203,7 @@ function isLocationPrompt(alert) {
217
203
  ["Ja", /Darf (?:.)+ Ihren aktuellen Ort verwenden/]
218
204
  ],
219
205
  ans, exp,
220
- txt,
221
- txts;
206
+ txt;
222
207
 
223
208
  txt = findAlertViewText(alert);
224
209
  for (var i = 0; i < exps.length; i++) {
@@ -263,53 +248,63 @@ UIATarget.onAlert = function (alert) {
263
248
 
264
249
 
265
250
  var target = null,
266
- host = null;
251
+ preferences = null,
252
+ __calabashRequest = "__calabashRequest",
253
+ __calabashResponse = "__calabashResponse",
254
+ _response = function(response) {
255
+ target.frontMostApp().setPreferencesValueForKey(response, __calabashResponse);
256
+ },
257
+ _success = function(result,index) {
258
+ _response({"status":'success', "value":result, "index": index});
267
259
 
260
+ },
261
+ _failure = function(err, index) {
262
+ _response({"status":'error',
263
+ "value":err.toString(),
264
+ "backtrace":(err.stack ? err.stack.toString() : ""),
265
+ "index":index});
266
+ };
268
267
 
268
+ UIATarget.localTarget().frontMostApp().setPreferencesValueForKey(null, __calabashResponse);
269
+ UIATarget.localTarget().frontMostApp().setPreferencesValueForKey(0, __calabashRequest);
270
+
271
+ Log.result('success',true,true);
269
272
 
270
273
  while (true) {
271
274
  target = UIATarget.localTarget();
272
- host = target.host();
273
- target.delay(0.2);
274
275
  try {
275
- _process = host.performTaskWithPathArgumentsTimeout("/bin/cat",
276
- [commandPath],
277
- 2);
278
-
276
+ preferences = target.frontMostApp().preferencesValueForKey(__calabashRequest);
279
277
  } catch (e) {
280
- Log.output("Timeout on cat...");
278
+ Log.output("Unable to read preferences..."+ e.toString());
279
+ target.delay(0.5);
281
280
  continue;
282
281
  }
283
- if (_process.exitCode != 0) {
284
- Log.output("unable to execute /bin/cat " + commandPath + " exitCode " + _process.exitCode + ". Error: " + _process.stderr);
282
+
283
+ if (!preferences) {
284
+ target.delay(0.2);
285
+ continue;
285
286
  }
286
- else {
287
- _input = _process.stdout;
288
- try {
289
- _index = _input.indexOf(":", 0);
290
- if (_index > -1) {
291
- _actualIndex = parseInt(_input.substring(0, _index), 10);
292
- if (!isNaN(_actualIndex) && _actualIndex >= _expectedIndex) {
293
- _exp = _input.substring(_index + 1, _input.length);
294
- _result = eval(_exp);
295
- }
296
- else {//likely old command is lingering...
297
- continue;
298
- }
299
- }
300
- else {
301
- continue;
302
- }
303
287
 
288
+ _actualIndex = preferences['index'];
289
+ if (!isNaN(_actualIndex) && _actualIndex >= _expectedIndex) {
290
+ _exp = preferences['command'];
291
+ UIALogger.logMessage("index " + _actualIndex + " is command: "+ _exp);
292
+ target.frontMostApp().setPreferencesValueForKey(null, __calabashRequest);
293
+ try {
294
+ _result = eval(_exp);
295
+ UIALogger.logMessage("Success: "+ _result);
296
+ _success(_result, _actualIndex);
304
297
  }
305
- catch (err) {
306
- Log.result("error", err.toString() + " " + (err.stack ? err.stack.toString() : ""));
307
- _expectedIndex++;
308
- continue;
298
+ catch(err) {
299
+ UIALogger.logMessage("Failure: "+ err.toString() + " " + (err.stack ? err.stack.toString() : ""));
300
+ _failure(err, _actualIndex);
309
301
  }
302
+ }
303
+ else {//likely old command is lingering...
304
+ continue;
305
+ }
306
+ _expectedIndex++;
310
307
 
311
- _expectedIndex++;
312
- Log.result("success", _result);
313
308
 
314
- }
309
+ target.delay(0.2);
315
310
  }
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.22
4
+ version: 0.1.0.pre1
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-10-27 00:00:00.000000000 Z
11
+ date: 2013-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -84,9 +84,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
84
84
  version: '0'
85
85
  required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - '>'
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 1.3.1
90
90
  requirements: []
91
91
  rubyforge_project:
92
92
  rubygems_version: 2.0.2