slather 2.4.8 → 2.7.5
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/.gitignore +1 -1
- data/.travis.yml +4 -2
- data/CHANGELOG.md +100 -0
- data/README.md +26 -3
- data/assets/slather.css +2 -1
- data/lib/slather/command/coverage_command.rb +9 -1
- data/lib/slather/coverage_file.rb +14 -9
- data/lib/slather/coverage_service/coveralls.rb +129 -5
- data/lib/slather/coverage_service/html_output.rb +62 -6
- data/lib/slather/coverage_service/sonarqube_xml_output.rb +61 -0
- data/lib/slather/profdata_coverage_file.rb +42 -2
- data/lib/slather/project.rb +41 -7
- data/lib/slather/version.rb +1 -1
- data/lib/slather.rb +1 -0
- data/slather.gemspec +5 -5
- 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/cobertura.xml +157 -37
- 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/fixtures/sonarqube-generic-coverage.xml +93 -0
- data/spec/slather/coverage_service/cobertura_xml_spec.rb +1 -1
- data/spec/slather/coverage_service/coveralls_spec.rb +20 -0
- data/spec/slather/coverage_service/html_output_spec.rb +2 -2
- data/spec/slather/coverage_service/json_spec.rb +1 -1
- data/spec/slather/coverage_service/llvm_cov_spec.rb +1 -1
- data/spec/slather/coverage_service/sonarqube_xml_spec.rb +46 -0
- data/spec/slather/profdata_coverage_spec.rb +16 -0
- data/spec/slather/project_spec.rb +12 -8
- data/spec/spec_helper.rb +1 -0
- metadata +38 -25
|
@@ -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">
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<coverage version="1">
|
|
3
|
+
<file path="spec/fixtures/fixtures/fixtures.m">
|
|
4
|
+
<lineToCover lineNumber="14" covered="true"/>
|
|
5
|
+
<lineToCover lineNumber="15" covered="true"/>
|
|
6
|
+
<lineToCover lineNumber="16" covered="true"/>
|
|
7
|
+
<lineToCover lineNumber="19" covered="false"/>
|
|
8
|
+
<lineToCover lineNumber="20" covered="false"/>
|
|
9
|
+
<lineToCover lineNumber="21" covered="false"/>
|
|
10
|
+
</file>
|
|
11
|
+
<file path="spec/fixtures/fixtures/more_files/Branches.m">
|
|
12
|
+
<lineToCover lineNumber="14" covered="true"/>
|
|
13
|
+
<lineToCover lineNumber="15" covered="true"/>
|
|
14
|
+
<lineToCover lineNumber="16" covered="true"/>
|
|
15
|
+
<lineToCover lineNumber="17" covered="true"/>
|
|
16
|
+
<lineToCover lineNumber="18" covered="true"/>
|
|
17
|
+
<lineToCover lineNumber="19" covered="false"/>
|
|
18
|
+
<lineToCover lineNumber="20" covered="false"/>
|
|
19
|
+
<lineToCover lineNumber="21" covered="true"/>
|
|
20
|
+
<lineToCover lineNumber="22" covered="true"/>
|
|
21
|
+
<lineToCover lineNumber="23" covered="true"/>
|
|
22
|
+
<lineToCover lineNumber="24" covered="true"/>
|
|
23
|
+
<lineToCover lineNumber="25" covered="true"/>
|
|
24
|
+
<lineToCover lineNumber="26" covered="true"/>
|
|
25
|
+
<lineToCover lineNumber="27" covered="true"/>
|
|
26
|
+
<lineToCover lineNumber="28" covered="true"/>
|
|
27
|
+
<lineToCover lineNumber="29" covered="false"/>
|
|
28
|
+
<lineToCover lineNumber="30" covered="false"/>
|
|
29
|
+
<lineToCover lineNumber="31" covered="false"/>
|
|
30
|
+
<lineToCover lineNumber="32" covered="false"/>
|
|
31
|
+
<lineToCover lineNumber="33" covered="false"/>
|
|
32
|
+
<lineToCover lineNumber="34" covered="false"/>
|
|
33
|
+
<lineToCover lineNumber="35" covered="false"/>
|
|
34
|
+
<lineToCover lineNumber="36" covered="false"/>
|
|
35
|
+
<lineToCover lineNumber="37" covered="false"/>
|
|
36
|
+
<lineToCover lineNumber="38" covered="false"/>
|
|
37
|
+
<lineToCover lineNumber="39" covered="false"/>
|
|
38
|
+
<lineToCover lineNumber="40" covered="false"/>
|
|
39
|
+
<lineToCover lineNumber="41" covered="false"/>
|
|
40
|
+
<lineToCover lineNumber="42" covered="false"/>
|
|
41
|
+
<lineToCover lineNumber="43" covered="false"/>
|
|
42
|
+
</file>
|
|
43
|
+
<file path="spec/fixtures/fixturesTests/BranchesTests.m">
|
|
44
|
+
<lineToCover lineNumber="18" covered="true"/>
|
|
45
|
+
<lineToCover lineNumber="19" covered="true"/>
|
|
46
|
+
<lineToCover lineNumber="20" covered="true"/>
|
|
47
|
+
<lineToCover lineNumber="21" covered="true"/>
|
|
48
|
+
<lineToCover lineNumber="23" covered="true"/>
|
|
49
|
+
<lineToCover lineNumber="24" covered="true"/>
|
|
50
|
+
<lineToCover lineNumber="25" covered="true"/>
|
|
51
|
+
<lineToCover lineNumber="26" covered="true"/>
|
|
52
|
+
<lineToCover lineNumber="28" covered="true"/>
|
|
53
|
+
<lineToCover lineNumber="29" covered="true"/>
|
|
54
|
+
<lineToCover lineNumber="30" covered="true"/>
|
|
55
|
+
<lineToCover lineNumber="31" covered="true"/>
|
|
56
|
+
<lineToCover lineNumber="33" covered="true"/>
|
|
57
|
+
<lineToCover lineNumber="34" covered="true"/>
|
|
58
|
+
<lineToCover lineNumber="35" covered="true"/>
|
|
59
|
+
<lineToCover lineNumber="36" covered="true"/>
|
|
60
|
+
</file>
|
|
61
|
+
<file path="spec/fixtures/fixturesTests/fixturesTests.m">
|
|
62
|
+
<lineToCover lineNumber="20" covered="true"/>
|
|
63
|
+
<lineToCover lineNumber="21" covered="true"/>
|
|
64
|
+
<lineToCover lineNumber="22" covered="true"/>
|
|
65
|
+
<lineToCover lineNumber="23" covered="true"/>
|
|
66
|
+
<lineToCover lineNumber="26" covered="true"/>
|
|
67
|
+
<lineToCover lineNumber="27" covered="true"/>
|
|
68
|
+
<lineToCover lineNumber="28" covered="true"/>
|
|
69
|
+
<lineToCover lineNumber="29" covered="true"/>
|
|
70
|
+
<lineToCover lineNumber="32" covered="true"/>
|
|
71
|
+
<lineToCover lineNumber="33" covered="true"/>
|
|
72
|
+
<lineToCover lineNumber="34" covered="true"/>
|
|
73
|
+
<lineToCover lineNumber="35" covered="true"/>
|
|
74
|
+
<lineToCover lineNumber="38" covered="true"/>
|
|
75
|
+
<lineToCover lineNumber="39" covered="true"/>
|
|
76
|
+
<lineToCover lineNumber="40" covered="true"/>
|
|
77
|
+
<lineToCover lineNumber="41" covered="true"/>
|
|
78
|
+
<lineToCover lineNumber="42" covered="true"/>
|
|
79
|
+
</file>
|
|
80
|
+
<file path="spec/fixtures/fixturesTests/peekaviewTests💣.m">
|
|
81
|
+
<lineToCover lineNumber="18" covered="true"/>
|
|
82
|
+
<lineToCover lineNumber="19" covered="true"/>
|
|
83
|
+
<lineToCover lineNumber="20" covered="true"/>
|
|
84
|
+
<lineToCover lineNumber="21" covered="true"/>
|
|
85
|
+
<lineToCover lineNumber="24" covered="true"/>
|
|
86
|
+
<lineToCover lineNumber="25" covered="true"/>
|
|
87
|
+
<lineToCover lineNumber="26" covered="true"/>
|
|
88
|
+
<lineToCover lineNumber="27" covered="true"/>
|
|
89
|
+
<lineToCover lineNumber="30" covered="true"/>
|
|
90
|
+
<lineToCover lineNumber="31" covered="true"/>
|
|
91
|
+
<lineToCover lineNumber="32" covered="true"/>
|
|
92
|
+
</file>
|
|
93
|
+
</coverage>
|
|
@@ -45,7 +45,7 @@ describe Slather::CoverageService::CoberturaXmlOutput do
|
|
|
45
45
|
fixtures_project.post
|
|
46
46
|
|
|
47
47
|
filepath = "#{fixtures_project.output_directory}/cobertura.xml"
|
|
48
|
-
expect(File.
|
|
48
|
+
expect(File.exist?(filepath)).to be_truthy
|
|
49
49
|
|
|
50
50
|
FileUtils.rm_rf(fixtures_project.output_directory)
|
|
51
51
|
end
|
|
@@ -151,6 +151,26 @@ describe Slather::CoverageService::Coveralls do
|
|
|
151
151
|
ENV['GIT_BRANCH'] = git_branch
|
|
152
152
|
end
|
|
153
153
|
end
|
|
154
|
+
|
|
155
|
+
context "coverage_service is :github" do
|
|
156
|
+
before(:each) { fixtures_project.ci_service = :github }
|
|
157
|
+
|
|
158
|
+
it "should return valid json for coveralls coverage data" do
|
|
159
|
+
allow(fixtures_project).to receive(:github_job_id).and_return("9182")
|
|
160
|
+
allow(fixtures_project).to receive(:coverage_access_token).and_return("abc123")
|
|
161
|
+
allow(fixtures_project).to receive(:github_pull_request).and_return("1")
|
|
162
|
+
allow(fixtures_project).to receive(:github_build_url).and_return("https://github.com/Bruce/Wayne/actions/runs/1")
|
|
163
|
+
allow(fixtures_project).to receive(:github_git_info).and_return({ :head => { :id => "ababa123", :author_name => "bwayne", :message => "hello" }, :branch => "master" })
|
|
164
|
+
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql("{\"service_job_id\":\"9182\",\"service_name\":\"github\",\"repo_name\":\"\",\"repo_token\":\"abc123\",\"service_pull_request\":\"1\",\"service_build_url\":\"https://github.com/Bruce/Wayne/actions/runs/1\",\"git\":{\"head\":{\"id\":\"ababa123\",\"author_name\":\"bwayne\",\"message\":\"hello\"},\"branch\":\"master\"}}").excluding("source_files")
|
|
165
|
+
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.coverage_files.map(&:as_json).to_json).at_path("source_files")
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
it "should raise an error if there is no GITHUB_RUN_ID" do
|
|
169
|
+
allow(fixtures_project).to receive(:github_job_id).and_return(nil)
|
|
170
|
+
expect { fixtures_project.send(:coveralls_coverage_data) }.to raise_error(StandardError)
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
154
174
|
end
|
|
155
175
|
|
|
156
176
|
describe '#coveralls_coverage_data' do
|
|
@@ -185,8 +185,8 @@ describe Slather::CoverageService::HtmlOutput do
|
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
allow(fixtures_project).to receive(:input_format).and_return("profdata")
|
|
188
|
-
allow(fixtures_project).to receive(:
|
|
189
|
-
|
|
188
|
+
allow(fixtures_project).to receive(:pathnames_per_binary).and_return([{"filename" => Pathname.new("./spec/fixtures/fixtures/other_fixtures.m"), "segments" => []}])
|
|
189
|
+
allow(fixtures_project).to receive(:profdata_llvm_cov_output).and_return("1| |//
|
|
190
190
|
2| |// other_fixtures.m
|
|
191
191
|
3| |// fixtures
|
|
192
192
|
4| |//
|
|
@@ -35,7 +35,7 @@ describe Slather::CoverageService::JsonOutput do
|
|
|
35
35
|
fixtures_project.post
|
|
36
36
|
|
|
37
37
|
filepath = "#{fixtures_project.output_directory}/report.json"
|
|
38
|
-
expect(File.
|
|
38
|
+
expect(File.exist?(filepath)).to be_truthy
|
|
39
39
|
|
|
40
40
|
FileUtils.rm_rf(fixtures_project.output_directory)
|
|
41
41
|
end
|
|
@@ -38,7 +38,7 @@ describe Slather::CoverageService::LlvmCovOutput do
|
|
|
38
38
|
fixtures_project.post
|
|
39
39
|
|
|
40
40
|
filepath = "#{fixtures_project.output_directory}/report.llcov"
|
|
41
|
-
expect(File.
|
|
41
|
+
expect(File.exist?(filepath)).to be_truthy
|
|
42
42
|
|
|
43
43
|
FileUtils.rm_rf(fixtures_project.output_directory)
|
|
44
44
|
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
|
2
|
+
require 'json'
|
|
3
|
+
|
|
4
|
+
describe Slather::CoverageService::SonarqubeXmlOutput do
|
|
5
|
+
|
|
6
|
+
let(:fixtures_project) do
|
|
7
|
+
proj = Slather::Project.open(FIXTURES_PROJECT_PATH)
|
|
8
|
+
proj.build_directory = TEMP_DERIVED_DATA_PATH
|
|
9
|
+
proj.input_format = "profdata"
|
|
10
|
+
proj.coverage_service = "sonarqube_xml"
|
|
11
|
+
proj.configure
|
|
12
|
+
proj
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe '#coverage_file_class' do
|
|
16
|
+
it "should return CoverageFile" do
|
|
17
|
+
expect(fixtures_project.send(:coverage_file_class)).to eq(Slather::ProfdataCoverageFile)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe '#post' do
|
|
22
|
+
it "should create an XML report spanning all coverage files" do
|
|
23
|
+
fixtures_project.post
|
|
24
|
+
|
|
25
|
+
file = File.open(FIXTURES_SONARQUBE_XML_PATH)
|
|
26
|
+
fixture_xml_doc = Nokogiri::XML(file)
|
|
27
|
+
file.close
|
|
28
|
+
|
|
29
|
+
file = File.open('sonarqube-generic-coverage.xml')
|
|
30
|
+
current_xml_doc = Nokogiri::XML(file)
|
|
31
|
+
file.close
|
|
32
|
+
|
|
33
|
+
expect(EquivalentXml.equivalent?(current_xml_doc, fixture_xml_doc)).to be_truthy
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should create an XML report in the given output directory" do
|
|
37
|
+
fixtures_project.output_directory = "./output"
|
|
38
|
+
fixtures_project.post
|
|
39
|
+
|
|
40
|
+
filepath = "#{fixtures_project.output_directory}/sonarqube-generic-coverage.xml"
|
|
41
|
+
expect(File.exist?(filepath)).to be_truthy
|
|
42
|
+
|
|
43
|
+
FileUtils.rm_rf(fixtures_project.output_directory)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -157,6 +157,22 @@ describe Slather::ProfdataCoverageFile do
|
|
|
157
157
|
end
|
|
158
158
|
end
|
|
159
159
|
|
|
160
|
+
describe "#branch_coverage_data" do
|
|
161
|
+
it "should have branch data for line 19" do
|
|
162
|
+
# these segments correspond to the only statement on line 19
|
|
163
|
+
profdata_coverage_file.segments = [[19, 9, 0, true, false], [19, 20, 1, true, false]]
|
|
164
|
+
expect(profdata_coverage_file.branch_coverage_data[19]).to eq([0,1])
|
|
165
|
+
end
|
|
166
|
+
it "should have missing region data for line 19" do
|
|
167
|
+
profdata_coverage_file.segments = [[19, 9, 0, true, false], [19, 20, 1, true, false]]
|
|
168
|
+
expect(profdata_coverage_file.branch_region_data[19]).to eq([[8,11]])
|
|
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
|
|
174
|
+
end
|
|
175
|
+
|
|
160
176
|
describe "#ignored" do
|
|
161
177
|
|
|
162
178
|
before(:each) {
|