slather 2.7.0 → 2.7.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/.travis.yml +2 -0
- data/CHANGELOG.md +19 -0
- data/lib/slather/coverage_service/html_output.rb +11 -1
- data/lib/slather/profdata_coverage_file.rb +1 -1
- data/lib/slather/project.rb +19 -1
- data/lib/slather/version.rb +1 -1
- data/spec/fixtures/FixtureFramework/FixtureFramework.h +19 -0
- data/spec/fixtures/FixtureFramework/FlashExperiment.swift +7 -0
- data/spec/fixtures/FixtureFramework/Info.plist +24 -0
- data/spec/fixtures/FixtureFrameworkTests/FixtureFrameworkTests.swift +34 -0
- data/spec/fixtures/FixtureFrameworkTests/FlashExperimentTests.swift +9 -0
- data/spec/fixtures/FixtureFrameworkTests/Info.plist +22 -0
- data/spec/fixtures/fixtures.xcodeproj/project.pbxproj +222 -0
- data/spec/fixtures/fixtures.xcodeproj/xcshareddata/xcschemes/fixtures.xcscheme +21 -5
- data/spec/fixtures/fixtures.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/spec/slather/profdata_coverage_spec.rb +4 -0
- data/spec/slather/project_spec.rb +6 -4
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82acbc5ecfb8610c49f39cdea2ff67387d30b3c41bf78c34095a59c7b572e802
|
4
|
+
data.tar.gz: a1c830dddd4d52d8641665086ad6a63c294f00a7dd3370c7cd588c8c586db06e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 239d29e6e221b6119be23af3dc92a7f28d4608dd71acf3f7ed03530953878ab42942903ed3f505a81051c3aa6903ba2a167b37867274b24ab7fc948b9006f08c
|
7
|
+
data.tar.gz: c918c164b1da93699be34bef38291b3c43d3d43eb1d258919dc3de0bd84beb855a44318a8d6638d567543ddad7a2e647ca07a1fe12d14678b9c54bbde25a749a
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,24 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v2.7.1
|
4
|
+
|
5
|
+
* Support generating coverage for framework targets
|
6
|
+
[onato](https://github.com/onato)
|
7
|
+
[#482](https://github.com/SlatherOrg/slather/pull/482)
|
8
|
+
|
9
|
+
* Show number of lines in HTML report
|
10
|
+
[SiemianHS](https://github.com/SiemianHS)
|
11
|
+
[#494](https://github.com/SlatherOrg/slather/pull/494)
|
12
|
+
|
13
|
+
* Fixed issues with HTML report generation
|
14
|
+
[fchiba](https://github.com/fchiba)
|
15
|
+
[#483](https://github.com/SlatherOrg/slather/pull/483)
|
16
|
+
[#484](https://github.com/SlatherOrg/slather/pull/484)
|
17
|
+
|
18
|
+
* Don't fail if a source file doesn't exist
|
19
|
+
[chillpop](https://github.com/chillpop)
|
20
|
+
[#492](https://github.com/SlatherOrg/slather/pull/492)
|
21
|
+
|
3
22
|
## v2.7.0
|
4
23
|
|
5
24
|
* Add Branch Coverage data for ProfData coverage files
|
@@ -87,12 +87,22 @@ module Slather
|
|
87
87
|
percentage = (total_tested_lines / total_relevant_lines.to_f) * 100.0
|
88
88
|
cov.span "Total Coverage : "
|
89
89
|
cov.span decimal_f(percentage) + '%', :class => class_for_coverage_percentage(percentage), :id => "total_coverage"
|
90
|
+
cov.span " ("
|
91
|
+
cov.span total_tested_lines, :id => "total_tested_lines"
|
92
|
+
cov.span " of "
|
93
|
+
cov.span total_relevant_lines, :id => "total_relevant_lines"
|
94
|
+
cov.span " lines)"
|
90
95
|
}
|
91
96
|
|
92
97
|
cov.h4 {
|
93
98
|
percentage = (total_branches_tested / total_relevant_branches.to_f) * 100.0
|
94
99
|
cov.span "Total Branch Coverage : "
|
95
100
|
cov.span decimal_f(percentage) + '%', :class => class_for_coverage_percentage(percentage), :id => "total_coverage"
|
101
|
+
cov.span " ("
|
102
|
+
cov.span total_branches_tested, :id => "total_branches_tested"
|
103
|
+
cov.span " of "
|
104
|
+
cov.span total_relevant_branches, :id => "total_relevant_branches"
|
105
|
+
cov.span " lines)"
|
96
106
|
}
|
97
107
|
|
98
108
|
cov.input(:class => "search", :placeholder => "Search")
|
@@ -201,7 +211,7 @@ module Slather
|
|
201
211
|
end
|
202
212
|
current_line = line
|
203
213
|
regions.each do |region|
|
204
|
-
covered, remainder = current_line.split(region)
|
214
|
+
covered, remainder = current_line.split(region, 2)
|
205
215
|
cov.code(covered, :class => "objc")
|
206
216
|
cov.code(region, :class => "objc missed")
|
207
217
|
current_line = remainder
|
@@ -221,7 +221,7 @@ module Slather
|
|
221
221
|
# if the region wrapped to a new line before ending, put nil to indicate it didnt end on this line
|
222
222
|
region_end = line == current_line ? col - region_start : nil
|
223
223
|
if branch_region_data.key?(current_line)
|
224
|
-
branch_region_data[current_line]
|
224
|
+
branch_region_data[current_line] << [region_start, region_end]
|
225
225
|
else
|
226
226
|
branch_region_data[current_line] = [[region_start, region_end]]
|
227
227
|
end
|
data/lib/slather/project.rb
CHANGED
@@ -135,7 +135,12 @@ module Slather
|
|
135
135
|
coverage_json = JSON.parse(coverage_json_string)
|
136
136
|
coverage_json["data"].reduce([]) do |result, chunk|
|
137
137
|
result.concat(chunk["files"].map do |file|
|
138
|
-
|
138
|
+
filename = file["filename"]
|
139
|
+
path = Pathname(filename)
|
140
|
+
# Don't crash if the file doesn't exist on disk.
|
141
|
+
# This may happen for autogenerated files that have been deleted.
|
142
|
+
filename = path.exist? ? path.realpath : filename
|
143
|
+
{"filename" => filename, "segments" => file["segments"]}
|
139
144
|
end)
|
140
145
|
end
|
141
146
|
end
|
@@ -582,6 +587,19 @@ module Slather
|
|
582
587
|
def find_buildable_names(xcscheme)
|
583
588
|
found_buildable_names = []
|
584
589
|
|
590
|
+
# enumerate code coverage targets
|
591
|
+
begin
|
592
|
+
code_coverage_targets = xcscheme.test_action.xml_element.elements['CodeCoverageTargets']
|
593
|
+
targets = code_coverage_targets.map do |node|
|
594
|
+
Xcodeproj::XCScheme::BuildableReference.new(node) if node.is_a?(REXML::Element)
|
595
|
+
end.compact
|
596
|
+
buildable_names = targets.each do |target|
|
597
|
+
found_buildable_names.push(target.buildable_name)
|
598
|
+
end
|
599
|
+
rescue
|
600
|
+
# just in case if there are no entries in the test action
|
601
|
+
end
|
602
|
+
|
585
603
|
# enumerate build action entries
|
586
604
|
begin
|
587
605
|
xcscheme.build_action.entries.each do |entry|
|
data/lib/slather/version.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
//
|
2
|
+
// FixtureFramework.h
|
3
|
+
// FixtureFramework
|
4
|
+
//
|
5
|
+
// Created by Stephen Williams on 11/03/21.
|
6
|
+
// Copyright © 2021 marklarr. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <Foundation/Foundation.h>
|
10
|
+
|
11
|
+
//! Project version number for FixtureFramework.
|
12
|
+
FOUNDATION_EXPORT double FixtureFrameworkVersionNumber;
|
13
|
+
|
14
|
+
//! Project version string for FixtureFramework.
|
15
|
+
FOUNDATION_EXPORT const unsigned char FixtureFrameworkVersionString[];
|
16
|
+
|
17
|
+
// In this header, you should import all the public headers of your framework using statements like #import <FixtureFramework/PublicHeader.h>
|
18
|
+
|
19
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
7
|
+
<key>CFBundleExecutable</key>
|
8
|
+
<string>$(EXECUTABLE_NAME)</string>
|
9
|
+
<key>CFBundleIdentifier</key>
|
10
|
+
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
11
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
12
|
+
<string>6.0</string>
|
13
|
+
<key>CFBundleName</key>
|
14
|
+
<string>$(PRODUCT_NAME)</string>
|
15
|
+
<key>CFBundlePackageType</key>
|
16
|
+
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
17
|
+
<key>CFBundleShortVersionString</key>
|
18
|
+
<string>1.0</string>
|
19
|
+
<key>CFBundleVersion</key>
|
20
|
+
<string>$(CURRENT_PROJECT_VERSION)</string>
|
21
|
+
<key>NSHumanReadableCopyright</key>
|
22
|
+
<string>Copyright © 2021 marklarr. All rights reserved.</string>
|
23
|
+
</dict>
|
24
|
+
</plist>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
//
|
2
|
+
// FixtureFrameworkTests.swift
|
3
|
+
// FixtureFrameworkTests
|
4
|
+
//
|
5
|
+
// Created by Stephen Williams on 11/03/21.
|
6
|
+
// Copyright © 2021 marklarr. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
import XCTest
|
10
|
+
@testable import FixtureFramework
|
11
|
+
|
12
|
+
class FixtureFrameworkTests: XCTestCase {
|
13
|
+
|
14
|
+
override func setUpWithError() throws {
|
15
|
+
// Put setup code here. This method is called before the invocation of each test method in the class.
|
16
|
+
}
|
17
|
+
|
18
|
+
override func tearDownWithError() throws {
|
19
|
+
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
20
|
+
}
|
21
|
+
|
22
|
+
func testExample() throws {
|
23
|
+
// This is an example of a functional test case.
|
24
|
+
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
25
|
+
}
|
26
|
+
|
27
|
+
func testPerformanceExample() throws {
|
28
|
+
// This is an example of a performance test case.
|
29
|
+
self.measure {
|
30
|
+
// Put the code you want to measure the time of here.
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
7
|
+
<key>CFBundleExecutable</key>
|
8
|
+
<string>$(EXECUTABLE_NAME)</string>
|
9
|
+
<key>CFBundleIdentifier</key>
|
10
|
+
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
11
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
12
|
+
<string>6.0</string>
|
13
|
+
<key>CFBundleName</key>
|
14
|
+
<string>$(PRODUCT_NAME)</string>
|
15
|
+
<key>CFBundlePackageType</key>
|
16
|
+
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
17
|
+
<key>CFBundleShortVersionString</key>
|
18
|
+
<string>1.0</string>
|
19
|
+
<key>CFBundleVersion</key>
|
20
|
+
<string>1</string>
|
21
|
+
</dict>
|
22
|
+
</plist>
|
@@ -35,6 +35,8 @@
|
|
35
35
|
8C9A2046195965F10013B6B3 /* libfixtures.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C9A202D195965F10013B6B3 /* libfixtures.a */; };
|
36
36
|
8C9A204C195965F10013B6B3 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8C9A204A195965F10013B6B3 /* InfoPlist.strings */; };
|
37
37
|
8C9A204E195965F10013B6B3 /* fixturesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9A204D195965F10013B6B3 /* fixturesTests.m */; };
|
38
|
+
B1E6981225F96B680086A3E2 /* FixtureFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E6980425F96B670086A3E2 /* FixtureFramework.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
39
|
+
B1E6982025F96B930086A3E2 /* FlashExperiment.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E6981F25F96B930086A3E2 /* FlashExperiment.swift */; };
|
38
40
|
/* End PBXBuildFile section */
|
39
41
|
|
40
42
|
/* Begin PBXContainerItemProxy section */
|
@@ -52,6 +54,20 @@
|
|
52
54
|
remoteGlobalIDString = 8C9A202C195965F10013B6B3;
|
53
55
|
remoteInfo = fixtures;
|
54
56
|
};
|
57
|
+
B1E6982F25F96F490086A3E2 /* PBXContainerItemProxy */ = {
|
58
|
+
isa = PBXContainerItemProxy;
|
59
|
+
containerPortal = 8C9A2025195965F00013B6B3 /* Project object */;
|
60
|
+
proxyType = 1;
|
61
|
+
remoteGlobalIDString = B1E6980125F96B670086A3E2;
|
62
|
+
remoteInfo = FixtureFramework;
|
63
|
+
};
|
64
|
+
B1E6983725F970320086A3E2 /* PBXContainerItemProxy */ = {
|
65
|
+
isa = PBXContainerItemProxy;
|
66
|
+
containerPortal = 8C9A2025195965F00013B6B3 /* Project object */;
|
67
|
+
proxyType = 1;
|
68
|
+
remoteGlobalIDString = B1E6980125F96B670086A3E2;
|
69
|
+
remoteInfo = FixtureFramework;
|
70
|
+
};
|
55
71
|
/* End PBXContainerItemProxy section */
|
56
72
|
|
57
73
|
/* Begin PBXFileReference section */
|
@@ -86,6 +102,13 @@
|
|
86
102
|
8C9A2049195965F10013B6B3 /* fixturesTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "fixturesTests-Info.plist"; sourceTree = "<group>"; };
|
87
103
|
8C9A204B195965F10013B6B3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
88
104
|
8C9A204D195965F10013B6B3 /* fixturesTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = fixturesTests.m; sourceTree = "<group>"; };
|
105
|
+
B1E6980225F96B670086A3E2 /* FixtureFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FixtureFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
106
|
+
B1E6980425F96B670086A3E2 /* FixtureFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FixtureFramework.h; sourceTree = "<group>"; };
|
107
|
+
B1E6980525F96B670086A3E2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
108
|
+
B1E6980F25F96B680086A3E2 /* FixtureFrameworkTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FixtureFrameworkTests.swift; sourceTree = "<group>"; };
|
109
|
+
B1E6981125F96B680086A3E2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
110
|
+
B1E6981F25F96B930086A3E2 /* FlashExperiment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlashExperiment.swift; sourceTree = "<group>"; };
|
111
|
+
B1E6982725F96BD30086A3E2 /* FlashExperimentTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlashExperimentTests.swift; sourceTree = "<group>"; };
|
89
112
|
/* End PBXFileReference section */
|
90
113
|
|
91
114
|
/* Begin PBXFrameworksBuildPhase section */
|
@@ -124,6 +147,13 @@
|
|
124
147
|
);
|
125
148
|
runOnlyForDeploymentPostprocessing = 0;
|
126
149
|
};
|
150
|
+
B1E697FF25F96B670086A3E2 /* Frameworks */ = {
|
151
|
+
isa = PBXFrameworksBuildPhase;
|
152
|
+
buildActionMask = 2147483647;
|
153
|
+
files = (
|
154
|
+
);
|
155
|
+
runOnlyForDeploymentPostprocessing = 0;
|
156
|
+
};
|
127
157
|
/* End PBXFrameworksBuildPhase section */
|
128
158
|
|
129
159
|
/* Begin PBXGroup section */
|
@@ -155,6 +185,8 @@
|
|
155
185
|
8C9A2036195965F10013B6B3 /* fixtures */,
|
156
186
|
3773307A1CC42A58005EAF65 /* fixturesTwo */,
|
157
187
|
8C9A2047195965F10013B6B3 /* fixturesTests */,
|
188
|
+
B1E6980325F96B670086A3E2 /* FixtureFramework */,
|
189
|
+
B1E6980E25F96B670086A3E2 /* FixtureFrameworkTests */,
|
158
190
|
8C9A202F195965F10013B6B3 /* Frameworks */,
|
159
191
|
8C9A202E195965F10013B6B3 /* Products */,
|
160
192
|
);
|
@@ -167,6 +199,7 @@
|
|
167
199
|
8C9A2040195965F10013B6B3 /* fixturesTests.xctest */,
|
168
200
|
377330791CC42A58005EAF65 /* libfixturesTwo.dylib */,
|
169
201
|
85AE690C1E45F0F900DA2D47 /* fixturesTestsSecond.xctest */,
|
202
|
+
B1E6980225F96B670086A3E2 /* FixtureFramework.framework */,
|
170
203
|
);
|
171
204
|
name = Products;
|
172
205
|
sourceTree = "<group>";
|
@@ -236,6 +269,26 @@
|
|
236
269
|
path = "Supporting Files";
|
237
270
|
sourceTree = "<group>";
|
238
271
|
};
|
272
|
+
B1E6980325F96B670086A3E2 /* FixtureFramework */ = {
|
273
|
+
isa = PBXGroup;
|
274
|
+
children = (
|
275
|
+
B1E6980425F96B670086A3E2 /* FixtureFramework.h */,
|
276
|
+
B1E6980525F96B670086A3E2 /* Info.plist */,
|
277
|
+
B1E6981F25F96B930086A3E2 /* FlashExperiment.swift */,
|
278
|
+
);
|
279
|
+
path = FixtureFramework;
|
280
|
+
sourceTree = "<group>";
|
281
|
+
};
|
282
|
+
B1E6980E25F96B670086A3E2 /* FixtureFrameworkTests */ = {
|
283
|
+
isa = PBXGroup;
|
284
|
+
children = (
|
285
|
+
B1E6980F25F96B680086A3E2 /* FixtureFrameworkTests.swift */,
|
286
|
+
B1E6981125F96B680086A3E2 /* Info.plist */,
|
287
|
+
B1E6982725F96BD30086A3E2 /* FlashExperimentTests.swift */,
|
288
|
+
);
|
289
|
+
path = FixtureFrameworkTests;
|
290
|
+
sourceTree = "<group>";
|
291
|
+
};
|
239
292
|
/* End PBXGroup section */
|
240
293
|
|
241
294
|
/* Begin PBXHeadersBuildPhase section */
|
@@ -260,6 +313,14 @@
|
|
260
313
|
);
|
261
314
|
runOnlyForDeploymentPostprocessing = 0;
|
262
315
|
};
|
316
|
+
B1E697FD25F96B670086A3E2 /* Headers */ = {
|
317
|
+
isa = PBXHeadersBuildPhase;
|
318
|
+
buildActionMask = 2147483647;
|
319
|
+
files = (
|
320
|
+
B1E6981225F96B680086A3E2 /* FixtureFramework.h in Headers */,
|
321
|
+
);
|
322
|
+
runOnlyForDeploymentPostprocessing = 0;
|
323
|
+
};
|
263
324
|
/* End PBXHeadersBuildPhase section */
|
264
325
|
|
265
326
|
/* Begin PBXNativeTarget section */
|
@@ -309,6 +370,7 @@
|
|
309
370
|
buildRules = (
|
310
371
|
);
|
311
372
|
dependencies = (
|
373
|
+
B1E6983025F96F490086A3E2 /* PBXTargetDependency */,
|
312
374
|
);
|
313
375
|
name = fixtures;
|
314
376
|
productName = fixtures;
|
@@ -326,6 +388,7 @@
|
|
326
388
|
buildRules = (
|
327
389
|
);
|
328
390
|
dependencies = (
|
391
|
+
B1E6983825F970320086A3E2 /* PBXTargetDependency */,
|
329
392
|
8C9A2045195965F10013B6B3 /* PBXTargetDependency */,
|
330
393
|
);
|
331
394
|
name = fixturesTests;
|
@@ -333,18 +396,42 @@
|
|
333
396
|
productReference = 8C9A2040195965F10013B6B3 /* fixturesTests.xctest */;
|
334
397
|
productType = "com.apple.product-type.bundle.unit-test";
|
335
398
|
};
|
399
|
+
B1E6980125F96B670086A3E2 /* FixtureFramework */ = {
|
400
|
+
isa = PBXNativeTarget;
|
401
|
+
buildConfigurationList = B1E6981725F96B680086A3E2 /* Build configuration list for PBXNativeTarget "FixtureFramework" */;
|
402
|
+
buildPhases = (
|
403
|
+
B1E697FD25F96B670086A3E2 /* Headers */,
|
404
|
+
B1E697FE25F96B670086A3E2 /* Sources */,
|
405
|
+
B1E697FF25F96B670086A3E2 /* Frameworks */,
|
406
|
+
B1E6980025F96B670086A3E2 /* Resources */,
|
407
|
+
);
|
408
|
+
buildRules = (
|
409
|
+
);
|
410
|
+
dependencies = (
|
411
|
+
);
|
412
|
+
name = FixtureFramework;
|
413
|
+
productName = FixtureFramework;
|
414
|
+
productReference = B1E6980225F96B670086A3E2 /* FixtureFramework.framework */;
|
415
|
+
productType = "com.apple.product-type.framework";
|
416
|
+
};
|
336
417
|
/* End PBXNativeTarget section */
|
337
418
|
|
338
419
|
/* Begin PBXProject section */
|
339
420
|
8C9A2025195965F00013B6B3 /* Project object */ = {
|
340
421
|
isa = PBXProject;
|
341
422
|
attributes = {
|
423
|
+
LastSwiftUpdateCheck = 1240;
|
342
424
|
LastUpgradeCheck = 0510;
|
343
425
|
ORGANIZATIONNAME = marklarr;
|
344
426
|
TargetAttributes = {
|
345
427
|
377330781CC42A58005EAF65 = {
|
346
428
|
CreatedOnToolsVersion = 7.3;
|
347
429
|
};
|
430
|
+
B1E6980125F96B670086A3E2 = {
|
431
|
+
CreatedOnToolsVersion = 12.4;
|
432
|
+
LastSwiftMigration = 1240;
|
433
|
+
ProvisioningStyle = Automatic;
|
434
|
+
};
|
348
435
|
};
|
349
436
|
};
|
350
437
|
buildConfigurationList = 8C9A2028195965F00013B6B3 /* Build configuration list for PBXProject "fixtures" */;
|
@@ -352,6 +439,7 @@
|
|
352
439
|
developmentRegion = English;
|
353
440
|
hasScannedForEncodings = 0;
|
354
441
|
knownRegions = (
|
442
|
+
English,
|
355
443
|
en,
|
356
444
|
);
|
357
445
|
mainGroup = 8C9A2024195965F00013B6B3;
|
@@ -363,6 +451,7 @@
|
|
363
451
|
377330781CC42A58005EAF65 /* fixturesTwo */,
|
364
452
|
8C9A203F195965F10013B6B3 /* fixturesTests */,
|
365
453
|
85AE68FC1E45F0F900DA2D47 /* fixturesTestsSecond */,
|
454
|
+
B1E6980125F96B670086A3E2 /* FixtureFramework */,
|
366
455
|
);
|
367
456
|
};
|
368
457
|
/* End PBXProject section */
|
@@ -384,6 +473,13 @@
|
|
384
473
|
);
|
385
474
|
runOnlyForDeploymentPostprocessing = 0;
|
386
475
|
};
|
476
|
+
B1E6980025F96B670086A3E2 /* Resources */ = {
|
477
|
+
isa = PBXResourcesBuildPhase;
|
478
|
+
buildActionMask = 2147483647;
|
479
|
+
files = (
|
480
|
+
);
|
481
|
+
runOnlyForDeploymentPostprocessing = 0;
|
482
|
+
};
|
387
483
|
/* End PBXResourcesBuildPhase section */
|
388
484
|
|
389
485
|
/* Begin PBXSourcesBuildPhase section */
|
@@ -427,6 +523,14 @@
|
|
427
523
|
);
|
428
524
|
runOnlyForDeploymentPostprocessing = 0;
|
429
525
|
};
|
526
|
+
B1E697FE25F96B670086A3E2 /* Sources */ = {
|
527
|
+
isa = PBXSourcesBuildPhase;
|
528
|
+
buildActionMask = 2147483647;
|
529
|
+
files = (
|
530
|
+
B1E6982025F96B930086A3E2 /* FlashExperiment.swift in Sources */,
|
531
|
+
);
|
532
|
+
runOnlyForDeploymentPostprocessing = 0;
|
533
|
+
};
|
430
534
|
/* End PBXSourcesBuildPhase section */
|
431
535
|
|
432
536
|
/* Begin PBXTargetDependency section */
|
@@ -440,6 +544,16 @@
|
|
440
544
|
target = 8C9A202C195965F10013B6B3 /* fixtures */;
|
441
545
|
targetProxy = 8C9A2044195965F10013B6B3 /* PBXContainerItemProxy */;
|
442
546
|
};
|
547
|
+
B1E6983025F96F490086A3E2 /* PBXTargetDependency */ = {
|
548
|
+
isa = PBXTargetDependency;
|
549
|
+
target = B1E6980125F96B670086A3E2 /* FixtureFramework */;
|
550
|
+
targetProxy = B1E6982F25F96F490086A3E2 /* PBXContainerItemProxy */;
|
551
|
+
};
|
552
|
+
B1E6983825F970320086A3E2 /* PBXTargetDependency */ = {
|
553
|
+
isa = PBXTargetDependency;
|
554
|
+
target = B1E6980125F96B670086A3E2 /* FixtureFramework */;
|
555
|
+
targetProxy = B1E6983725F970320086A3E2 /* PBXContainerItemProxy */;
|
556
|
+
};
|
443
557
|
/* End PBXTargetDependency section */
|
444
558
|
|
445
559
|
/* Begin PBXVariantGroup section */
|
@@ -653,6 +767,105 @@
|
|
653
767
|
};
|
654
768
|
name = Release;
|
655
769
|
};
|
770
|
+
B1E6981325F96B680086A3E2 /* Debug */ = {
|
771
|
+
isa = XCBuildConfiguration;
|
772
|
+
buildSettings = {
|
773
|
+
CLANG_ANALYZER_NONNULL = YES;
|
774
|
+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
775
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
776
|
+
CLANG_ENABLE_MODULES = YES;
|
777
|
+
CLANG_ENABLE_OBJC_WEAK = YES;
|
778
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
779
|
+
CLANG_WARN_COMMA = YES;
|
780
|
+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
781
|
+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
782
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
783
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
784
|
+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
785
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
786
|
+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
787
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
788
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
789
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
790
|
+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
791
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
792
|
+
CODE_SIGN_STYLE = Automatic;
|
793
|
+
COMBINE_HIDPI_IMAGES = YES;
|
794
|
+
CURRENT_PROJECT_VERSION = 1;
|
795
|
+
DEFINES_MODULE = YES;
|
796
|
+
DYLIB_COMPATIBILITY_VERSION = 1;
|
797
|
+
DYLIB_CURRENT_VERSION = 1;
|
798
|
+
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
799
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
800
|
+
ENABLE_TESTABILITY = YES;
|
801
|
+
GCC_C_LANGUAGE_STANDARD = gnu11;
|
802
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
803
|
+
INFOPLIST_FILE = FixtureFramework/Info.plist;
|
804
|
+
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
805
|
+
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
|
806
|
+
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
807
|
+
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
808
|
+
MTL_FAST_MATH = YES;
|
809
|
+
PRODUCT_BUNDLE_IDENTIFIER = com.onato.FixtureFramework;
|
810
|
+
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
811
|
+
SKIP_INSTALL = YES;
|
812
|
+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
813
|
+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
814
|
+
SWIFT_VERSION = 5.0;
|
815
|
+
VERSIONING_SYSTEM = "apple-generic";
|
816
|
+
VERSION_INFO_PREFIX = "";
|
817
|
+
};
|
818
|
+
name = Debug;
|
819
|
+
};
|
820
|
+
B1E6981425F96B680086A3E2 /* Release */ = {
|
821
|
+
isa = XCBuildConfiguration;
|
822
|
+
buildSettings = {
|
823
|
+
CLANG_ANALYZER_NONNULL = YES;
|
824
|
+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
825
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
826
|
+
CLANG_ENABLE_MODULES = YES;
|
827
|
+
CLANG_ENABLE_OBJC_WEAK = YES;
|
828
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
829
|
+
CLANG_WARN_COMMA = YES;
|
830
|
+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
831
|
+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
832
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
833
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
834
|
+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
835
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
836
|
+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
837
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
838
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
839
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
840
|
+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
841
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
842
|
+
CODE_SIGN_STYLE = Automatic;
|
843
|
+
COMBINE_HIDPI_IMAGES = YES;
|
844
|
+
COPY_PHASE_STRIP = NO;
|
845
|
+
CURRENT_PROJECT_VERSION = 1;
|
846
|
+
DEFINES_MODULE = YES;
|
847
|
+
DYLIB_COMPATIBILITY_VERSION = 1;
|
848
|
+
DYLIB_CURRENT_VERSION = 1;
|
849
|
+
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
850
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
851
|
+
GCC_C_LANGUAGE_STANDARD = gnu11;
|
852
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
853
|
+
INFOPLIST_FILE = FixtureFramework/Info.plist;
|
854
|
+
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
855
|
+
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
|
856
|
+
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
857
|
+
MTL_ENABLE_DEBUG_INFO = NO;
|
858
|
+
MTL_FAST_MATH = YES;
|
859
|
+
PRODUCT_BUNDLE_IDENTIFIER = com.onato.FixtureFramework;
|
860
|
+
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
861
|
+
SKIP_INSTALL = YES;
|
862
|
+
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
863
|
+
SWIFT_VERSION = 5.0;
|
864
|
+
VERSIONING_SYSTEM = "apple-generic";
|
865
|
+
VERSION_INFO_PREFIX = "";
|
866
|
+
};
|
867
|
+
name = Release;
|
868
|
+
};
|
656
869
|
/* End XCBuildConfiguration section */
|
657
870
|
|
658
871
|
/* Begin XCConfigurationList section */
|
@@ -701,6 +914,15 @@
|
|
701
914
|
defaultConfigurationIsVisible = 0;
|
702
915
|
defaultConfigurationName = Release;
|
703
916
|
};
|
917
|
+
B1E6981725F96B680086A3E2 /* Build configuration list for PBXNativeTarget "FixtureFramework" */ = {
|
918
|
+
isa = XCConfigurationList;
|
919
|
+
buildConfigurations = (
|
920
|
+
B1E6981325F96B680086A3E2 /* Debug */,
|
921
|
+
B1E6981425F96B680086A3E2 /* Release */,
|
922
|
+
);
|
923
|
+
defaultConfigurationIsVisible = 0;
|
924
|
+
defaultConfigurationName = Release;
|
925
|
+
};
|
704
926
|
/* End XCConfigurationList section */
|
705
927
|
};
|
706
928
|
rootObject = 8C9A2025195965F00013B6B3 /* Project object */;
|
@@ -26,7 +26,18 @@
|
|
26
26
|
buildConfiguration = "Debug"
|
27
27
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
28
28
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
29
|
-
shouldUseLaunchSchemeArgsEnv = "YES"
|
29
|
+
shouldUseLaunchSchemeArgsEnv = "YES"
|
30
|
+
codeCoverageEnabled = "YES"
|
31
|
+
onlyGenerateCoverageForSpecifiedTargets = "YES">
|
32
|
+
<CodeCoverageTargets>
|
33
|
+
<BuildableReference
|
34
|
+
BuildableIdentifier = "primary"
|
35
|
+
BlueprintIdentifier = "B1E6980125F96B670086A3E2"
|
36
|
+
BuildableName = "FixtureFramework.framework"
|
37
|
+
BlueprintName = "FixtureFramework"
|
38
|
+
ReferencedContainer = "container:fixtures.xcodeproj">
|
39
|
+
</BuildableReference>
|
40
|
+
</CodeCoverageTargets>
|
30
41
|
<Testables>
|
31
42
|
<TestableReference
|
32
43
|
skipped = "NO">
|
@@ -39,8 +50,6 @@
|
|
39
50
|
</BuildableReference>
|
40
51
|
</TestableReference>
|
41
52
|
</Testables>
|
42
|
-
<AdditionalOptions>
|
43
|
-
</AdditionalOptions>
|
44
53
|
</TestAction>
|
45
54
|
<LaunchAction
|
46
55
|
buildConfiguration = "Debug"
|
@@ -61,8 +70,6 @@
|
|
61
70
|
ReferencedContainer = "container:fixtures.xcodeproj">
|
62
71
|
</BuildableReference>
|
63
72
|
</MacroExpansion>
|
64
|
-
<AdditionalOptions>
|
65
|
-
</AdditionalOptions>
|
66
73
|
</LaunchAction>
|
67
74
|
<ProfileAction
|
68
75
|
buildConfiguration = "Release"
|
@@ -70,6 +77,15 @@
|
|
70
77
|
savedToolIdentifier = ""
|
71
78
|
useCustomWorkingDirectory = "NO"
|
72
79
|
debugDocumentVersioning = "YES">
|
80
|
+
<MacroExpansion>
|
81
|
+
<BuildableReference
|
82
|
+
BuildableIdentifier = "primary"
|
83
|
+
BlueprintIdentifier = "8C9A202C195965F10013B6B3"
|
84
|
+
BuildableName = "libfixtures.a"
|
85
|
+
BlueprintName = "fixtures"
|
86
|
+
ReferencedContainer = "container:fixtures.xcodeproj">
|
87
|
+
</BuildableReference>
|
88
|
+
</MacroExpansion>
|
73
89
|
</ProfileAction>
|
74
90
|
<AnalyzeAction
|
75
91
|
buildConfiguration = "Debug">
|
@@ -167,6 +167,10 @@ describe Slather::ProfdataCoverageFile do
|
|
167
167
|
profdata_coverage_file.segments = [[19, 9, 0, true, false], [19, 20, 1, true, false]]
|
168
168
|
expect(profdata_coverage_file.branch_region_data[19]).to eq([[8,11]])
|
169
169
|
end
|
170
|
+
it "should have two missing region data for line 19" do
|
171
|
+
profdata_coverage_file.segments = [[19, 9, 0, true, false], [19, 20, 1, true, false], [19, 30, 0, true, false], [19, 40, 1, true, true]]
|
172
|
+
expect(profdata_coverage_file.branch_region_data[19]).to eq([[8,11], [29,10]])
|
173
|
+
end
|
170
174
|
end
|
171
175
|
|
172
176
|
describe "#ignored" do
|
@@ -243,8 +243,9 @@ describe Slather::Project do
|
|
243
243
|
allow(fixtures_project).to receive(:scheme).and_return("fixtures")
|
244
244
|
fixtures_project.send(:configure_binary_file)
|
245
245
|
binary_file_location = fixtures_project.send(:binary_file)
|
246
|
-
expect(binary_file_location.count).to eq(
|
247
|
-
expect(binary_file_location.first).to end_with("Debug/
|
246
|
+
expect(binary_file_location.count).to eq(2)
|
247
|
+
expect(binary_file_location.first).to end_with("Debug/FixtureFramework.framework/Versions/A/FixtureFramework")
|
248
|
+
expect(binary_file_location.last).to end_with("Debug/fixturesTests.xctest/Contents/MacOS/fixturesTests")
|
248
249
|
end
|
249
250
|
|
250
251
|
it "should find the product path provided a workspace and scheme" do
|
@@ -252,8 +253,9 @@ describe Slather::Project do
|
|
252
253
|
allow(fixtures_project).to receive(:scheme).and_return("fixtures")
|
253
254
|
fixtures_project.send(:configure_binary_file)
|
254
255
|
binary_file_location = fixtures_project.send(:binary_file)
|
255
|
-
expect(binary_file_location.count).to eq(
|
256
|
-
expect(binary_file_location.first).to end_with("Debug/
|
256
|
+
expect(binary_file_location.count).to eq(2)
|
257
|
+
expect(binary_file_location.first).to end_with("Debug/FixtureFramework.framework/Versions/A/FixtureFramework")
|
258
|
+
expect(binary_file_location.last).to end_with("Debug/fixturesTests.xctest/Contents/MacOS/fixturesTests")
|
257
259
|
end
|
258
260
|
|
259
261
|
it "should find the product path for a scheme with no buildable products" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slather
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Larsen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -255,6 +255,12 @@ files:
|
|
255
255
|
- lib/slather/project.rb
|
256
256
|
- lib/slather/version.rb
|
257
257
|
- slather.gemspec
|
258
|
+
- spec/fixtures/FixtureFramework/FixtureFramework.h
|
259
|
+
- spec/fixtures/FixtureFramework/FlashExperiment.swift
|
260
|
+
- spec/fixtures/FixtureFramework/Info.plist
|
261
|
+
- spec/fixtures/FixtureFrameworkTests/FixtureFrameworkTests.swift
|
262
|
+
- spec/fixtures/FixtureFrameworkTests/FlashExperimentTests.swift
|
263
|
+
- spec/fixtures/FixtureFrameworkTests/Info.plist
|
258
264
|
- spec/fixtures/cobertura.xml
|
259
265
|
- spec/fixtures/fixtures.xcodeproj/project.pbxproj
|
260
266
|
- spec/fixtures/fixtures.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
@@ -264,6 +270,7 @@ files:
|
|
264
270
|
- spec/fixtures/fixtures.xcodeproj/xcshareddata/xcschemes/fixturesTestsSecond.xcscheme
|
265
271
|
- spec/fixtures/fixtures.xcodeproj/xcshareddata/xcschemes/fixturesTwo.xcscheme
|
266
272
|
- spec/fixtures/fixtures.xcworkspace/contents.xcworkspacedata
|
273
|
+
- spec/fixtures/fixtures.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
|
267
274
|
- spec/fixtures/fixtures.xcworkspace/xcshareddata/xcschemes/fixturesTestsWorkspace.xcscheme
|
268
275
|
- spec/fixtures/fixtures/Fixtures.swift
|
269
276
|
- spec/fixtures/fixtures/Supporting Files/fixtures-Prefix.pch
|
@@ -339,6 +346,12 @@ signing_key:
|
|
339
346
|
specification_version: 4
|
340
347
|
summary: Test coverage reports for Xcode projects
|
341
348
|
test_files:
|
349
|
+
- spec/fixtures/FixtureFramework/FixtureFramework.h
|
350
|
+
- spec/fixtures/FixtureFramework/FlashExperiment.swift
|
351
|
+
- spec/fixtures/FixtureFramework/Info.plist
|
352
|
+
- spec/fixtures/FixtureFrameworkTests/FixtureFrameworkTests.swift
|
353
|
+
- spec/fixtures/FixtureFrameworkTests/FlashExperimentTests.swift
|
354
|
+
- spec/fixtures/FixtureFrameworkTests/Info.plist
|
342
355
|
- spec/fixtures/cobertura.xml
|
343
356
|
- spec/fixtures/fixtures.xcodeproj/project.pbxproj
|
344
357
|
- spec/fixtures/fixtures.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
@@ -348,6 +361,7 @@ test_files:
|
|
348
361
|
- spec/fixtures/fixtures.xcodeproj/xcshareddata/xcschemes/fixturesTestsSecond.xcscheme
|
349
362
|
- spec/fixtures/fixtures.xcodeproj/xcshareddata/xcschemes/fixturesTwo.xcscheme
|
350
363
|
- spec/fixtures/fixtures.xcworkspace/contents.xcworkspacedata
|
364
|
+
- spec/fixtures/fixtures.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
|
351
365
|
- spec/fixtures/fixtures.xcworkspace/xcshareddata/xcschemes/fixturesTestsWorkspace.xcscheme
|
352
366
|
- spec/fixtures/fixtures/Fixtures.swift
|
353
367
|
- spec/fixtures/fixtures/Supporting Files/fixtures-Prefix.pch
|