Skip to content

Commit 0666f04

Browse files
authored
Merge pull request #208 from owenv/revert-203-revert-201-object-format-fix
Reapply "Infer object format when it can't be determined from a triple's successfully parsed environment
2 parents ef17783 + 994f6b9 commit 0666f04

File tree

5 files changed

+105
-51
lines changed

5 files changed

+105
-51
lines changed

Sources/SwiftDriver/Toolchains/Toolchain.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,13 @@ extension Toolchain {
134134
return path
135135
} else if let path = try? xcrunFind(executable: executable) {
136136
return path
137+
} else if !["swift-frontend", "swift"].contains(executable),
138+
let parentDirectory = try? getToolPath(.swiftCompiler).parentDirectory,
139+
parentDirectory != executableDir,
140+
let path = lookupExecutablePath(filename: executable, searchPaths: [parentDirectory]) {
141+
// If the driver library's client and the frontend are in different directories,
142+
// try looking for tools next to the frontend.
143+
return path
137144
} else if let path = lookupExecutablePath(filename: executable, searchPaths: searchPaths) {
138145
return path
139146
} else if executable == "swift-frontend" {

Sources/SwiftDriver/Utilities/Triple.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ public struct Triple {
167167
if let parsedEnv = parsedEnv {
168168
self.environment = parsedEnv.value.environment
169169
self.objectFormat = parsedEnv.value.objectFormat
170+
?? ObjectFormat.infer(arch: parsedArch?.value.arch,
171+
os: parsedOS?.value)
170172
}
171173
else {
172174
self.environment = Environment.infer(archName: parsedArch?.substring)

Tests/SwiftDriverTests/ExplicitModuleBuildTests.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,11 @@ final class ExplicitModuleBuildTests: XCTestCase {
323323
case .relative(RelativePath("main")):
324324
XCTAssertTrue(driver.isExplicitMainModuleJob(job: job))
325325
XCTAssertEqual(job.kind, .link)
326+
327+
case .temporary(RelativePath("main.autolink")):
328+
XCTAssertTrue(driver.isExplicitMainModuleJob(job: job))
329+
XCTAssertEqual(job.kind, .autolinkExtract)
330+
326331
default:
327332
XCTFail("Unexpected module dependency build job output: \(job.outputs[0].file)")
328333
}

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 88 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -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()
243+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
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()
413+
let plannedJobs = try driver1.planBuild().removingAutolinkExtractJobs()
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()
1132+
let plannedJobs = try driver1.planBuild().removingAutolinkExtractJobs()
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()
1148+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
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()
1179+
let plannedJobs = try driver1.planBuild().removingAutolinkExtractJobs()
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()
1194+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
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()
1221+
let plannedJobs = try driver1.planBuild().removingAutolinkExtractJobs()
12221222
XCTAssertEqual(plannedJobs.count, 2)
12231223
XCTAssertEqual(plannedJobs[0].kind, .compile)
12241224
XCTAssertEqual(plannedJobs[0].outputs.count, 4)
@@ -1310,52 +1310,49 @@ 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)
13131316
do {
13141317
var driver = try Driver(args: ["swiftc", "-target", "x86_64-unknown-linux-gnu", "-g", "foo.swift"])
13151318
let plannedJobs = try driver.planBuild()
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!))
1325-
}
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])
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!))
13371326
}
1338-
#endif
13391327

13401328
do {
13411329
var driver = try Driver(args: ["swiftc", "-target", "x86_64-unknown-linux-gnu", "foo.swift"])
13421330
let plannedJobs = try driver.planBuild()
1343-
XCTAssertEqual(plannedJobs.count, 2)
1331+
XCTAssertEqual(plannedJobs.count, 3)
13441332
// No merge module/module wrap jobs.
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])
1333+
XCTAssertEqual(plannedJobs.map { $0.kind }, [.compile, .autolinkExtract, .link])
13481334
}
13491335

13501336
do {
13511337
var driver = try Driver(args: ["swiftc", "-target", "x86_64-unknown-linux-gnu", "-gdwarf-types", "foo.swift"])
13521338
let plannedJobs = try driver.planBuild()
1353-
XCTAssertEqual(plannedJobs.count, 3)
1339+
XCTAssertEqual(plannedJobs.count, 4)
13541340
// 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.
13551351
// FIXME: There should also be an autolink-extract job. It looks like our
13561352
// triple parsing code is not detecting the object file format correctly.
1357-
XCTAssertEqual(plannedJobs.map { $0.kind }, [.compile, .mergeModule, .link])
1353+
XCTAssertEqual(plannedJobs.map { $0.kind }, [.compile, .mergeModule, .link, .generateDSYM])
13581354
}
1355+
#endif
13591356
}
13601357

13611358
func testRepl() throws {
@@ -1751,7 +1748,7 @@ final class SwiftDriverTests: XCTestCase {
17511748
do {
17521749
// No dSYM generation (no -g)
17531750
var driver = try Driver(args: commonArgs)
1754-
let plannedJobs = try driver.planBuild()
1751+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
17551752

17561753
XCTAssertEqual(plannedJobs.count, 3)
17571754
XCTAssertFalse(plannedJobs.contains { $0.kind == .generateDSYM })
@@ -1760,7 +1757,7 @@ final class SwiftDriverTests: XCTestCase {
17601757
do {
17611758
// No dSYM generation (-gnone)
17621759
var driver = try Driver(args: commonArgs + ["-gnone"])
1763-
let plannedJobs = try driver.planBuild()
1760+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
17641761

17651762
XCTAssertEqual(plannedJobs.count, 3)
17661763
XCTAssertFalse(plannedJobs.contains { $0.kind == .generateDSYM })
@@ -1778,7 +1775,7 @@ final class SwiftDriverTests: XCTestCase {
17781775
XCTAssertEqual(plannedJobs.count, 5)
17791776
XCTAssertEqual(generateDSYMJob.outputs.last?.file, try VirtualPath(path: "Test.dSYM"))
17801777
} else {
1781-
XCTAssertEqual(plannedJobs.count, 5)
1778+
XCTAssertEqual(plannedJobs.count, 6)
17821779
XCTAssertFalse(plannedJobs.map { $0.kind }.contains(.generateDSYM))
17831780
}
17841781

@@ -1795,23 +1792,23 @@ final class SwiftDriverTests: XCTestCase {
17951792
// No dSYM generation (no -g), therefore no verification
17961793
try assertDriverDiagnostics(args: commonArgs) { driver, verifier in
17971794
verifier.expect(.warning("ignoring '-verify-debug-info'; no debug info is being generated"))
1798-
let plannedJobs = try driver.planBuild()
1795+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
17991796
XCTAssertEqual(plannedJobs.count, 3)
18001797
XCTAssertFalse(plannedJobs.contains { $0.kind == .verifyDebugInfo })
18011798
}
18021799

18031800
// No dSYM generation (-gnone), therefore no verification
18041801
try assertDriverDiagnostics(args: commonArgs + ["-gnone"]) { driver, verifier in
18051802
verifier.expect(.warning("ignoring '-verify-debug-info'; no debug info is being generated"))
1806-
let plannedJobs = try driver.planBuild()
1803+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
18071804
XCTAssertEqual(plannedJobs.count, 3)
18081805
XCTAssertFalse(plannedJobs.contains { $0.kind == .verifyDebugInfo })
18091806
}
18101807

18111808
do {
18121809
// dSYM generation and verification (-g + -verify-debug-info)
18131810
var driver = try Driver(args: commonArgs + ["-g"])
1814-
let plannedJobs = try driver.planBuild()
1811+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
18151812

18161813
let verifyDebugInfoJob = plannedJobs.last!
18171814
let cmd = verifyDebugInfoJob.commandLine
@@ -1841,6 +1838,36 @@ final class SwiftDriverTests: XCTestCase {
18411838
serializer.writeDOT(to: &output)
18421839

18431840
let dynamicLinker = driver.targetTriple.isDarwin ? "ld" : "clang"
1841+
#if os(Linux)
1842+
XCTAssertEqual(output,
1843+
"""
1844+
digraph Jobs {
1845+
"compile (swift-frontend)" [style=bold];
1846+
"test.swift" [fontsize=12];
1847+
"test.swift" -> "compile (swift-frontend)" [color=blue];
1848+
"test.o" [fontsize=12];
1849+
"compile (swift-frontend)" -> "test.o" [color=green];
1850+
"test.swiftmodule" [fontsize=12];
1851+
"compile (swift-frontend)" -> "test.swiftmodule" [color=green];
1852+
"test.swiftdoc" [fontsize=12];
1853+
"compile (swift-frontend)" -> "test.swiftdoc" [color=green];
1854+
"mergeModule (swift-frontend)" [style=bold];
1855+
"test.swiftmodule" -> "mergeModule (swift-frontend)" [color=blue];
1856+
"mergeModule (swift-frontend)" -> "test.swiftmodule" [color=green];
1857+
"mergeModule (swift-frontend)" -> "test.swiftdoc" [color=green];
1858+
"autolinkExtract (swift-autolink-extract)" [style=bold];
1859+
"test.o" -> "autolinkExtract (swift-autolink-extract)" [color=blue];
1860+
"test.autolink" [fontsize=12];
1861+
"autolinkExtract (swift-autolink-extract)" -> "test.autolink" [color=green];
1862+
"link (clang)" [style=bold];
1863+
"test.o" -> "link (clang)" [color=blue];
1864+
"test.autolink" -> "link (clang)" [color=blue];
1865+
"test" [fontsize=12];
1866+
"link (clang)" -> "test" [color=green];
1867+
}
1868+
1869+
""")
1870+
#else
18441871
XCTAssertEqual(output,
18451872
"""
18461873
digraph Jobs {
@@ -1864,6 +1891,7 @@ final class SwiftDriverTests: XCTestCase {
18641891
}
18651892
18661893
""")
1894+
#endif
18671895
}
18681896

18691897
func testRegressions() throws {
@@ -2142,7 +2170,7 @@ final class SwiftDriverTests: XCTestCase {
21422170

21432171
do {
21442172
var driver = try Driver(args: ["swiftc", "-c", "-embed-bitcode", "-import-objc-header", "TestInputHeader.h", "-pch-output-dir", "/pch", "foo.swift"])
2145-
let plannedJobs = try driver.planBuild()
2173+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
21462174
XCTAssertEqual(plannedJobs.count, 3)
21472175

21482176
XCTAssertEqual(plannedJobs[0].kind, .generatePCH)
@@ -2323,7 +2351,7 @@ final class SwiftDriverTests: XCTestCase {
23232351
func testEmbedBitcode() throws {
23242352
do {
23252353
var driver = try Driver(args: ["swiftc", "-embed-bitcode", "embed-bitcode.swift"])
2326-
let plannedJobs = try driver.planBuild()
2354+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
23272355
XCTAssertEqual(plannedJobs.count, 3)
23282356

23292357
XCTAssertEqual(plannedJobs[0].kind, .compile)
@@ -2345,7 +2373,7 @@ final class SwiftDriverTests: XCTestCase {
23452373

23462374
do {
23472375
var driver = try Driver(args: ["swiftc", "-embed-bitcode", "main.swift", "hi.swift"])
2348-
let plannedJobs = try driver.planBuild()
2376+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
23492377
XCTAssertEqual(plannedJobs.count, 5)
23502378

23512379
XCTAssertEqual(plannedJobs[0].kind, .compile)
@@ -2379,7 +2407,7 @@ final class SwiftDriverTests: XCTestCase {
23792407

23802408
do {
23812409
var driver = try Driver(args: ["swiftc", "-embed-bitcode", "-c", "-emit-module", "embed-bitcode.swift"])
2382-
let plannedJobs = try driver.planBuild()
2410+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
23832411
XCTAssertEqual(plannedJobs.count, 3)
23842412

23852413
XCTAssertEqual(plannedJobs[0].kind, .compile)
@@ -2408,7 +2436,7 @@ final class SwiftDriverTests: XCTestCase {
24082436

24092437
do {
24102438
var driver = try Driver(args: ["swiftc", "-embed-bitcode", "-wmo", "embed-bitcode.swift"])
2411-
let plannedJobs = try driver.planBuild()
2439+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
24122440
XCTAssertEqual(plannedJobs.count, 3)
24132441

24142442
XCTAssertEqual(plannedJobs[0].kind, .compile)
@@ -2430,7 +2458,7 @@ final class SwiftDriverTests: XCTestCase {
24302458

24312459
do {
24322460
var driver = try Driver(args: ["swiftc", "-embed-bitcode", "-c", "-parse-as-library", "-emit-module", "embed-bitcode.swift", "empty.swift", "-module-name", "ABC"])
2433-
let plannedJobs = try driver.planBuild()
2461+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
24342462
XCTAssertEqual(plannedJobs.count, 5)
24352463

24362464
XCTAssertEqual(plannedJobs[0].kind, .compile)
@@ -2465,7 +2493,7 @@ final class SwiftDriverTests: XCTestCase {
24652493

24662494
do {
24672495
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"])
2468-
let plannedJobs = try driver.planBuild()
2496+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
24692497
XCTAssertEqual(plannedJobs.count, 2)
24702498

24712499
XCTAssertEqual(plannedJobs[0].kind, .compile)
@@ -2647,7 +2675,7 @@ final class SwiftDriverTests: XCTestCase {
26472675
func testVFSOverlay() throws {
26482676
do {
26492677
var driver = try Driver(args: ["swiftc", "-c", "-vfsoverlay", "overlay.yaml", "foo.swift"])
2650-
let plannedJobs = try driver.planBuild()
2678+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
26512679
XCTAssertEqual(plannedJobs.count, 1)
26522680
XCTAssertEqual(plannedJobs[0].kind, .compile)
26532681
XCTAssert(plannedJobs[0].commandLine.contains(subsequence: [.flag("-vfsoverlay"), .path(.relative(RelativePath("overlay.yaml")))]))
@@ -2656,7 +2684,7 @@ final class SwiftDriverTests: XCTestCase {
26562684
// Verify that the overlays are passed to the frontend in the same order.
26572685
do {
26582686
var driver = try Driver(args: ["swiftc", "-c", "-vfsoverlay", "overlay1.yaml", "-vfsoverlay", "overlay2.yaml", "-vfsoverlay", "overlay3.yaml", "foo.swift"])
2659-
let plannedJobs = try driver.planBuild()
2687+
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
26602688
XCTAssertEqual(plannedJobs.count, 1)
26612689
XCTAssertEqual(plannedJobs[0].kind, .compile)
26622690
XCTAssert(plannedJobs[0].commandLine.contains(subsequence: [.flag("-vfsoverlay"), .path(.relative(RelativePath("overlay1.yaml"))), .flag("-vfsoverlay"), .path(.relative(RelativePath("overlay2.yaml"))), .flag("-vfsoverlay"), .path(.relative(RelativePath("overlay3.yaml")))]))
@@ -2761,3 +2789,13 @@ fileprivate extension Array where Element: Equatable {
27612789
return false
27622790
}
27632791
}
2792+
2793+
fileprivate extension Array where Element == Job {
2794+
// Utility to drop autolink-extract jobs, which helps avoid introducing
2795+
// platform-specific conditionals in tests unrelated to autolinking.
2796+
func removingAutolinkExtractJobs() -> Self {
2797+
var filtered = self
2798+
filtered.removeAll(where: { $0.kind == .autolinkExtract })
2799+
return filtered
2800+
}
2801+
}

Tests/SwiftDriverTests/TripleTests.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,9 @@ final class TripleTests: XCTestCase {
10081008
}
10091009

10101010
func testFileFormat() {
1011-
// XCTAssertEqual(.elf, Triple("i686-unknown-linux-gnu").objectFormat)
1011+
XCTAssertEqual(.elf, Triple("i686-unknown-linux-gnu").objectFormat)
1012+
XCTAssertEqual(.elf, Triple("x86_64-unknown-linux-gnu").objectFormat)
1013+
XCTAssertEqual(.elf, Triple("x86_64-gnu-linux").objectFormat)
10121014
XCTAssertEqual(.elf, Triple("i686-unknown-freebsd").objectFormat)
10131015
XCTAssertEqual(.elf, Triple("i686-unknown-netbsd").objectFormat)
10141016
XCTAssertEqual(.elf, Triple("i686--win32-elf").objectFormat)

0 commit comments

Comments
 (0)