run_loop_tcc 2.1.3

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.
Files changed (87) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/bin/run-loop +19 -0
  4. data/lib/run_loop/abstract.rb +18 -0
  5. data/lib/run_loop/app.rb +372 -0
  6. data/lib/run_loop/cache/cache.rb +68 -0
  7. data/lib/run_loop/cli/cli.rb +48 -0
  8. data/lib/run_loop/cli/codesign.rb +24 -0
  9. data/lib/run_loop/cli/errors.rb +11 -0
  10. data/lib/run_loop/cli/instruments.rb +160 -0
  11. data/lib/run_loop/cli/locale.rb +31 -0
  12. data/lib/run_loop/cli/simctl.rb +257 -0
  13. data/lib/run_loop/cli/tcc.rb +139 -0
  14. data/lib/run_loop/codesign.rb +76 -0
  15. data/lib/run_loop/core.rb +902 -0
  16. data/lib/run_loop/core_simulator.rb +960 -0
  17. data/lib/run_loop/detect_aut/detect.rb +185 -0
  18. data/lib/run_loop/detect_aut/errors.rb +126 -0
  19. data/lib/run_loop/detect_aut/xamarin_studio.rb +46 -0
  20. data/lib/run_loop/detect_aut/xcode.rb +157 -0
  21. data/lib/run_loop/device.rb +722 -0
  22. data/lib/run_loop/device_agent/app/CBX-Runner.app.zip +0 -0
  23. data/lib/run_loop/device_agent/bin/xctestctl +0 -0
  24. data/lib/run_loop/device_agent/cbxrunner.rb +156 -0
  25. data/lib/run_loop/device_agent/frameworks/Frameworks.zip +0 -0
  26. data/lib/run_loop/device_agent/frameworks.rb +65 -0
  27. data/lib/run_loop/device_agent/ipa/CBX-Runner.app.zip +0 -0
  28. data/lib/run_loop/device_agent/launcher.rb +51 -0
  29. data/lib/run_loop/device_agent/xcodebuild.rb +91 -0
  30. data/lib/run_loop/device_agent/xctestctl.rb +109 -0
  31. data/lib/run_loop/directory.rb +179 -0
  32. data/lib/run_loop/dnssd.rb +148 -0
  33. data/lib/run_loop/dot_dir.rb +87 -0
  34. data/lib/run_loop/dylib_injector.rb +145 -0
  35. data/lib/run_loop/encoding.rb +56 -0
  36. data/lib/run_loop/environment.rb +361 -0
  37. data/lib/run_loop/fifo.rb +40 -0
  38. data/lib/run_loop/host_cache.rb +128 -0
  39. data/lib/run_loop/http/error.rb +15 -0
  40. data/lib/run_loop/http/request.rb +44 -0
  41. data/lib/run_loop/http/retriable_client.rb +166 -0
  42. data/lib/run_loop/http/server.rb +17 -0
  43. data/lib/run_loop/instruments.rb +436 -0
  44. data/lib/run_loop/ipa.rb +142 -0
  45. data/lib/run_loop/l10n.rb +93 -0
  46. data/lib/run_loop/language.rb +63 -0
  47. data/lib/run_loop/lipo.rb +132 -0
  48. data/lib/run_loop/lldb.rb +52 -0
  49. data/lib/run_loop/locale.rb +101 -0
  50. data/lib/run_loop/logging.rb +111 -0
  51. data/lib/run_loop/otool.rb +76 -0
  52. data/lib/run_loop/patches/awesome_print.rb +17 -0
  53. data/lib/run_loop/physical_device/life_cycle.rb +268 -0
  54. data/lib/run_loop/plist_buddy.rb +189 -0
  55. data/lib/run_loop/process_terminator.rb +128 -0
  56. data/lib/run_loop/process_waiter.rb +117 -0
  57. data/lib/run_loop/regex.rb +19 -0
  58. data/lib/run_loop/shell.rb +103 -0
  59. data/lib/run_loop/sim_control.rb +1264 -0
  60. data/lib/run_loop/simctl.rb +275 -0
  61. data/lib/run_loop/sqlite.rb +61 -0
  62. data/lib/run_loop/strings.rb +88 -0
  63. data/lib/run_loop/tcc/TCC.db +0 -0
  64. data/lib/run_loop/tcc/tcc.rb +240 -0
  65. data/lib/run_loop/template.rb +61 -0
  66. data/lib/run_loop/version.rb +182 -0
  67. data/lib/run_loop/xcode.rb +318 -0
  68. data/lib/run_loop/xcrun.rb +107 -0
  69. data/lib/run_loop/xcuitest.rb +550 -0
  70. data/lib/run_loop.rb +230 -0
  71. data/plists/simctl/com.apple.UIAutomation.plist +0 -0
  72. data/plists/simctl/com.apple.UIAutomationPlugIn.plist +0 -0
  73. data/scripts/calabash_script_uia.js +28184 -0
  74. data/scripts/lib/json2.min.js +26 -0
  75. data/scripts/lib/log.js +26 -0
  76. data/scripts/lib/on_alert.js +224 -0
  77. data/scripts/read-cmd.sh +2 -0
  78. data/scripts/run_dismiss_location.js +89 -0
  79. data/scripts/run_loop_basic.js +34 -0
  80. data/scripts/run_loop_fast_uia.js +188 -0
  81. data/scripts/run_loop_host.js +117 -0
  82. data/scripts/run_loop_shared_element.js +125 -0
  83. data/scripts/timeout3 +23 -0
  84. data/scripts/udidetect +0 -0
  85. data/vendor-licenses/FBSimulatorControl.LICENSE +30 -0
  86. data/vendor-licenses/xctestctl.LICENSE +32 -0
  87. metadata +443 -0
@@ -0,0 +1,19 @@
1
+ module RunLoop
2
+
3
+ # @!visibility private
4
+ module Regex
5
+
6
+ # @!visibility private
7
+ CORE_SIMULATOR_UDID_REGEX = /[A-F0-9]{8}-([A-F0-9]{4}-){3}[A-F0-9]{12}/.freeze
8
+
9
+ # @!visibility private
10
+ XCODE_511_SIMULATOR_REGEX = /(\d)\.(\d)\.?(\d)?(-64)?/.freeze
11
+
12
+ # @!visibility private
13
+ DEVICE_UDID_REGEX = /[a-f0-9]{40}/.freeze
14
+
15
+ # @!visibility private
16
+ VERSION_REGEX = /(\d\.\d(\.\d)?)/.freeze
17
+
18
+ end
19
+ end
@@ -0,0 +1,103 @@
1
+ module RunLoop
2
+ module Shell
3
+
4
+ require "command_runner"
5
+ require "run_loop/encoding"
6
+ include RunLoop::Encoding
7
+
8
+ # Controls the behavior of Shell#run_shell_command.
9
+ #
10
+ # You can override these values if they do not work in your environment.
11
+ #
12
+ # For cucumber users, the best place to override would be in your
13
+ # features/support/env.rb.
14
+ #
15
+ # For example:
16
+ #
17
+ # RunLoop::Shell::DEFAULT_OPTIONS[:timeout] = 60
18
+ DEFAULT_OPTIONS = {
19
+ :timeout => 30,
20
+ :log_cmd => false
21
+ }
22
+
23
+ # Raised when shell command fails.
24
+ class Error < RuntimeError; end
25
+
26
+ # Raised when shell command times out.
27
+ class TimeoutError < RuntimeError; end
28
+
29
+ def run_shell_command(args, options={})
30
+
31
+ merged_options = DEFAULT_OPTIONS.merge(options)
32
+
33
+ timeout = merged_options[:timeout]
34
+
35
+ unless args.is_a?(Array)
36
+ raise ArgumentError,
37
+ "Expected args '#{args}' to be an Array, but found '#{args.class}'"
38
+ end
39
+
40
+ args.each do |arg|
41
+ unless arg.is_a?(String)
42
+ raise ArgumentError,
43
+ %Q{Expected arg '#{arg}' to be a String, but found '#{arg.class}'
44
+ IO.popen requires all arguments to be Strings.
45
+ }
46
+ end
47
+ end
48
+
49
+ cmd = "#{args.join(' ')}"
50
+
51
+ # Don't see your log?
52
+ # Commands are only logged when debugging.
53
+ RunLoop.log_unix_cmd(cmd) if merged_options[:log_cmd]
54
+
55
+ hash = {}
56
+
57
+ begin
58
+
59
+ start_time = Time.now
60
+ command_output = CommandRunner.run(args, timeout: timeout)
61
+
62
+ out = ensure_command_output_utf8(command_output[:out], cmd)
63
+ process_status = command_output[:status]
64
+
65
+ hash =
66
+ {
67
+ :out => out,
68
+ :pid => process_status.pid,
69
+ # nil if process was killed before completion
70
+ :exit_status => process_status.exitstatus
71
+ }
72
+
73
+ rescue RunLoop::Encoding::UTF8Error => e
74
+ raise e
75
+ rescue => e
76
+ elapsed = "%0.2f" % (Time.now - start_time)
77
+ raise Error,
78
+ %Q{Encountered an error after #{elapsed} seconds:
79
+
80
+ #{e.message}
81
+
82
+ executing this command:
83
+
84
+ #{cmd}
85
+ }
86
+ end
87
+
88
+ if hash[:exit_status].nil?
89
+ elapsed = "%0.2f" % (Time.now - start_time)
90
+ raise TimeoutError,
91
+ %Q{Timed out after #{elapsed} seconds executing
92
+
93
+ #{cmd}
94
+
95
+ with a timeout of #{timeout}
96
+ }
97
+ end
98
+
99
+ hash
100
+ end
101
+ end
102
+ end
103
+