@@ -240,7 +240,7 @@ final class SwiftDriverTests: XCTestCase {
240
240
// Test the combination of -c and -o includes the base output path.
241
241
do {
242
242
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 ( )
244
244
XCTAssertEqual ( plannedJobs. count, 1 )
245
245
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
246
246
XCTAssertTrue ( plannedJobs [ 0 ] . commandLine. contains ( . path( try VirtualPath ( path: " /some/output/path/bar.o " ) ) ) )
@@ -410,7 +410,7 @@ final class SwiftDriverTests: XCTestCase {
410
410
411
411
func testStandardCompileJobs( ) throws {
412
412
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 ( )
414
414
XCTAssertEqual ( plannedJobs. count, 3 )
415
415
XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 1 )
416
416
XCTAssertEqual ( plannedJobs [ 0 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo.o " ) ) )
@@ -1129,7 +1129,7 @@ final class SwiftDriverTests: XCTestCase {
1129
1129
func testBatchModeCompiles( ) throws {
1130
1130
do {
1131
1131
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 ( )
1133
1133
XCTAssertEqual ( plannedJobs. count, 4 )
1134
1134
XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
1135
1135
XCTAssertEqual ( plannedJobs [ 0 ] . outputs. first!. file, VirtualPath . temporary ( RelativePath ( " foo1.o " ) ) )
@@ -1145,7 +1145,7 @@ final class SwiftDriverTests: XCTestCase {
1145
1145
// Test 1 partition results in 1 job
1146
1146
do {
1147
1147
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 ( )
1149
1149
XCTAssertEqual ( plannedJobs. count, 1 )
1150
1150
var count = 0
1151
1151
for arg in plannedJobs [ 0 ] . commandLine where arg == . flag( " -primary-file " ) {
@@ -1176,7 +1176,7 @@ final class SwiftDriverTests: XCTestCase {
1176
1176
" swiftc " , " -whole-module-optimization " , " foo.swift " , " bar.swift " , " wibble.swift " ,
1177
1177
" -module-name " , " Test " , " -num-threads " , " 4 "
1178
1178
] )
1179
- let plannedJobs = try driver1. planBuild ( ) . removingAutolinkExtractJobs ( )
1179
+ let plannedJobs = try driver1. planBuild ( )
1180
1180
XCTAssertEqual ( plannedJobs. count, 2 )
1181
1181
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
1182
1182
XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 3 )
@@ -1191,7 +1191,7 @@ final class SwiftDriverTests: XCTestCase {
1191
1191
// emit-module
1192
1192
do {
1193
1193
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 ( )
1195
1195
XCTAssertEqual ( plannedJobs. count, 1 )
1196
1196
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
1197
1197
XCTAssertEqual ( plannedJobs [ 0 ] . inputs. count, 2 )
@@ -1218,7 +1218,7 @@ final class SwiftDriverTests: XCTestCase {
1218
1218
" swiftc " , " -whole-module-optimization " , " foo.swift " , " bar.swift " , " wibble.swift " , " -module-name " , " Test " ,
1219
1219
" -num-threads " , " 4 " , " -output-file-map " , file. path. pathString, " -emit-module-interface "
1220
1220
] )
1221
- let plannedJobs = try driver1. planBuild ( ) . removingAutolinkExtractJobs ( )
1221
+ let plannedJobs = try driver1. planBuild ( )
1222
1222
XCTAssertEqual ( plannedJobs. count, 2 )
1223
1223
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
1224
1224
XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
@@ -1310,49 +1310,52 @@ final class SwiftDriverTests: XCTestCase {
1310
1310
}
1311
1311
1312
1312
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)
1316
1313
do {
1317
1314
var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " -g " , " foo.swift " ] )
1318
1315
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!) )
1326
1325
}
1327
1326
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
+
1328
1340
do {
1329
1341
var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " foo.swift " ] )
1330
1342
let plannedJobs = try driver. planBuild ( )
1331
- XCTAssertEqual ( plannedJobs. count, 3 )
1343
+ XCTAssertEqual ( plannedJobs. count, 2 )
1332
1344
// 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] )
1334
1348
}
1335
1349
1336
1350
do {
1337
1351
var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " -gdwarf-types " , " foo.swift " ] )
1338
1352
let plannedJobs = try driver. planBuild ( )
1339
- XCTAssertEqual ( plannedJobs. count, 4 )
1353
+ XCTAssertEqual ( plannedJobs. count, 3 )
1340
1354
// 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.
1351
1355
// FIXME: There should also be an autolink-extract job. It looks like our
1352
1356
// 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] )
1354
1358
}
1355
- #endif
1356
1359
}
1357
1360
1358
1361
func testRepl( ) throws {
@@ -1614,7 +1617,7 @@ final class SwiftDriverTests: XCTestCase {
1614
1617
do {
1615
1618
// No dSYM generation (no -g)
1616
1619
var driver = try Driver ( args: commonArgs)
1617
- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1620
+ let plannedJobs = try driver. planBuild ( )
1618
1621
1619
1622
XCTAssertEqual ( plannedJobs. count, 3 )
1620
1623
XCTAssertFalse ( plannedJobs. contains { $0. kind == . generateDSYM } )
@@ -1623,7 +1626,7 @@ final class SwiftDriverTests: XCTestCase {
1623
1626
do {
1624
1627
// No dSYM generation (-gnone)
1625
1628
var driver = try Driver ( args: commonArgs + [ " -gnone " ] )
1626
- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1629
+ let plannedJobs = try driver. planBuild ( )
1627
1630
1628
1631
XCTAssertEqual ( plannedJobs. count, 3 )
1629
1632
XCTAssertFalse ( plannedJobs. contains { $0. kind == . generateDSYM } )
@@ -1641,7 +1644,7 @@ final class SwiftDriverTests: XCTestCase {
1641
1644
XCTAssertEqual ( plannedJobs. count, 5 )
1642
1645
XCTAssertEqual ( generateDSYMJob. outputs. last? . file, try VirtualPath ( path: " Test.dSYM " ) )
1643
1646
} else {
1644
- XCTAssertEqual ( plannedJobs. count, 6 )
1647
+ XCTAssertEqual ( plannedJobs. count, 5 )
1645
1648
XCTAssertFalse ( plannedJobs. map { $0. kind } . contains ( . generateDSYM) )
1646
1649
}
1647
1650
@@ -1658,23 +1661,23 @@ final class SwiftDriverTests: XCTestCase {
1658
1661
// No dSYM generation (no -g), therefore no verification
1659
1662
try assertDriverDiagnostics ( args: commonArgs) { driver, verifier in
1660
1663
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 ( )
1662
1665
XCTAssertEqual ( plannedJobs. count, 3 )
1663
1666
XCTAssertFalse ( plannedJobs. contains { $0. kind == . verifyDebugInfo } )
1664
1667
}
1665
1668
1666
1669
// No dSYM generation (-gnone), therefore no verification
1667
1670
try assertDriverDiagnostics ( args: commonArgs + [ " -gnone " ] ) { driver, verifier in
1668
1671
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 ( )
1670
1673
XCTAssertEqual ( plannedJobs. count, 3 )
1671
1674
XCTAssertFalse ( plannedJobs. contains { $0. kind == . verifyDebugInfo } )
1672
1675
}
1673
1676
1674
1677
do {
1675
1678
// dSYM generation and verification (-g + -verify-debug-info)
1676
1679
var driver = try Driver ( args: commonArgs + [ " -g " ] )
1677
- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
1680
+ let plannedJobs = try driver. planBuild ( )
1678
1681
1679
1682
let verifyDebugInfoJob = plannedJobs. last!
1680
1683
let cmd = verifyDebugInfoJob. commandLine
@@ -1704,36 +1707,6 @@ final class SwiftDriverTests: XCTestCase {
1704
1707
serializer. writeDOT ( to: & output)
1705
1708
1706
1709
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
1737
1710
XCTAssertEqual ( output,
1738
1711
"""
1739
1712
digraph Jobs {
@@ -1757,7 +1730,6 @@ final class SwiftDriverTests: XCTestCase {
1757
1730
}
1758
1731
1759
1732
""" )
1760
- #endif
1761
1733
}
1762
1734
1763
1735
func testRegressions( ) throws {
@@ -2036,7 +2008,7 @@ final class SwiftDriverTests: XCTestCase {
2036
2008
2037
2009
do {
2038
2010
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 ( )
2040
2012
XCTAssertEqual ( plannedJobs. count, 3 )
2041
2013
2042
2014
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . generatePCH)
@@ -2217,7 +2189,7 @@ final class SwiftDriverTests: XCTestCase {
2217
2189
func testEmbedBitcode( ) throws {
2218
2190
do {
2219
2191
var driver = try Driver ( args: [ " swiftc " , " -embed-bitcode " , " embed-bitcode.swift " ] )
2220
- let plannedJobs = try driver. planBuild ( ) . removingAutolinkExtractJobs ( )
2192
+ let plannedJobs = try driver. planBuild ( )
2221
2193
XCTAssertEqual ( plannedJobs. count, 3 )
2222
2194
2223
2195
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2239,7 +2211,7 @@ final class SwiftDriverTests: XCTestCase {
2239
2211
2240
2212
do {
2241
2213
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 ( )
2243
2215
XCTAssertEqual ( plannedJobs. count, 5 )
2244
2216
2245
2217
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2273,7 +2245,7 @@ final class SwiftDriverTests: XCTestCase {
2273
2245
2274
2246
do {
2275
2247
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 ( )
2277
2249
XCTAssertEqual ( plannedJobs. count, 3 )
2278
2250
2279
2251
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2302,7 +2274,7 @@ final class SwiftDriverTests: XCTestCase {
2302
2274
2303
2275
do {
2304
2276
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 ( )
2306
2278
XCTAssertEqual ( plannedJobs. count, 3 )
2307
2279
2308
2280
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2324,7 +2296,7 @@ final class SwiftDriverTests: XCTestCase {
2324
2296
2325
2297
do {
2326
2298
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 ( )
2328
2300
XCTAssertEqual ( plannedJobs. count, 5 )
2329
2301
2330
2302
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2359,7 +2331,7 @@ final class SwiftDriverTests: XCTestCase {
2359
2331
2360
2332
do {
2361
2333
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 ( )
2363
2335
XCTAssertEqual ( plannedJobs. count, 2 )
2364
2336
2365
2337
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
@@ -2541,7 +2513,7 @@ final class SwiftDriverTests: XCTestCase {
2541
2513
func testVFSOverlay( ) throws {
2542
2514
do {
2543
2515
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 ( )
2545
2517
XCTAssertEqual ( plannedJobs. count, 1 )
2546
2518
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
2547
2519
XCTAssert ( plannedJobs [ 0 ] . commandLine. contains ( subsequence: [ . flag( " -vfsoverlay " ) , . path( . relative( RelativePath ( " overlay.yaml " ) ) ) ] ) )
@@ -2550,7 +2522,7 @@ final class SwiftDriverTests: XCTestCase {
2550
2522
// Verify that the overlays are passed to the frontend in the same order.
2551
2523
do {
2552
2524
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 ( )
2554
2526
XCTAssertEqual ( plannedJobs. count, 1 )
2555
2527
XCTAssertEqual ( plannedJobs [ 0 ] . kind, . compile)
2556
2528
print ( plannedJobs [ 0 ] . commandLine)
@@ -2656,13 +2628,3 @@ fileprivate extension Array where Element: Equatable {
2656
2628
return false
2657
2629
}
2658
2630
}
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