crash_monkey 0.2.5 → 0.3.0

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: c7d00bb3a12cb580d83c2657be12edc02cb36951
4
- data.tar.gz: 87323a915276bb35fb28ea14360b234daf9f3168
3
+ metadata.gz: 1979b40cce8bf2c1b770ade1732f143a3969c599
4
+ data.tar.gz: 3766534b86c538ad577e0623812c6361b0ee5d9c
5
5
  SHA512:
6
- metadata.gz: 550b847885f517508a8e334b2930e43c3f56b96f1d80899addad76852eae07da945d2d165d9916964adacdaf9181cb812abf13f3c871c8112245484322ca60b5
7
- data.tar.gz: d127e2e77cd5585751ba030f04242bebba1516cc6c717f21ef50bd7ba5191ac688a86bb8a4791bc8d55a6982531f153834950f61d0f565f62392c17d9c5a0ed3
6
+ metadata.gz: 465a9a9bac762efd27441a6a04e1bfdee24cb18019478d0c2af8a05d028d75fb969aa30a3fa19ca67677fea9876b416e4d518e96c3f9e102c6a6f5192665dee8
7
+ data.tar.gz: c0e4f55852c20b2508a3779f88d7e6404a06610da9a2954060f8d5fc95bd3f56ac97e89e9259d423f21c05142bda2c2b1e2d01737d4e496ea82c8564cf9d7bc6
data/Gemfile.lock CHANGED
@@ -4,11 +4,11 @@ GEM
4
4
  addressable (2.3.6)
5
5
  builder (3.2.2)
6
6
  diff-lcs (1.1.3)
7
- docile (1.1.3)
7
+ docile (1.1.5)
8
8
  erubis (2.7.0)
9
9
  faraday (0.8.9)
10
10
  multipart-post (~> 1.2.0)
11
- git (1.2.6)
11
+ git (1.2.8)
12
12
  github_api (0.10.1)
13
13
  addressable
14
14
  faraday (~> 0.8.1)
@@ -16,7 +16,7 @@ GEM
16
16
  multi_json (~> 1.4)
17
17
  nokogiri (~> 1.5.2)
18
18
  oauth2
19
- hashie (2.0.5)
19
+ hashie (3.3.1)
20
20
  highline (1.6.21)
21
21
  jeweler (1.8.8)
22
22
  builder
@@ -28,20 +28,19 @@ GEM
28
28
  rake
29
29
  rdoc
30
30
  json (1.8.1)
31
- jwt (0.1.11)
32
- multi_json (>= 1.5)
33
- multi_json (1.9.2)
31
+ jwt (1.0.0)
32
+ multi_json (1.10.1)
34
33
  multi_xml (0.5.5)
35
34
  multipart-post (1.2.0)
36
35
  nokogiri (1.5.10)
37
- oauth2 (0.9.3)
36
+ oauth2 (1.0.0)
38
37
  faraday (>= 0.8, < 0.10)
39
- jwt (~> 0.1.8)
38
+ jwt (~> 1.0)
40
39
  multi_json (~> 1.3)
41
40
  multi_xml (~> 0.5)
42
41
  rack (~> 1.2)
43
42
  rack (1.5.2)
44
- rake (10.2.2)
43
+ rake (10.3.2)
45
44
  rdoc (3.12.2)
46
45
  json (~> 1.4)
47
46
  rspec (2.8.0)
@@ -52,9 +51,9 @@ GEM
52
51
  rspec-expectations (2.8.0)
53
52
  diff-lcs (~> 1.1.2)
54
53
  rspec-mocks (2.8.0)
55
- simplecov (0.8.2)
54
+ simplecov (0.9.1)
56
55
  docile (~> 1.1.0)
57
- multi_json
56
+ multi_json (~> 1.0)
58
57
  simplecov-html (~> 0.8.0)
59
58
  simplecov-html (0.8.0)
60
59
 
data/README.md CHANGED
@@ -52,10 +52,11 @@ How to use
52
52
  ### Simple Usage
53
53
 
54
54
  ```
55
- crash_monkey -a <APP_NAME or APP_PATH>
55
+ crash_monkey -a <APP_NAME or APP_PATH> -w <DEVICE>
56
56
  ```
57
57
 
58
58
  `-a` specify AppName or PATH.
59
+ `-w` specify the device on which to run. A list of available devices can be obtained with `crash_monkey --list-devices`. In case no device is specified, it will take the first from the list.
59
60
 
60
61
 
61
62
  #### Example
@@ -78,6 +79,7 @@ crash_monkey -a ~/Library/Developer/Xcode/DerivedData/MyAwesomeApp-ffumcy/Build/
78
79
  % crash_monkey
79
80
  Usage: crash_monkey [options]
80
81
  -a app_name Target Application(Required)
82
+ -w device Target Device(Required)
81
83
  -n run_count How many times monkeys run(default: 2)
82
84
  -d result_dir Where to output result(default: ./crash_monkey_result)
83
85
  -t time_limit_sec Time limit of running(default: 100 sec)
@@ -85,6 +87,7 @@ Usage: crash_monkey [options]
85
87
  -e extend_javascript_path Extend Uiautomation Javascript for such Login scripts
86
88
  --show-config Show Current Configuration JSON
87
89
  --list-app Show List of Installed Apps in iOS Simulator
90
+ --list-devices Show List of Devices
88
91
  --reset-iPhone-Simulator Reset iPhone Simulator
89
92
  ```
90
93
 
@@ -112,6 +115,9 @@ Output configuration for UIAutomation library by JSON format.([example](https://
112
115
  #### --list-app
113
116
  List apps for iPhone Simulator.
114
117
 
118
+ #### --list-devices
119
+ List devices (simulator and attached) on which the monkey can be run.
120
+
115
121
  #### --reset-iPhone-Simulator.
116
122
  Reset iPhone Simulator.
117
123
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.5
1
+ 0.3.0
data/bin/crash_monkey CHANGED
@@ -10,6 +10,7 @@ require 'crash_monkey'
10
10
  opts = {}
11
11
  ARGV.options do |o|
12
12
  o.on('-a app_name', 'Target Application(Required)') {|b| opts[:app_path] = b}
13
+ o.on('-w device', 'Target Device(Required)') {|b| opts[:device] = b}
13
14
  o.on('-n run_count', 'How many times monkeys run(default: 2)') {|b| opts[:run_count] = b.to_i}
14
15
  o.on('-d result_dir', 'Where to output result(default: ./crash_monkey_result)') {|b| opts[:result_base_dir] = File.expand_path(b)}
15
16
  o.on('-t time_limit_sec', 'Time limit of running(default: 100 sec)') {|b| opts[:time_limit_sec] = b.to_i}
@@ -17,6 +18,7 @@ ARGV.options do |o|
17
18
  o.on('-e extend_javascript_path', 'Extend Uiautomation Javascript for such Login scripts') {|b| opts[:extend_javascript_path] = File.expand_path(b)}
18
19
  o.on('--show-config', 'Show Current Configuration JSON') {|_| opts[:show_config] = true}
19
20
  o.on('--list-app', 'Show List of Installed Apps in iOS Simulator') {|_| opts[:list_app] = true}
21
+ o.on('--list-devices', 'Show List of Devices') {|_| opts[:list_devices] = true}
20
22
  o.on('--reset-iPhone-Simulator', 'Reset iPhone Simulator'){|_| opts[:reset_iphone_simulator] = true}
21
23
  o.on('--version', 'print crash monkey version'){|_| opts[:version] = true}
22
24
  o.parse!
@@ -29,7 +31,7 @@ if opts[:version]
29
31
  exit(1)
30
32
  end
31
33
 
32
- unless opts[:app_path] || opts[:show_config] || opts[:list_app] || opts[:reset_iphone_simulator]
34
+ unless opts[:app_path] || opts[:show_config] || opts[:list_app] || opts[:reset_iphone_simulator] || opts[:list_devices]
33
35
  puts ARGV.options.help
34
36
  exit(1)
35
37
  end
@@ -39,6 +41,6 @@ opts[:time_limit_sec] ||= 100
39
41
 
40
42
  result_ok = UIAutoMonkey::MonkeyRunner.new.run(opts)
41
43
 
42
- puts result_ok ? 'EXIT 0' : 'EXIT 1' unless opts[:show_config] || opts[:list_app]
44
+ puts result_ok ? 'EXIT 0' : 'EXIT 1' unless opts[:show_config] || opts[:list_app] || opts[:list_devices]
43
45
 
44
46
  exit(result_ok ? 0 : 1)
@@ -8,7 +8,7 @@ module UIAutoMonkey
8
8
  require 'json'
9
9
 
10
10
  class MonkeyRunner
11
- TRACE_TEMPLATE='/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate'
11
+ TRACE_TEMPLATE='/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate'
12
12
  RESULT_BASE_PATH = File.expand_path('crash_monkey_result')
13
13
  RESULT_DETAIL_EVENT_NUM = 20
14
14
  TIME_LIMIT_SEC = 100
@@ -23,6 +23,9 @@ module UIAutoMonkey
23
23
  elsif @options[:list_app]
24
24
  list_app
25
25
  return true
26
+ elsif @options[:list_devices]
27
+ list_devices
28
+ return true
26
29
  elsif @options[:reset_iphone_simulator]
27
30
  reset_iphone_simulator
28
31
  return true
@@ -65,7 +68,7 @@ module UIAutoMonkey
65
68
  watch_syslog do
66
69
  begin
67
70
  Timeout.timeout(time_limit_sec + 5) do
68
- run_process(%W(instruments -l #{time_limit} -t #{TRACE_TEMPLATE} #{app_path} -e UIASCRIPT #{ui_auto_monkey_path} -e UIARESULTSPATH #{result_base_dir}))
71
+ run_process(%W(instruments -w #{device} -l #{time_limit} -t #{TRACE_TEMPLATE} #{app_path} -e UIASCRIPT #{ui_auto_monkey_path} -e UIARESULTSPATH #{result_base_dir}))
69
72
  end
70
73
  rescue Timeout::Error
71
74
  log 'killall -9 instruments'
@@ -132,6 +135,10 @@ module UIAutoMonkey
132
135
  puts find_apps('*.app').map{|n| File.basename n}.uniq.sort.join("\n")
133
136
  end
134
137
 
138
+ def list_devices
139
+ puts devices.join("\n")
140
+ end
141
+
135
142
  def log(msg)
136
143
  puts msg
137
144
  end
@@ -145,6 +152,10 @@ module UIAutoMonkey
145
152
  (@options[:run_count] || 2)
146
153
  end
147
154
 
155
+ def device
156
+ @options[:device] || devices[0]
157
+ end
158
+
148
159
  def app_path
149
160
  @app_path ||= find_app_path(@options)
150
161
  end
@@ -157,6 +168,10 @@ module UIAutoMonkey
157
168
  `"ls" -dt #{ENV['HOME']}/Library/Developer/Xcode/DerivedData/*/Build/Products/*/#{app}`.strip.split(/\n/)
158
169
  end
159
170
 
171
+ def devices
172
+ `"instruments" -s devices`.strip.split(/\n/).drop(2)
173
+ end
174
+
160
175
  def find_app_path(opts)
161
176
  app_path = nil
162
177
  if opts[:app_path].include?('/')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crash_monkey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Morishita