run_loop 2.1.7 → 2.1.8
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_simulator.rb +76 -3
- data/lib/run_loop/device_agent/Frameworks.zip +0 -0
- data/lib/run_loop/device_agent/app/DeviceAgent-Runner.app.zip +0 -0
- data/lib/run_loop/device_agent/bin/CLI.json +125 -0
- data/lib/run_loop/device_agent/bin/iOSDeviceManager +0 -0
- data/lib/run_loop/device_agent/client.rb +853 -0
- data/lib/run_loop/device_agent/ios_device_manager.rb +97 -32
- data/lib/run_loop/device_agent/ipa/DeviceAgent-Runner.app.zip +0 -0
- data/lib/run_loop/device_agent/{launcher.rb → launcher_strategy.rb} +8 -8
- data/lib/run_loop/device_agent/{cbxrunner.rb → runner.rb} +15 -25
- data/lib/run_loop/device_agent/xcodebuild.rb +25 -8
- data/lib/run_loop/environment.rb +10 -6
- data/lib/run_loop/http/retriable_client.rb +7 -1
- data/lib/run_loop/simctl.rb +24 -15
- data/lib/run_loop/version.rb +7 -2
- data/lib/run_loop/xcode.rb +2 -2
- data/lib/run_loop.rb +13 -13
- metadata +10 -7
- data/lib/run_loop/device_agent/app/CBX-Runner.app.zip +0 -0
- data/lib/run_loop/device_agent/ipa/CBX-Runner.app.zip +0 -0
- data/lib/run_loop/xcuitest.rb +0 -727
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: edeacc3eddade4e3a26023d8b011b2fcea314f38
|
4
|
+
data.tar.gz: f8ab2b05bb26507c5a1029d583faab39edf3a1ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05c864c7ea5163367eaa0efa4e961a80e78b5b721d5392cc32592b18b292451496088b367e52a2a7a61713d5dd2f82443c8014f4b4fdf15236ed46d900b84113
|
7
|
+
data.tar.gz: 45a1cec5422e444c8155b038a7650949a756d719dbe451f17b036c04335878dffb542d908b9c443ba25024ad19502bd9d001e143bd015c488a07b2cc2f81d345
|
@@ -100,7 +100,7 @@ class RunLoop::CoreSimulator
|
|
100
100
|
# launchd_sim process.
|
101
101
|
['launchd_sim', false],
|
102
102
|
|
103
|
-
# Required for
|
103
|
+
# Required for DeviceAgent termination; the simulator hangs otherwise.
|
104
104
|
["xpcproxy", false],
|
105
105
|
|
106
106
|
# Causes crash reports on Xcode < 7.0
|
@@ -246,8 +246,7 @@ class RunLoop::CoreSimulator
|
|
246
246
|
end
|
247
247
|
|
248
248
|
if simulator.physical_device?
|
249
|
-
raise ArgumentError,
|
250
|
-
"The language cannot be set on physical devices"
|
249
|
+
raise ArgumentError, "The language cannot be set on physical devices"
|
251
250
|
end
|
252
251
|
|
253
252
|
self.quit_simulator
|
@@ -255,6 +254,40 @@ class RunLoop::CoreSimulator
|
|
255
254
|
simulator.simulator_set_language(lang_code)
|
256
255
|
end
|
257
256
|
|
257
|
+
# @!visibility private
|
258
|
+
#
|
259
|
+
# @param [RunLoop::Device, String] device a simulator UDID, instruments-ready
|
260
|
+
# name, or a RunLoop::Device
|
261
|
+
# @param [String] bundle_identifier the app to check for
|
262
|
+
#
|
263
|
+
# @raise [ArgumentError] if no device can be found matching the UDID or
|
264
|
+
# instruments-ready name
|
265
|
+
# @raise [ArgumentError] if device is not a simulator
|
266
|
+
# @raise [ArgumentError] if language_code is invalid
|
267
|
+
#
|
268
|
+
# @return [Boolean] true if the app with the identifier is installed
|
269
|
+
def self.app_installed?(device, bundle_identifier, options={})
|
270
|
+
merged_options = {:xcode => RunLoop::Xcode.new}.merge(options)
|
271
|
+
|
272
|
+
if device.is_a?(RunLoop::Device)
|
273
|
+
simulator = device
|
274
|
+
else
|
275
|
+
simulator = RunLoop::Device.device_with_identifier(device, merged_options)
|
276
|
+
end
|
277
|
+
|
278
|
+
if simulator.physical_device?
|
279
|
+
raise ArgumentError, "The device must be a simulator"
|
280
|
+
end
|
281
|
+
|
282
|
+
start = Time.now
|
283
|
+
|
284
|
+
installed = self.send(:user_app_installed?, device, bundle_identifier) ||
|
285
|
+
self.send(:system_app_installed?, bundle_identifier, merged_options[:xcode])
|
286
|
+
|
287
|
+
RunLoop.log_debug("Took #{Time.now - start} seconds to check if app was installed")
|
288
|
+
installed
|
289
|
+
end
|
290
|
+
|
258
291
|
# @!visibility private
|
259
292
|
def self.simulator_pid
|
260
293
|
@@simulator_pid
|
@@ -890,6 +923,46 @@ Command had no output
|
|
890
923
|
end
|
891
924
|
end
|
892
925
|
|
926
|
+
# @!visibility private
|
927
|
+
def self.system_applications_dir(xcode=RunLoop::Xcode.new)
|
928
|
+
base_dir = xcode.developer_dir
|
929
|
+
sim_apps_dir = "Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/Applications"
|
930
|
+
File.expand_path(File.join(base_dir, sim_apps_dir))
|
931
|
+
end
|
932
|
+
|
933
|
+
# @!visibility private
|
934
|
+
def self.system_app_installed?(bundle_identifier, xcode)
|
935
|
+
apps_dir = self.send(:system_applications_dir, xcode)
|
936
|
+
|
937
|
+
return false if !File.exist?(apps_dir)
|
938
|
+
|
939
|
+
black_list = ["Fitness.app", "Photo Booth.app", "ScreenSharingViewService.app"]
|
940
|
+
|
941
|
+
Dir.glob("#{apps_dir}/*.app").detect do |app_dir|
|
942
|
+
basename = File.basename(app_dir)
|
943
|
+
if black_list.include?(basename)
|
944
|
+
false
|
945
|
+
else
|
946
|
+
begin
|
947
|
+
RunLoop::App.new(app_dir).bundle_identifier == bundle_identifier
|
948
|
+
rescue ArgumentError => _
|
949
|
+
bundle_name = File.basename(app_dir)
|
950
|
+
RunLoop.log_debug("Could not create an App from simulator system app: #{bundle_name}")
|
951
|
+
nil
|
952
|
+
end
|
953
|
+
end
|
954
|
+
end
|
955
|
+
end
|
956
|
+
|
957
|
+
# @!visibility private
|
958
|
+
def self.user_app_installed?(device, bundle_identifier)
|
959
|
+
core_sim = self.new(device, bundle_identifier, {:quit_sim_on_init => false})
|
960
|
+
sim_apps_dir = core_sim.send(:device_applications_dir)
|
961
|
+
Dir.glob("#{sim_apps_dir}/**/*.app").find do |path|
|
962
|
+
RunLoop::App.new(path).bundle_identifier == bundle_identifier
|
963
|
+
end
|
964
|
+
end
|
965
|
+
|
893
966
|
# Not yet. Failing on Travis and this is not a feature yet.
|
894
967
|
#
|
895
968
|
# There is a spec that has been commented out.
|
Binary file
|
Binary file
|
@@ -0,0 +1,125 @@
|
|
1
|
+
{
|
2
|
+
"start_test" : {
|
3
|
+
"-d" : {
|
4
|
+
"longFlag" : "--device-id",
|
5
|
+
"optionName" : "device-identifier",
|
6
|
+
"info" : "iOS Simulator GUID or 40-digit physical device ID",
|
7
|
+
"required" : true
|
8
|
+
},
|
9
|
+
"-b" : {
|
10
|
+
"longFlag" : "--test-runner-bundle-id",
|
11
|
+
"optionName" : "test_runner_bundle_id",
|
12
|
+
"info" : "BundleID of the Test Runner application (DeviceAgent)",
|
13
|
+
"required" : false,
|
14
|
+
"default" : "com.apple.test.DeviceAgent-Runner"
|
15
|
+
},
|
16
|
+
"-s" : {
|
17
|
+
"longFlag" : "--session-id",
|
18
|
+
"optionName" : "session_id",
|
19
|
+
"info" : "Session ID for the XCUITest",
|
20
|
+
"required" : false,
|
21
|
+
"default" : "BEEFBABE-FEED-BABE-BEEF-CAFEBEEFFACE"
|
22
|
+
},
|
23
|
+
"-k" : {
|
24
|
+
"longFlag" : "--keep-alive",
|
25
|
+
"optionName" : "true-or-false",
|
26
|
+
"info" : "Only set to false for smoke testing/debugging this tool",
|
27
|
+
"required" : false,
|
28
|
+
"default" : true
|
29
|
+
}
|
30
|
+
},
|
31
|
+
"is_installed" : {
|
32
|
+
"-b" : {
|
33
|
+
"longFlag" : "--bundle-identifier",
|
34
|
+
"optionName" : "bundle-id",
|
35
|
+
"info" : "bundle identifier (e.g. com.my.app)",
|
36
|
+
"required" : true
|
37
|
+
},
|
38
|
+
"-d" : {
|
39
|
+
"longFlag" : "--device-id",
|
40
|
+
"optionName" : "device-identifier",
|
41
|
+
"info" : "iOS Simulator GUID or 40-digit physical device ID",
|
42
|
+
"required" : true
|
43
|
+
}
|
44
|
+
},
|
45
|
+
"install" : {
|
46
|
+
"-d" : {
|
47
|
+
"longFlag" : "--device-id",
|
48
|
+
"optionName" : "device-identifier",
|
49
|
+
"info" : "iOS Simulator GUID or 40-digit physical device ID",
|
50
|
+
"required" : true
|
51
|
+
},
|
52
|
+
"-a" : {
|
53
|
+
"longFlag" : "--app-bundle",
|
54
|
+
"optionName" : "path/to/app-bundle.app",
|
55
|
+
"info" : "Path .app bundle (for .ipas, unzip and look inside of 'Payload')",
|
56
|
+
"required" : true
|
57
|
+
},
|
58
|
+
"-c" : {
|
59
|
+
"longFlag" : "--codesign-identity",
|
60
|
+
"optionName" : "codesign-identity",
|
61
|
+
"info" : "Identity used to codesign app bundle [device only]",
|
62
|
+
"required" : false,
|
63
|
+
"default" : ""
|
64
|
+
},
|
65
|
+
"-u" : {
|
66
|
+
"longFlag" : "--update-app",
|
67
|
+
"optionName" : "true-or-false",
|
68
|
+
"info" : "When true, will reinstall the app if the device contains an older version than the bundle specified",
|
69
|
+
"required" : false,
|
70
|
+
"default" : true
|
71
|
+
}
|
72
|
+
},
|
73
|
+
"kill_simulator" : {
|
74
|
+
"-d" : {
|
75
|
+
"longFlag" : "--device-id",
|
76
|
+
"optionName" : "device-identifier",
|
77
|
+
"info" : "iOS Simulator GUID",
|
78
|
+
"required" : true
|
79
|
+
}
|
80
|
+
},
|
81
|
+
"launch_simulator" : {
|
82
|
+
"-d" : {
|
83
|
+
"longFlag" : "--device-id",
|
84
|
+
"optionName" : "device-identifier",
|
85
|
+
"info" : "iOS Simulator GUID",
|
86
|
+
"required" : true
|
87
|
+
}
|
88
|
+
},
|
89
|
+
"uninstall" : {
|
90
|
+
"-d" : {
|
91
|
+
"longFlag" : "--device-id",
|
92
|
+
"optionName" : "device-identifier",
|
93
|
+
"info" : "iOS Simulator GUID or 40-digit physical device ID",
|
94
|
+
"required" : true
|
95
|
+
},
|
96
|
+
"-b" : {
|
97
|
+
"longFlag" : "--bundle-identifier",
|
98
|
+
"optionName" : "bundle-id",
|
99
|
+
"info" : "bundle identifier (e.g. com.my.app)",
|
100
|
+
"required" : true
|
101
|
+
}
|
102
|
+
},
|
103
|
+
"set_location" : {
|
104
|
+
"-d" : {
|
105
|
+
"longFlag" : "--device-id",
|
106
|
+
"optionName" : "device-identifier",
|
107
|
+
"info" : "iOS Simulator GUID or 40-digit physical device ID",
|
108
|
+
"required" : true
|
109
|
+
},
|
110
|
+
"-l" : {
|
111
|
+
"longFlag" : "--location",
|
112
|
+
"optionName" : "lat,lng",
|
113
|
+
"info" : "latitude and longitude separated by a single comma",
|
114
|
+
"required" : true
|
115
|
+
}
|
116
|
+
},
|
117
|
+
"stop_simulating_location" : {
|
118
|
+
"-d" : {
|
119
|
+
"longFlag" : "--device-id",
|
120
|
+
"optionName" : "device-identifier",
|
121
|
+
"info" : "40-digit physical device ID",
|
122
|
+
"required" : true
|
123
|
+
}
|
124
|
+
}
|
125
|
+
}
|
Binary file
|