File tree Expand file tree Collapse file tree 2 files changed +25
-1
lines changed
Tests/PackageLoadingTests Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -71,7 +71,11 @@ enum ManifestJSONParser {
71
71
}
72
72
73
73
return try versionJSON. map {
74
- try SwiftLanguageVersion ( string: String ( json: $0) ) !
74
+ let languageVersionString = try String ( json: $0)
75
+ guard let languageVersion = SwiftLanguageVersion ( string: languageVersionString) else {
76
+ throw ManifestParseError . runtimeManifestErrors ( [ " invalid Swift language version: \( languageVersionString) " ] )
77
+ }
78
+ return languageVersion
75
79
}
76
80
}
77
81
Original file line number Diff line number Diff line change @@ -114,6 +114,26 @@ class PackageDescription5_0LoadingTests: PackageDescriptionLoadingTests {
114
114
XCTAssertMatch ( message, . contains( " 'v3' is unavailable " ) )
115
115
XCTAssertMatch ( message, . contains( " 'v3' was obsoleted in PackageDescription 5 " ) )
116
116
}
117
+
118
+ stream = BufferedOutputByteStream ( )
119
+ stream <<< """
120
+ import PackageDescription
121
+ let package = Package(
122
+ name: " Foo " ,
123
+ swiftLanguageVersions: [.version( " " )]
124
+ )
125
+ """
126
+
127
+ do {
128
+ try loadManifestThrowing ( stream. bytes) { _ in }
129
+ XCTFail ( )
130
+ } catch {
131
+ guard case let ManifestParseError . runtimeManifestErrors( messages) = error else {
132
+ return XCTFail ( " unexpected error: \( error) " )
133
+ }
134
+
135
+ XCTAssertEqual ( messages, [ " invalid Swift language version: " ] )
136
+ }
117
137
}
118
138
119
139
func testPlatformOptions( ) throws {
You can’t perform that action at this time.
0 commit comments