@@ -148,6 +148,46 @@ final class SwiftDriverTests: XCTestCase {
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_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_max_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