@@ -144,10 +144,50 @@ final class SwiftDriverTests: XCTestCase {
144
144
145
145
func testPrimaryOutputKindsDiagnostics( ) throws {
146
146
try assertDriverDiagnostics ( args: " swift " , " -i " ) {
147
- $1. expect ( . error_i_mode ( . interactive ) )
147
+ $1. expect ( . error ( " the flag '-i' is no longer required and has been removed; use 'swift input-filename' " ) )
148
148
}
149
149
}
150
150
151
+ func testMultithreading( ) throws {
152
+
153
+ XCTAssertEqual ( try Driver ( args: [ " swiftc " ] ) . numThreads, 0 )
154
+
155
+ XCTAssertEqual ( try Driver ( args: [ " swiftc " , " -num-threads " , " 4 " ] ) . numThreads, 4 )
156
+
157
+ XCTAssertEqual ( try Driver ( args: [ " swiftc " , " -num-threads " , " 0 " ] ) . numThreads, 0 )
158
+
159
+ XCTAssertEqual ( try Driver ( args: [ " swiftc " , " -num-threads " , " -1 " ] ) . numThreads, 0 )
160
+
161
+ XCTAssertEqual ( try Driver ( args: [ " swiftc " , " -enable-batch-mode " , " -num-threads " , " 4 " ] ) . numThreads, 0 )
162
+
163
+ XCTAssertNil ( try Driver ( args: [ " swiftc " ] ) . numParallelJobs)
164
+
165
+ XCTAssertEqual ( try Driver ( args: [ " swiftc " , " -j " , " 4 " ] ) . numParallelJobs, 4 )
166
+
167
+ XCTAssertNil ( try Driver ( args: [ " swiftc " , " -j " , " 0 " ] ) . numParallelJobs)
168
+
169
+ XCTAssertEqual ( try Driver ( args: [ " swiftc " , " -j " , " 4 " ] , env: [ " SWIFTC_MAXIMUM_DETERMINISM " : " 1 " ] ) . numParallelJobs, 1 )
170
+ }
171
+
172
+ func testMultithreadingDiagnostics( ) throws {
173
+
174
+ try assertDriverDiagnostics ( args: " swift " , " -num-threads " , " -1 " ) {
175
+ $1. expect ( . error_invalid_arg_value( arg: . numThreads, value: " -1 " ) )
176
+ }
177
+
178
+ try assertDriverDiagnostics ( args: " swiftc " , " -enable-batch-mode " , " -num-threads " , " 4 " ) {
179
+ $1. expect ( . warning( " ignoring -num-threads argument; cannot multithread batch mode " ) )
180
+ }
181
+
182
+ try assertDriverDiagnostics ( args: " swiftc " , " -j " , " 0 " ) {
183
+ $1. expect ( . error_invalid_arg_value( arg: . j, value: " 0 " ) )
184
+ }
185
+
186
+ try assertDriverDiagnostics ( args: " swiftc " , " -j " , " 8 " , env: [ " SWIFTC_MAXIMUM_DETERMINISM " : " 1 " ] ) {
187
+ $1. expect ( . remark( " SWIFTC_MAXIMUM_DETERMINISM overriding -j " ) )
188
+ }
189
+ }
190
+
151
191
func testDebugSettings( ) throws {
152
192
try assertNoDriverDiagnostics ( args: " swiftc " , " foo.swift " , " -emit-module " ) { driver in
153
193
XCTAssertNil ( driver. debugInfoLevel)
0 commit comments