Skip to content

Commit 42822b3

Browse files
committed
Add SwiftDriverTests.testToolSearching test.
1 parent 66f63c1 commit 42822b3

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6395,6 +6395,48 @@ final class SwiftDriverTests: XCTestCase {
63956395
#endif
63966396
#endif
63976397
}
6398+
6399+
func testToolSearching() throws {
6400+
var driver = try Driver(args: ["swiftc", "-print-target-info"])
6401+
let jobs = try driver.planBuild()
6402+
XCTAssertEqual(jobs.count, 1)
6403+
let defaultSwiftFrontend = jobs.first!.tool.absolutePath!
6404+
6405+
try withTemporaryDirectory { toolsDirectory in
6406+
let customSwiftFrontend = toolsDirectory.appending(component: executableName("swift-frontend"))
6407+
try localFileSystem.createSymbolicLink(customSwiftFrontend, pointingAt: defaultSwiftFrontend, relative: false)
6408+
6409+
// test if PATH is searched
6410+
do {
6411+
var driver = try Driver(args: ["swiftc", "-print-target-info"], env: ["PATH": toolsDirectory.pathString])
6412+
let jobs = try driver.planBuild()
6413+
XCTAssertEqual(jobs.count, 1)
6414+
XCTAssertEqual(jobs.first!.tool.name, customSwiftFrontend.pathString)
6415+
}
6416+
6417+
try withTemporaryDirectory { tempDirectory in
6418+
try localFileSystem.changeCurrentWorkingDirectory(to: tempDirectory)
6419+
let anotherSwiftFrontend = localFileSystem.currentWorkingDirectory!.appending(component: executableName("swift-frontend"))
6420+
try localFileSystem.createSymbolicLink(anotherSwiftFrontend, pointingAt: defaultSwiftFrontend, relative: false)
6421+
6422+
// test if tools directory is respected
6423+
do {
6424+
var driver = try Driver(args: ["swiftc", "-print-target-info", "-tools-directory", toolsDirectory.pathString])
6425+
let jobs = try driver.planBuild()
6426+
XCTAssertEqual(jobs.count, 1)
6427+
XCTAssertEqual(jobs.first!.tool.name, customSwiftFrontend.pathString)
6428+
}
6429+
6430+
// test if current working directory is searched
6431+
do {
6432+
var driver = try Driver(args: ["swiftc", "-print-target-info"], env: ["PATH": ""])
6433+
let jobs = try driver.planBuild()
6434+
XCTAssertEqual(jobs.count, 1)
6435+
XCTAssertEqual(jobs.first!.tool.name, anotherSwiftFrontend.pathString)
6436+
}
6437+
}
6438+
}
6439+
}
63986440
}
63996441

64006442
func assertString(

0 commit comments

Comments
 (0)