@@ -922,18 +922,32 @@ final class SwiftDriverTests: XCTestCase {
922
922
}
923
923
924
924
func testBatchModeCompiles( ) throws {
925
- var driver1 = try Driver ( args: [ " swiftc " , " foo1.swift " , " bar1.swift " , " foo2.swift " , " bar2.swift " , " foo3.swift " , " bar3.swift " , " foo4.swift " , " bar4.swift " , " foo5.swift " , " bar5.swift " , " wibble.swift " , " -module-name " , " Test " , " -enable-batch-mode " , " -driver-batch-count " , " 3 " ] )
926
- let plannedJobs = try driver1. planBuild ( )
927
- XCTAssertEqual ( plannedJobs. count, 4 )
928
- XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
929
- XCTAssertEqual ( plannedJobs [ 0 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo1.o " ) ) )
930
- XCTAssertEqual ( plannedJobs [ 1 ] . outputs. count, 4 )
931
- XCTAssertEqual ( plannedJobs [ 1 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo3.o " ) ) )
932
- XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 3 )
933
- XCTAssertEqual ( plannedJobs [ 2 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo5.o " ) ) )
934
- XCTAssertTrue ( plannedJobs [ 3 ] . tool. name. contains ( driver1. targetTriple. isDarwin ? " ld " : " clang " ) )
935
- XCTAssertEqual ( plannedJobs [ 3 ] . outputs. count, 1 )
936
- XCTAssertEqual ( plannedJobs [ 3 ] . outputs. first!. file, VirtualPath . relative ( RelativePath ( " Test " ) ) )
925
+ do {
926
+ var driver1 = try Driver ( args: [ " swiftc " , " foo1.swift " , " bar1.swift " , " foo2.swift " , " bar2.swift " , " foo3.swift " , " bar3.swift " , " foo4.swift " , " bar4.swift " , " foo5.swift " , " bar5.swift " , " wibble.swift " , " -module-name " , " Test " , " -enable-batch-mode " , " -driver-batch-count " , " 3 " ] )
927
+ let plannedJobs = try driver1. planBuild ( )
928
+ XCTAssertEqual ( plannedJobs. count, 4 )
929
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
930
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo1.o " ) ) )
931
+ XCTAssertEqual ( plannedJobs [ 1 ] . outputs. count, 4 )
932
+ XCTAssertEqual ( plannedJobs [ 1 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo3.o " ) ) )
933
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 3 )
934
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo5.o " ) ) )
935
+ XCTAssertTrue ( plannedJobs [ 3 ] . tool. name. contains ( driver1. targetTriple. isDarwin ? " ld " : " clang " ) )
936
+ XCTAssertEqual ( plannedJobs [ 3 ] . outputs. count, 1 )
937
+ XCTAssertEqual ( plannedJobs [ 3 ] . outputs. first!. file, VirtualPath . relative ( RelativePath ( " Test " ) ) )
938
+ }
939
+
940
+ // Test 1 partition results in 1 job
941
+ do {
942
+ var driver = try Driver ( args: [ " swiftc " , " -toolchain-stdlib-rpath " , " -module-cache-path " , " /tmp/clang-module-cache " , " -swift-version " , " 4 " , " -Xfrontend " , " -ignore-module-source-info " , " -module-name " , " batch " , " -enable-batch-mode " , " -j " , " 1 " , " -c " , " main.swift " , " lib.swift " ] )
943
+ let plannedJobs = try driver. planBuild ( )
944
+ XCTAssertEqual ( plannedJobs. count, 1 )
945
+ var count = 0
946
+ for arg in plannedJobs [ 0 ] . commandLine where arg == . flag( " -primary-file " ) {
947
+ count += 1
948
+ }
949
+ XCTAssertEqual ( count, 2 )
950
+ }
937
951
}
938
952
939
953
func testSingleThreadedWholeModuleOptimizationCompiles( ) throws {
0 commit comments