Run CI on Linux Swift 5.2 (#3199)

* Run CI on Linux Swift 5.2

* fixup! Run CI on Linux Swift 5.2

* Move SwiftVersion tests to its own file
This commit is contained in:
JP Simard 2020-05-06 14:16:17 -07:00 committed by GitHub
parent 52cd6ebe06
commit 345933ebb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 84 additions and 66 deletions

View File

@ -198,6 +198,7 @@
8F6AA75D21190830009BA28A /* CompilerArgumentsExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F6AA75C21190830009BA28A /* CompilerArgumentsExtractor.swift */; }; 8F6AA75D21190830009BA28A /* CompilerArgumentsExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F6AA75C21190830009BA28A /* CompilerArgumentsExtractor.swift */; };
8F715B83213B528B00427BD9 /* UnusedImportRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F715B82213B528B00427BD9 /* UnusedImportRule.swift */; }; 8F715B83213B528B00427BD9 /* UnusedImportRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F715B82213B528B00427BD9 /* UnusedImportRule.swift */; };
8F8050821FFE0CBB006F5B93 /* Configuration+IndentationStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F8050811FFE0CBB006F5B93 /* Configuration+IndentationStyle.swift */; }; 8F8050821FFE0CBB006F5B93 /* Configuration+IndentationStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F8050811FFE0CBB006F5B93 /* Configuration+IndentationStyle.swift */; };
8FBE99D024635B8500ABF078 /* SwiftVersionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FBE99CF24635B8500ABF078 /* SwiftVersionTests.swift */; };
8FC1DFAC23FC7C9700F49E2C /* ImportUsage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FC1DFAB23FC7C9700F49E2C /* ImportUsage.swift */; }; 8FC1DFAC23FC7C9700F49E2C /* ImportUsage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FC1DFAB23FC7C9700F49E2C /* ImportUsage.swift */; };
8FC1DFAE23FC7D0400F49E2C /* UnusedImportConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FC1DFAD23FC7D0400F49E2C /* UnusedImportConfiguration.swift */; }; 8FC1DFAE23FC7D0400F49E2C /* UnusedImportConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FC1DFAD23FC7D0400F49E2C /* UnusedImportConfiguration.swift */; };
8FC8523B2117BDDE0015269B /* ExplicitSelfRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FC8523A2117BDDE0015269B /* ExplicitSelfRule.swift */; }; 8FC8523B2117BDDE0015269B /* ExplicitSelfRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FC8523A2117BDDE0015269B /* ExplicitSelfRule.swift */; };
@ -711,6 +712,7 @@
8F6AA75C21190830009BA28A /* CompilerArgumentsExtractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompilerArgumentsExtractor.swift; sourceTree = "<group>"; }; 8F6AA75C21190830009BA28A /* CompilerArgumentsExtractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompilerArgumentsExtractor.swift; sourceTree = "<group>"; };
8F715B82213B528B00427BD9 /* UnusedImportRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnusedImportRule.swift; sourceTree = "<group>"; }; 8F715B82213B528B00427BD9 /* UnusedImportRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnusedImportRule.swift; sourceTree = "<group>"; };
8F8050811FFE0CBB006F5B93 /* Configuration+IndentationStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Configuration+IndentationStyle.swift"; sourceTree = "<group>"; }; 8F8050811FFE0CBB006F5B93 /* Configuration+IndentationStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Configuration+IndentationStyle.swift"; sourceTree = "<group>"; };
8FBE99CF24635B8500ABF078 /* SwiftVersionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftVersionTests.swift; sourceTree = "<group>"; };
8FC1DFAB23FC7C9700F49E2C /* ImportUsage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportUsage.swift; sourceTree = "<group>"; }; 8FC1DFAB23FC7C9700F49E2C /* ImportUsage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportUsage.swift; sourceTree = "<group>"; };
8FC1DFAD23FC7D0400F49E2C /* UnusedImportConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnusedImportConfiguration.swift; sourceTree = "<group>"; }; 8FC1DFAD23FC7D0400F49E2C /* UnusedImportConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnusedImportConfiguration.swift; sourceTree = "<group>"; };
8FC8523A2117BDDE0015269B /* ExplicitSelfRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExplicitSelfRule.swift; sourceTree = "<group>"; }; 8FC8523A2117BDDE0015269B /* ExplicitSelfRule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExplicitSelfRule.swift; sourceTree = "<group>"; };
@ -1561,11 +1563,12 @@
CCD8B87720559C4A00B75847 /* DisableAllTests.swift */, CCD8B87720559C4A00B75847 /* DisableAllTests.swift */,
62AF35D71F30B183009B11EE /* DiscouragedDirectInitRuleTests.swift */, 62AF35D71F30B183009B11EE /* DiscouragedDirectInitRuleTests.swift */,
D414D6AB21D0B77F00960935 /* DiscouragedObjectLiteralRuleTests.swift */, D414D6AB21D0B77F00960935 /* DiscouragedObjectLiteralRuleTests.swift */,
6A804EF423D8FA7900976471 /* EmptyCountRuleTests.swift */,
5B1701B823CEAF8C00CC7079 /* ExampleTests.swift */, 5B1701B823CEAF8C00CC7079 /* ExampleTests.swift */,
224E7F9B235A5E4D0051368B /* ExpiringTodoRuleTests.swift */,
125CE52E20425EFD001635E5 /* ExplicitTypeInterfaceConfigurationTests.swift */, 125CE52E20425EFD001635E5 /* ExplicitTypeInterfaceConfigurationTests.swift */,
12E3D4DB2042729300B3E30E /* ExplicitTypeInterfaceRuleTests.swift */, 12E3D4DB2042729300B3E30E /* ExplicitTypeInterfaceRuleTests.swift */,
02FD8AEE1BFC18D60014BFFB /* ExtendedNSStringTests.swift */, 02FD8AEE1BFC18D60014BFFB /* ExtendedNSStringTests.swift */,
6A804EF423D8FA7900976471 /* EmptyCountRuleTests.swift */,
D4998DE81DF194F20006E05D /* FileHeaderRuleTests.swift */, D4998DE81DF194F20006E05D /* FileHeaderRuleTests.swift */,
29FFC37B1F157BA8007E4825 /* FileLengthRuleTests.swift */, 29FFC37B1F157BA8007E4825 /* FileLengthRuleTests.swift */,
4100D7A123BEAB5A009464E0 /* FileNameNoSpaceRuleTests.swift */, 4100D7A123BEAB5A009464E0 /* FileNameNoSpaceRuleTests.swift */,
@ -1582,9 +1585,9 @@
B1FD3ABC238BC5FB00CE121E /* ImplicitReturnRuleTests.swift */, B1FD3ABC238BC5FB00CE121E /* ImplicitReturnRuleTests.swift */,
CC8C6D2122935F4E00A55D1A /* IndentationWidthRuleTests.swift */, CC8C6D2122935F4E00A55D1A /* IndentationWidthRuleTests.swift */,
E832F10C1B17E725003F265F /* IntegrationTests.swift */, E832F10C1B17E725003F265F /* IntegrationTests.swift */,
D4E4FB5123E7A1A300746FCD /* LineEndingTests.swift */,
3B63D46C1E1F05160057BE35 /* LineLengthConfigurationTests.swift */, 3B63D46C1E1F05160057BE35 /* LineLengthConfigurationTests.swift */,
3B63D46E1E1F09DF0057BE35 /* LineLengthRuleTests.swift */, 3B63D46E1E1F09DF0057BE35 /* LineLengthRuleTests.swift */,
D4E4FB5123E7A1A300746FCD /* LineEndingTests.swift */,
D4C27BFF1E12DFF500DF713E /* LinterCacheTests.swift */, D4C27BFF1E12DFF500DF713E /* LinterCacheTests.swift */,
F90DBD802092EA81002CC310 /* MissingDocsRuleConfigurationTests.swift */, F90DBD802092EA81002CC310 /* MissingDocsRuleConfigurationTests.swift */,
1EB7C8521F0C45C2004BAD22 /* ModifierOrderTests.swift */, 1EB7C8521F0C45C2004BAD22 /* ModifierOrderTests.swift */,
@ -1605,10 +1608,10 @@
6C7045431C6ADA450003F15A /* SourceKitCrashTests.swift */, 6C7045431C6ADA450003F15A /* SourceKitCrashTests.swift */,
D4F5851620E99B260085C6D8 /* StatementPositionRuleTests.swift */, D4F5851620E99B260085C6D8 /* StatementPositionRuleTests.swift */,
D0D1217C19E87B05005E4BAA /* Supporting Files */, D0D1217C19E87B05005E4BAA /* Supporting Files */,
8FBE99CF24635B8500ABF078 /* SwiftVersionTests.swift */,
787CDE3A208F9C34005F3D2F /* SwitchCaseAlignmentRuleTests.swift */, 787CDE3A208F9C34005F3D2F /* SwitchCaseAlignmentRuleTests.swift */,
E81224991B04F85B001783D2 /* TestHelpers.swift */, E81224991B04F85B001783D2 /* TestHelpers.swift */,
D4DB92241E628898005DE9C1 /* TodoRuleTests.swift */, D4DB92241E628898005DE9C1 /* TodoRuleTests.swift */,
224E7F9B235A5E4D0051368B /* ExpiringTodoRuleTests.swift */,
D450D1E121F19B1E00E60010 /* TrailingClosureConfigurationTests.swift */, D450D1E121F19B1E00E60010 /* TrailingClosureConfigurationTests.swift */,
D450D1DE21F19A9400E60010 /* TrailingClosureRuleTests.swift */, D450D1DE21F19A9400E60010 /* TrailingClosureRuleTests.swift */,
C9802F2E1E0C8AEE008AB27F /* TrailingCommaRuleTests.swift */, C9802F2E1E0C8AEE008AB27F /* TrailingCommaRuleTests.swift */,
@ -2408,6 +2411,7 @@
02FD8AEF1BFC18D60014BFFB /* ExtendedNSStringTests.swift in Sources */, 02FD8AEF1BFC18D60014BFFB /* ExtendedNSStringTests.swift in Sources */,
12E3D4DC2042729300B3E30E /* ExplicitTypeInterfaceRuleTests.swift in Sources */, 12E3D4DC2042729300B3E30E /* ExplicitTypeInterfaceRuleTests.swift in Sources */,
D4CA758F1E2DEEA500A40E8A /* NumberSeparatorRuleTests.swift in Sources */, D4CA758F1E2DEEA500A40E8A /* NumberSeparatorRuleTests.swift in Sources */,
8FBE99D024635B8500ABF078 /* SwiftVersionTests.swift in Sources */,
D4DB92251E628898005DE9C1 /* TodoRuleTests.swift in Sources */, D4DB92251E628898005DE9C1 /* TodoRuleTests.swift in Sources */,
D4348EEA1C46122C007707FB /* FunctionBodyLengthRuleTests.swift in Sources */, D4348EEA1C46122C007707FB /* FunctionBodyLengthRuleTests.swift in Sources */,
F480DC831F2609D700099465 /* ConfigurationTests+ProjectMock.swift in Sources */, F480DC831F2609D700099465 /* ConfigurationTests+ProjectMock.swift in Sources */,

View File

@ -850,8 +850,7 @@ extension LinterCacheTests {
("testEnabledRulesChangedOrAddedOrRemovedCausesAllFilesToBeReLinted", testEnabledRulesChangedOrAddedOrRemovedCausesAllFilesToBeReLinted), ("testEnabledRulesChangedOrAddedOrRemovedCausesAllFilesToBeReLinted", testEnabledRulesChangedOrAddedOrRemovedCausesAllFilesToBeReLinted),
("testWhitelistRulesChangedOrAddedOrRemovedCausesAllFilesToBeReLinted", testWhitelistRulesChangedOrAddedOrRemovedCausesAllFilesToBeReLinted), ("testWhitelistRulesChangedOrAddedOrRemovedCausesAllFilesToBeReLinted", testWhitelistRulesChangedOrAddedOrRemovedCausesAllFilesToBeReLinted),
("testRuleConfigurationChangedOrAddedOrRemovedCausesAllFilesToBeReLinted", testRuleConfigurationChangedOrAddedOrRemovedCausesAllFilesToBeReLinted), ("testRuleConfigurationChangedOrAddedOrRemovedCausesAllFilesToBeReLinted", testRuleConfigurationChangedOrAddedOrRemovedCausesAllFilesToBeReLinted),
("testSwiftVersionChangedRemovedCausesAllFilesToBeReLinted", testSwiftVersionChangedRemovedCausesAllFilesToBeReLinted), ("testSwiftVersionChangedRemovedCausesAllFilesToBeReLinted", testSwiftVersionChangedRemovedCausesAllFilesToBeReLinted)
("testDetectSwiftVersion", testDetectSwiftVersion)
] ]
} }
@ -1225,6 +1224,7 @@ extension ReporterTests {
("testXcodeReporter", testXcodeReporter), ("testXcodeReporter", testXcodeReporter),
("testEmojiReporter", testEmojiReporter), ("testEmojiReporter", testEmojiReporter),
("testGitHubActionsLoggingReporter", testGitHubActionsLoggingReporter), ("testGitHubActionsLoggingReporter", testGitHubActionsLoggingReporter),
("testGitLabJUnitReporter", testGitLabJUnitReporter),
("testJSONReporter", testJSONReporter), ("testJSONReporter", testJSONReporter),
("testCSVReporter", testCSVReporter), ("testCSVReporter", testCSVReporter),
("testCheckstyleReporter", testCheckstyleReporter), ("testCheckstyleReporter", testCheckstyleReporter),
@ -1378,6 +1378,12 @@ extension StrongIBOutletRuleTests {
] ]
} }
extension SwiftVersionTests {
static var allTests: [(String, (SwiftVersionTests) -> () throws -> Void)] = [
("testDetectSwiftVersion", testDetectSwiftVersion)
]
}
extension SwitchCaseAlignmentRuleTests { extension SwitchCaseAlignmentRuleTests {
static var allTests: [(String, (SwitchCaseAlignmentRuleTests) -> () throws -> Void)] = [ static var allTests: [(String, (SwitchCaseAlignmentRuleTests) -> () throws -> Void)] = [
("testWithDefaultConfiguration", testWithDefaultConfiguration), ("testWithDefaultConfiguration", testWithDefaultConfiguration),
@ -1832,6 +1838,7 @@ XCTMain([
testCase(StaticOperatorRuleTests.allTests), testCase(StaticOperatorRuleTests.allTests),
testCase(StrictFilePrivateRuleTests.allTests), testCase(StrictFilePrivateRuleTests.allTests),
testCase(StrongIBOutletRuleTests.allTests), testCase(StrongIBOutletRuleTests.allTests),
testCase(SwiftVersionTests.allTests),
testCase(SwitchCaseAlignmentRuleTests.allTests), testCase(SwitchCaseAlignmentRuleTests.allTests),
testCase(SwitchCaseOnNewlineRuleTests.allTests), testCase(SwitchCaseOnNewlineRuleTests.allTests),
testCase(SyntacticSugarRuleTests.allTests), testCase(SyntacticSugarRuleTests.allTests),

View File

@ -298,62 +298,4 @@ class LinterCacheTests: XCTestCase {
XCTAssertNotNil(thisSwiftVersionCache.violations(forFile: file, configuration: helper.configuration)) XCTAssertNotNil(thisSwiftVersionCache.violations(forFile: file, configuration: helper.configuration))
XCTAssertNil(cache.violations(forFile: file, configuration: helper.configuration)) XCTAssertNil(cache.violations(forFile: file, configuration: helper.configuration))
} }
// swiftlint:disable:next function_body_length
func testDetectSwiftVersion() {
#if compiler(>=5.2.1)
let version = "5.2.1"
#elseif compiler(>=5.2.0)
let version = "5.2.0"
#elseif compiler(>=5.1.5)
let version = "5.1.5"
#elseif compiler(>=5.1.4)
let version = "5.1.4"
#elseif compiler(>=5.1.3)
let version = "5.1.3"
#elseif compiler(>=5.1.2)
let version = "5.1.2"
#elseif compiler(>=5.1.1)
let version = "5.1.1"
#elseif compiler(>=5.1.0)
let version = "5.1.0"
#elseif compiler(>=5.0.0)
let version = "5.0.0"
#elseif swift(>=4.2.0)
let version = "4.2.0"
#elseif swift(>=4.1.50)
let version = "4.2.0" // Since we can't pass SWIFT_VERSION=4 to sourcekit, it returns 4.2.0
#elseif swift(>=4.1.2)
let version = "4.1.2"
#elseif swift(>=4.1.1)
let version = "4.1.1"
#elseif swift(>=4.1.0)
let version = "4.1.0"
#elseif swift(>=4.0.3)
let version = "4.0.3"
#elseif swift(>=4.0.2)
let version = "4.0.2"
#elseif swift(>=4.0.1)
let version = "4.0.1"
#elseif swift(>=4.0.0)
let version = "4.0.0"
#elseif swift(>=3.4.0)
let version = "4.2.0" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.2.0
#elseif swift(>=3.3.2)
let version = "4.1.2" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.1.2
#elseif swift(>=3.3.1)
let version = "4.1.1" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.1.1
#elseif swift(>=3.3.0)
let version = "4.1.0" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.1.0
#elseif swift(>=3.2.3)
let version = "4.0.3" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.0.3
#elseif swift(>=3.2.2)
let version = "4.0.2" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.0.2
#elseif swift(>=3.2.1)
let version = "4.0.1" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.0.1
#else // if swift(>=3.2.0)
let version = "4.0.0" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.0.0
#endif
XCTAssertEqual(SwiftVersion.current.rawValue, version)
}
} }

View File

@ -0,0 +1,66 @@
import SwiftLintFramework
import XCTest
final class SwiftVersionTests: XCTestCase {
// swiftlint:disable:next function_body_length
func testDetectSwiftVersion() {
#if compiler(>=5.2.3)
let version = "5.2.3"
#elseif compiler(>=5.2.2)
let version = "5.2.2"
#elseif compiler(>=5.2.1)
let version = "5.2.1"
#elseif compiler(>=5.2.0)
let version = "5.2.0"
#elseif compiler(>=5.1.5)
let version = "5.1.5"
#elseif compiler(>=5.1.4)
let version = "5.1.4"
#elseif compiler(>=5.1.3)
let version = "5.1.3"
#elseif compiler(>=5.1.2)
let version = "5.1.2"
#elseif compiler(>=5.1.1)
let version = "5.1.1"
#elseif compiler(>=5.1.0)
let version = "5.1.0"
#elseif compiler(>=5.0.0)
let version = "5.0.0"
#elseif swift(>=4.2.0)
let version = "4.2.0"
#elseif swift(>=4.1.50)
let version = "4.2.0" // Since we can't pass SWIFT_VERSION=4 to sourcekit, it returns 4.2.0
#elseif swift(>=4.1.2)
let version = "4.1.2"
#elseif swift(>=4.1.1)
let version = "4.1.1"
#elseif swift(>=4.1.0)
let version = "4.1.0"
#elseif swift(>=4.0.3)
let version = "4.0.3"
#elseif swift(>=4.0.2)
let version = "4.0.2"
#elseif swift(>=4.0.1)
let version = "4.0.1"
#elseif swift(>=4.0.0)
let version = "4.0.0"
#elseif swift(>=3.4.0)
let version = "4.2.0" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.2.0
#elseif swift(>=3.3.2)
let version = "4.1.2" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.1.2
#elseif swift(>=3.3.1)
let version = "4.1.1" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.1.1
#elseif swift(>=3.3.0)
let version = "4.1.0" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.1.0
#elseif swift(>=3.2.3)
let version = "4.0.3" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.0.3
#elseif swift(>=3.2.2)
let version = "4.0.2" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.0.2
#elseif swift(>=3.2.1)
let version = "4.0.1" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.0.1
#else // if swift(>=3.2.0)
let version = "4.0.0" // Since we can't pass SWIFT_VERSION=3 to sourcekit, it returns 4.0.0
#endif
XCTAssertEqual(SwiftVersion.current.rawValue, version)
}
}

View File

@ -10,9 +10,8 @@ jobs:
matrix: matrix:
swift51: swift51:
containerImage: swift:5.1 containerImage: swift:5.1
# https://bugs.swift.org/browse/SR-12500 swift52:
# swift52: containerImage: swift:5.2
# containerImage: swift:5.2
container: $[ variables['containerImage'] ] container: $[ variables['containerImage'] ]
steps: steps:
- script: swift test --parallel - script: swift test --parallel