@@ -936,18 +936,32 @@ final class SwiftDriverTests: XCTestCase {
936
936
}
937
937
938
938
func testBatchModeCompiles( ) throws {
939
- 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 " ] )
940
- let plannedJobs = try driver1. planBuild ( )
941
- XCTAssertEqual ( plannedJobs. count, 4 )
942
- XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
943
- XCTAssertEqual ( plannedJobs [ 0 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo1.o " ) ) )
944
- XCTAssertEqual ( plannedJobs [ 1 ] . outputs. count, 4 )
945
- XCTAssertEqual ( plannedJobs [ 1 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo3.o " ) ) )
946
- XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 3 )
947
- XCTAssertEqual ( plannedJobs [ 2 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo5.o " ) ) )
948
- XCTAssertTrue ( plannedJobs [ 3 ] . tool. name. contains ( driver1. targetTriple. isDarwin ? " ld " : " clang " ) )
949
- XCTAssertEqual ( plannedJobs [ 3 ] . outputs. count, 1 )
950
- XCTAssertEqual ( plannedJobs [ 3 ] . outputs. first!. file, VirtualPath . relative ( RelativePath ( " Test " ) ) )
939
+ do {
940
+ 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 " ] )
941
+ let plannedJobs = try driver1. planBuild ( )
942
+ XCTAssertEqual ( plannedJobs. count, 4 )
943
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
944
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo1.o " ) ) )
945
+ XCTAssertEqual ( plannedJobs [ 1 ] . outputs. count, 4 )
946
+ XCTAssertEqual ( plannedJobs [ 1 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo3.o " ) ) )
947
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 3 )
948
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo5.o " ) ) )
949
+ XCTAssertTrue ( plannedJobs [ 3 ] . tool. name. contains ( driver1. targetTriple. isDarwin ? " ld " : " clang " ) )
950
+ XCTAssertEqual ( plannedJobs [ 3 ] . outputs. count, 1 )
951
+ XCTAssertEqual ( plannedJobs [ 3 ] . outputs. first!. file, VirtualPath . relative ( RelativePath ( " Test " ) ) )
952
+ }
953
+
954
+ // Test 1 partition results in 1 job
955
+ do {
956
+ 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 " ] )
957
+ let plannedJobs = try driver. planBuild ( )
958
+ XCTAssertEqual ( plannedJobs. count, 1 )
959
+ var count = 0
960
+ for arg in plannedJobs [ 0 ] . commandLine where arg == . flag( " -primary-file " ) {
961
+ count += 1
962
+ }
963
+ XCTAssertEqual ( count, 2 )
964
+ }
951
965
}
952
966
953
967
func testSingleThreadedWholeModuleOptimizationCompiles( ) throws {
0 commit comments