xcknife 0.6.0 → 0.6.1
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/Rakefile +5 -0
- data/lib/xcknife.rb +1 -1
- data/lib/xcknife/test_dumper.rb +28 -28
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ed26dad507c5c0724cc106ed6a576107b89f115
|
4
|
+
data.tar.gz: 4f3bd509e3ae26553277f6a0acfc0c3399618d20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24198040c30930d5afd2f9acf6f0b70f78dd562e61d586208c211ca3672100c50d243732c8ee379c0107a261fc6f5eaf810ca1b392e23001b1fd5842eaffe116
|
7
|
+
data.tar.gz: 52227e2e60f654fae12b6b7ea03d3bf89993aec7770a7e62e6ec4272acc10df050fefb20d2fc296cff77b9b8e6ef10c58fb1b44e71042e9d0affa6973fbfe327
|
data/Rakefile
CHANGED
@@ -14,4 +14,9 @@ task :build_test_dumper do
|
|
14
14
|
FileUtils.copy_file("./testdumperbuild/Build/Products/Debug-iphonesimulator/TestDumper.framework/TestDumper", "./TestDumper.dylib")
|
15
15
|
puts "TestDumper.dylib was created successfully"
|
16
16
|
end
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Release wih test_dumper"
|
20
|
+
task :gem_release => [:build_test_dumper, :build] do
|
21
|
+
system 'gem push pkg/xcknife-*.gem'
|
17
22
|
end
|
data/lib/xcknife.rb
CHANGED
data/lib/xcknife/test_dumper.rb
CHANGED
@@ -34,10 +34,10 @@ module XCKnife
|
|
34
34
|
private
|
35
35
|
def concat_to_file(test_specification, output_fd)
|
36
36
|
file = test_specification.json_stream_file
|
37
|
-
|
38
|
-
IO.readlines(file).each do |line|
|
37
|
+
IO.readlines(file).each do |line|
|
39
38
|
event = OpenStruct.new(JSON.load(line))
|
40
39
|
output_fd.write(line) unless should_test_event_be_ignored?(test_specification, event)
|
40
|
+
output_fd.flush
|
41
41
|
end
|
42
42
|
output_fd.flush
|
43
43
|
end
|
@@ -47,31 +47,8 @@ module XCKnife
|
|
47
47
|
return false unless event["test"] == "1"
|
48
48
|
test_specification.skip_test_identifiers.include?(event["className"])
|
49
49
|
end
|
50
|
-
|
51
|
-
def wait_test_dumper_completion(file)
|
52
|
-
retries_count = 0
|
53
|
-
until has_test_dumper_terminated?(file) do
|
54
|
-
retries_count += 1
|
55
|
-
assert_has_not_timed_out(retries_count, file)
|
56
|
-
sleep 0.1
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def assert_has_not_timed_out(retries_count, file)
|
61
|
-
if retries_count == 100
|
62
|
-
puts "Timeout error on: #{file}"
|
63
|
-
exit 1
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def has_test_dumper_terminated?(file)
|
68
|
-
return false unless File.exists?(file)
|
69
|
-
last_line = `tail -n 1 "#{file}"`
|
70
|
-
return /Completed Test Dumper/.match(last_line)
|
71
|
-
end
|
72
50
|
end
|
73
51
|
|
74
|
-
|
75
52
|
class TestDumperHelper
|
76
53
|
TestSpecification = Struct.new :json_stream_file, :skip_test_identifiers
|
77
54
|
|
@@ -95,10 +72,13 @@ module XCKnife
|
|
95
72
|
xctestrun_as_json = `plutil -convert json -o - "#{xctestrun_file}"`
|
96
73
|
FileUtils.mkdir_p(list_folder)
|
97
74
|
JSON.load(xctestrun_as_json).map do |test_bundle_name, test_bundle|
|
98
|
-
list_tests_wiht_simctl(list_folder, test_bundle, test_bundle_name)
|
75
|
+
test_specification = list_tests_wiht_simctl(list_folder, test_bundle, test_bundle_name)
|
76
|
+
wait_test_dumper_completion(test_specification.json_stream_file)
|
77
|
+
test_specification
|
99
78
|
end
|
100
79
|
end
|
101
80
|
|
81
|
+
private
|
102
82
|
def list_tests_wiht_simctl(list_folder, test_bundle, test_bundle_name)
|
103
83
|
env_variables = test_bundle["EnvironmentVariables"]
|
104
84
|
testing_env_variables = test_bundle["TestingEnvironmentVariables"]
|
@@ -141,8 +121,6 @@ module XCKnife
|
|
141
121
|
return TestSpecification.new outpath, discover_tests_to_skip(test_bundle)
|
142
122
|
end
|
143
123
|
|
144
|
-
private
|
145
|
-
|
146
124
|
def discover_tests_to_skip(test_bundle)
|
147
125
|
identifier_for_test_method = "/"
|
148
126
|
skip_test_identifiers = test_bundle["SkipTestIdentifiers"] || []
|
@@ -177,6 +155,28 @@ module XCKnife
|
|
177
155
|
end
|
178
156
|
end
|
179
157
|
|
158
|
+
def wait_test_dumper_completion(file)
|
159
|
+
retries_count = 0
|
160
|
+
until has_test_dumper_terminated?(file) do
|
161
|
+
retries_count += 1
|
162
|
+
assert_has_not_timed_out(retries_count, file)
|
163
|
+
sleep 0.1
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
def assert_has_not_timed_out(retries_count, file)
|
168
|
+
if retries_count == 100
|
169
|
+
puts "Timeout error on: #{file}"
|
170
|
+
exit 1
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
def has_test_dumper_terminated?(file)
|
175
|
+
return false unless File.exists?(file)
|
176
|
+
last_line = `tail -n 1 "#{file}"`
|
177
|
+
return /Completed Test Dumper/.match(last_line)
|
178
|
+
end
|
179
|
+
|
180
180
|
def run_apptest(env, test_host_bundle_identifier, test_bundle_path)
|
181
181
|
call_simctl env, "launch #{@device_id} '#{test_host_bundle_identifier}' -XCTest All '#{test_bundle_path}'"
|
182
182
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcknife
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Ribeiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|