@@ -240,7 +240,7 @@ final class SwiftDriverTests: XCTestCase {
240240 // Test the combination of -c and -o includes the base output path.
241241 do {
242242 var driver = try Driver ( args: [ " swiftc " , " -c " , " foo.swift " , " -o " , " /some/output/path/bar.o " ] )
243- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
243+ let plannedJobs = try driver. planBuild ( )
244244 XCTAssertEqual ( plannedJobs. count, 1 )
245245 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
246246 XCTAssertTrue ( plannedJobs [ 0 ] . commandLine. contains ( . path( try VirtualPath ( path: " /some/output/path/bar.o " ) ) ) )
@@ -410,7 +410,7 @@ final class SwiftDriverTests: XCTestCase {
410410
411411 func testStandardCompileJobs( ) throws {
412412 var driver1 = try Driver ( args: [ " swiftc " , " foo.swift " , " bar.swift " , " -module-name " , " Test " ] )
413- let plannedJobs = try driver1. planBuild ( ) . removingAutolinkExtractJobs ( )
413+ let plannedJobs = try driver1. planBuild ( )
414414 XCTAssertEqual ( plannedJobs. count, 3 )
415415 XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 1 )
416416 XCTAssertEqual ( plannedJobs [ 0 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo.o " ) ) )
@@ -1129,7 +1129,7 @@ final class SwiftDriverTests: XCTestCase {
11291129 func testBatchModeCompiles( ) throws {
11301130 do {
11311131 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 " ] )
1132- let plannedJobs = try driver1. planBuild ( ) . removingAutolinkExtractJobs ( )
1132+ let plannedJobs = try driver1. planBuild ( )
11331133 XCTAssertEqual ( plannedJobs. count, 4 )
11341134 XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
11351135 XCTAssertEqual ( plannedJobs [ 0 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo1.o " ) ) )
@@ -1145,7 +1145,7 @@ final class SwiftDriverTests: XCTestCase {
11451145 // Test 1 partition results in 1 job
11461146 do {
11471147 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 " ] )
1148- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1148+ let plannedJobs = try driver. planBuild ( )
11491149 XCTAssertEqual ( plannedJobs. count, 1 )
11501150 var count = 0
11511151 for arg in plannedJobs [ 0 ] . commandLine where arg == . flag( " -primary-file " ) {
@@ -1176,7 +1176,7 @@ final class SwiftDriverTests: XCTestCase {
11761176 " swiftc " , " -whole-module-optimization " , " foo.swift " , " bar.swift " , " wibble.swift " ,
11771177 " -module-name " , " Test " , " -num-threads " , " 4 "
11781178 ] )
1179- let plannedJobs = try driver1. planBuild ( ) . removingAutolinkExtractJobs ( )
1179+ let plannedJobs = try driver1. planBuild ( )
11801180 XCTAssertEqual ( plannedJobs. count, 2 )
11811181 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
11821182 XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 3 )
@@ -1191,7 +1191,7 @@ final class SwiftDriverTests: XCTestCase {
11911191 // emit-module
11921192 do {
11931193 var driver = try Driver ( args: [ " swiftc " , " -module-name=ThisModule " , " -wmo " , " -num-threads " , " 4 " , " main.swift " , " multi-threaded.swift " , " -emit-module " , " -o " , " test.swiftmodule " ] )
1194- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1194+ let plannedJobs = try driver. planBuild ( )
11951195 XCTAssertEqual ( plannedJobs. count, 1 )
11961196 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
11971197 XCTAssertEqual ( plannedJobs [ 0 ] . inputs. count, 2 )
@@ -1218,7 +1218,7 @@ final class SwiftDriverTests: XCTestCase {
12181218 " swiftc " , " -whole-module-optimization " , " foo.swift " , " bar.swift " , " wibble.swift " , " -module-name " , " Test " ,
12191219 " -num-threads " , " 4 " , " -output-file-map " , file. path. pathString, " -emit-module-interface "
12201220 ] )
1221- let plannedJobs = try driver1. planBuild ( ) . removingAutolinkExtractJobs ( )
1221+ let plannedJobs = try driver1. planBuild ( )
12221222 XCTAssertEqual ( plannedJobs. count, 2 )
12231223 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
12241224 XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
@@ -1310,49 +1310,52 @@ final class SwiftDriverTests: XCTestCase {
13101310 }
13111311
13121312 func testModuleWrapJob( ) throws {
1313- // FIXME: These tests will fail when run on macOS, because
1314- // swift-autolink-extract is not present
1315- #if os(Linux)
13161313 do {
13171314 var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " -g " , " foo.swift " ] )
13181315 let plannedJobs = try driver. planBuild ( )
1319- XCTAssertEqual ( plannedJobs. count, 5 )
1320- XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . mergeModule, . autolinkExtract, . moduleWrap, . link] )
1321- XCTAssertEqual ( plannedJobs [ 3 ] . inputs. count, 1 )
1322- XCTAssertEqual ( plannedJobs [ 3 ] . inputs. count, 1 )
1323- XCTAssertTrue ( plannedJobs [ 3 ] . commandLine. contains ( subsequence: [ " -target " , " x86_64-unknown-linux-gnu " ] ) )
1324- XCTAssertTrue ( plannedJobs [ 1 ] . outputs. contains ( plannedJobs [ 3 ] . inputs. first!) )
1325- XCTAssertTrue ( plannedJobs [ 4 ] . inputs. contains ( plannedJobs [ 3 ] . outputs. first!) )
1316+ XCTAssertEqual ( plannedJobs. count, 4 )
1317+ // FIXME: There should also be an autolink-extract job. It looks like our
1318+ // triple parsing code is not detecting the object file format correctly.
1319+ XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . mergeModule, . moduleWrap, . link] )
1320+ XCTAssertEqual ( plannedJobs [ 2 ] . inputs. count, 1 )
1321+ XCTAssertEqual ( plannedJobs [ 2 ] . inputs. count, 1 )
1322+ XCTAssertTrue ( plannedJobs [ 2 ] . commandLine. contains ( subsequence: [ " -target " , " x86_64-unknown-linux-gnu " ] ) )
1323+ XCTAssertTrue ( plannedJobs [ 1 ] . outputs. contains ( plannedJobs [ 2 ] . inputs. first!) )
1324+ XCTAssertTrue ( plannedJobs [ 3 ] . inputs. contains ( plannedJobs [ 2 ] . outputs. first!) )
13261325 }
13271326
1327+ // dsymutil won't be found on other platforms
1328+ #if os(macOS)
1329+ do {
1330+ var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-apple-macosx10.15 " , " -g " , " foo.swift " ] )
1331+ let plannedJobs = try driver. planBuild ( )
1332+ XCTAssertEqual ( plannedJobs. count, 4 )
1333+ // No module wrapping with Mach-O.
1334+ // FIXME: There should also be an autolink-extract job. It looks like our
1335+ // triple parsing code is not detecting the object file format correctly.
1336+ XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . mergeModule, . link, . generateDSYM] )
1337+ }
1338+ #endif
1339+
13281340 do {
13291341 var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " foo.swift " ] )
13301342 let plannedJobs = try driver. planBuild ( )
1331- XCTAssertEqual ( plannedJobs. count, 3 )
1343+ XCTAssertEqual ( plannedJobs. count, 2 )
13321344 // No merge module/module wrap jobs.
1333- XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . autolinkExtract, . link] )
1345+ // FIXME: There should also be an autolink-extract job. It looks like our
1346+ // triple parsing code is not detecting the object file format correctly.
1347+ XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . link] )
13341348 }
13351349
13361350 do {
13371351 var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " -gdwarf-types " , " foo.swift " ] )
13381352 let plannedJobs = try driver. planBuild ( )
1339- XCTAssertEqual ( plannedJobs. count, 4 )
1353+ XCTAssertEqual ( plannedJobs. count, 3 )
13401354 // Merge module, but no module wrapping.
1341- XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . mergeModule, . autolinkExtract, . link] )
1342- }
1343- #endif
1344- // dsymutil won't be found on other platforms
1345- #if os(macOS)
1346- do {
1347- var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-apple-macosx10.15 " , " -g " , " foo.swift " ] )
1348- let plannedJobs = try driver. planBuild ( )
1349- XCTAssertEqual ( plannedJobs. count, 4 )
1350- // No module wrapping with Mach-O.
13511355 // FIXME: There should also be an autolink-extract job. It looks like our
13521356 // triple parsing code is not detecting the object file format correctly.
1353- XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . mergeModule, . link, . generateDSYM ] )
1357+ XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . mergeModule, . link] )
13541358 }
1355- #endif
13561359 }
13571360
13581361 func testRepl( ) throws {
@@ -1614,7 +1617,7 @@ final class SwiftDriverTests: XCTestCase {
16141617 do {
16151618 // No dSYM generation (no -g)
16161619 var driver = try Driver ( args: commonArgs)
1617- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1620+ let plannedJobs = try driver. planBuild ( )
16181621
16191622 XCTAssertEqual ( plannedJobs. count, 3 )
16201623 XCTAssertFalse ( plannedJobs. contains { $0. kind == . generateDSYM } )
@@ -1623,7 +1626,7 @@ final class SwiftDriverTests: XCTestCase {
16231626 do {
16241627 // No dSYM generation (-gnone)
16251628 var driver = try Driver ( args: commonArgs + [ " -gnone " ] )
1626- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1629+ let plannedJobs = try driver. planBuild ( )
16271630
16281631 XCTAssertEqual ( plannedJobs. count, 3 )
16291632 XCTAssertFalse ( plannedJobs. contains { $0. kind == . generateDSYM } )
@@ -1641,7 +1644,7 @@ final class SwiftDriverTests: XCTestCase {
16411644 XCTAssertEqual ( plannedJobs. count, 5 )
16421645 XCTAssertEqual ( generateDSYMJob. outputs. last? . file, try VirtualPath ( path: " Test.dSYM " ) )
16431646 } else {
1644- XCTAssertEqual ( plannedJobs. count, 6 )
1647+ XCTAssertEqual ( plannedJobs. count, 5 )
16451648 XCTAssertFalse ( plannedJobs. map { $0. kind } . contains ( . generateDSYM) )
16461649 }
16471650
@@ -1658,23 +1661,23 @@ final class SwiftDriverTests: XCTestCase {
16581661 // No dSYM generation (no -g), therefore no verification
16591662 try assertDriverDiagnostics ( args: commonArgs) { driver, verifier in
16601663 verifier. expect ( . warning( " ignoring '-verify-debug-info'; no debug info is being generated " ) )
1661- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1664+ let plannedJobs = try driver. planBuild ( )
16621665 XCTAssertEqual ( plannedJobs. count, 3 )
16631666 XCTAssertFalse ( plannedJobs. contains { $0. kind == . verifyDebugInfo } )
16641667 }
16651668
16661669 // No dSYM generation (-gnone), therefore no verification
16671670 try assertDriverDiagnostics ( args: commonArgs + [ " -gnone " ] ) { driver, verifier in
16681671 verifier. expect ( . warning( " ignoring '-verify-debug-info'; no debug info is being generated " ) )
1669- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1672+ let plannedJobs = try driver. planBuild ( )
16701673 XCTAssertEqual ( plannedJobs. count, 3 )
16711674 XCTAssertFalse ( plannedJobs. contains { $0. kind == . verifyDebugInfo } )
16721675 }
16731676
16741677 do {
16751678 // dSYM generation and verification (-g + -verify-debug-info)
16761679 var driver = try Driver ( args: commonArgs + [ " -g " ] )
1677- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1680+ let plannedJobs = try driver. planBuild ( )
16781681
16791682 let verifyDebugInfoJob = plannedJobs. last!
16801683 let cmd = verifyDebugInfoJob. commandLine
@@ -1704,36 +1707,6 @@ final class SwiftDriverTests: XCTestCase {
17041707 serializer. writeDOT ( to: & output)
17051708
17061709 let dynamicLinker = driver. targetTriple. isDarwin ? " ld " : " clang "
1707- #if os(Linux)
1708- XCTAssertEqual ( output,
1709- """
1710- digraph Jobs {
1711- " compile (swift-frontend) " [style=bold];
1712- " test.swift " [fontsize=12];
1713- " test.swift " -> " compile (swift-frontend) " [color=blue];
1714- " test.o " [fontsize=12];
1715- " compile (swift-frontend) " -> " test.o " [color=green];
1716- " test.swiftmodule " [fontsize=12];
1717- " compile (swift-frontend) " -> " test.swiftmodule " [color=green];
1718- " test.swiftdoc " [fontsize=12];
1719- " compile (swift-frontend) " -> " test.swiftdoc " [color=green];
1720- " mergeModule (swift-frontend) " [style=bold];
1721- " test.swiftmodule " -> " mergeModule (swift-frontend) " [color=blue];
1722- " mergeModule (swift-frontend) " -> " test.swiftmodule " [color=green];
1723- " mergeModule (swift-frontend) " -> " test.swiftdoc " [color=green];
1724- " autolinkExtract (swift-autolink-extract) " [style=bold];
1725- " test.o " -> " autolinkExtract (swift-autolink-extract) " [color=blue];
1726- " test.autolink " [fontsize=12];
1727- " autolinkExtract (swift-autolink-extract) " -> " test.autolink " [color=green];
1728- " link (clang) " [style=bold];
1729- " test.o " -> " link (clang) " [color=blue];
1730- " test.autolink " -> " link (clang) " [color=blue];
1731- " test " [fontsize=12];
1732- " link (clang) " -> " test " [color=green];
1733- }
1734-
1735- """ )
1736- #else
17371710 XCTAssertEqual ( output,
17381711 """
17391712 digraph Jobs {
@@ -1757,7 +1730,6 @@ final class SwiftDriverTests: XCTestCase {
17571730 }
17581731
17591732 """ )
1760- #endif
17611733 }
17621734
17631735 func testRegressions( ) throws {
@@ -2036,7 +2008,7 @@ final class SwiftDriverTests: XCTestCase {
20362008
20372009 do {
20382010 var driver = try Driver ( args: [ " swiftc " , " -c " , " -embed-bitcode " , " -import-objc-header " , " TestInputHeader.h " , " -pch-output-dir " , " /pch " , " foo.swift " ] )
2039- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2011+ let plannedJobs = try driver. planBuild ( )
20402012 XCTAssertEqual ( plannedJobs. count, 3 )
20412013
20422014 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . generatePCH)
@@ -2217,7 +2189,7 @@ final class SwiftDriverTests: XCTestCase {
22172189 func testEmbedBitcode( ) throws {
22182190 do {
22192191 var driver = try Driver ( args: [ " swiftc " , " -embed-bitcode " , " embed-bitcode.swift " ] )
2220- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2192+ let plannedJobs = try driver. planBuild ( )
22212193 XCTAssertEqual ( plannedJobs. count, 3 )
22222194
22232195 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2239,7 +2211,7 @@ final class SwiftDriverTests: XCTestCase {
22392211
22402212 do {
22412213 var driver = try Driver ( args: [ " swiftc " , " -embed-bitcode " , " main.swift " , " hi.swift " ] )
2242- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2214+ let plannedJobs = try driver. planBuild ( )
22432215 XCTAssertEqual ( plannedJobs. count, 5 )
22442216
22452217 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2273,7 +2245,7 @@ final class SwiftDriverTests: XCTestCase {
22732245
22742246 do {
22752247 var driver = try Driver ( args: [ " swiftc " , " -embed-bitcode " , " -c " , " -emit-module " , " embed-bitcode.swift " ] )
2276- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2248+ let plannedJobs = try driver. planBuild ( )
22772249 XCTAssertEqual ( plannedJobs. count, 3 )
22782250
22792251 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2302,7 +2274,7 @@ final class SwiftDriverTests: XCTestCase {
23022274
23032275 do {
23042276 var driver = try Driver ( args: [ " swiftc " , " -embed-bitcode " , " -wmo " , " embed-bitcode.swift " ] )
2305- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2277+ let plannedJobs = try driver. planBuild ( )
23062278 XCTAssertEqual ( plannedJobs. count, 3 )
23072279
23082280 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2324,7 +2296,7 @@ final class SwiftDriverTests: XCTestCase {
23242296
23252297 do {
23262298 var driver = try Driver ( args: [ " swiftc " , " -embed-bitcode " , " -c " , " -parse-as-library " , " -emit-module " , " embed-bitcode.swift " , " empty.swift " , " -module-name " , " ABC " ] )
2327- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2299+ let plannedJobs = try driver. planBuild ( )
23282300 XCTAssertEqual ( plannedJobs. count, 5 )
23292301
23302302 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2359,7 +2331,7 @@ final class SwiftDriverTests: XCTestCase {
23592331
23602332 do {
23612333 var driver = try Driver ( args: [ " swiftc " , " -embed-bitcode " , " -c " , " -parse-as-library " , " -emit-module " , " -whole-module-optimization " , " embed-bitcode.swift " , " -parse-stdlib " , " -module-name " , " Swift " ] )
2362- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2334+ let plannedJobs = try driver. planBuild ( )
23632335 XCTAssertEqual ( plannedJobs. count, 2 )
23642336
23652337 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2541,7 +2513,7 @@ final class SwiftDriverTests: XCTestCase {
25412513 func testVFSOverlay( ) throws {
25422514 do {
25432515 var driver = try Driver ( args: [ " swiftc " , " -c " , " -vfsoverlay " , " overlay.yaml " , " foo.swift " ] )
2544- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2516+ let plannedJobs = try driver. planBuild ( )
25452517 XCTAssertEqual ( plannedJobs. count, 1 )
25462518 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
25472519 XCTAssert ( plannedJobs [ 0 ] . commandLine. contains ( subsequence: [ . flag( " -vfsoverlay " ) , . path( . relative( RelativePath ( " overlay.yaml " ) ) ) ] ) )
@@ -2550,7 +2522,7 @@ final class SwiftDriverTests: XCTestCase {
25502522 // Verify that the overlays are passed to the frontend in the same order.
25512523 do {
25522524 var driver = try Driver ( args: [ " swiftc " , " -c " , " -vfsoverlay " , " overlay1.yaml " , " -vfsoverlay " , " overlay2.yaml " , " -vfsoverlay " , " overlay3.yaml " , " foo.swift " ] )
2553- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2525+ let plannedJobs = try driver. planBuild ( )
25542526 XCTAssertEqual ( plannedJobs. count, 1 )
25552527 XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
25562528 print ( plannedJobs [ 0 ] . commandLine)
@@ -2656,13 +2628,3 @@ fileprivate extension Array where Element: Equatable {
26562628 return false
26572629 }
26582630}
2659-
2660- fileprivate extension Array where Element == Job {
2661- // Utility to drop autolink-extract jobs, which helps avoid introducing
2662- // platform-specific conditionals in tests unrelated to autolinking.
2663- func removingAutolinkExtractJobs( ) -> Self {
2664- var filtered = self
2665- filtered. removeAll ( where: { $0. kind == . autolinkExtract } )
2666- return filtered
2667- }
2668- }
0 commit comments