@@ -6397,7 +6397,15 @@ final class SwiftDriverTests: XCTestCase {
6397
6397
}
6398
6398
6399
6399
func testToolSearching( ) throws {
6400
- var driver = try Driver ( args: [ " swiftc " , " -print-target-info " ] )
6400
+ #if os(Windows)
6401
+ let PATH = " Path "
6402
+ #else
6403
+ let PATH = " PATH "
6404
+ #endif
6405
+ let SWIFT_FRONTEND_EXEC = " SWIFT_DRIVER_SWIFT_FRONTEND_EXEC "
6406
+
6407
+ // We need to override SWIFT_DRIVER_SWIFT_FRONTEND_EXEC to prevent it from interfering the tests.
6408
+ var driver = try Driver ( args: [ " swiftc " , " -print-target-info " ] , env: [ PATH: ProcessEnv . path!] )
6401
6409
let jobs = try driver. planBuild ( )
6402
6410
XCTAssertEqual ( jobs. count, 1 )
6403
6411
let defaultSwiftFrontend = jobs. first!. tool. absolutePath!
@@ -6406,38 +6414,32 @@ final class SwiftDriverTests: XCTestCase {
6406
6414
let customSwiftFrontend = toolsDirectory. appending ( component: executableName ( " swift-frontend " ) )
6407
6415
try localFileSystem. createSymbolicLink ( customSwiftFrontend, pointingAt: defaultSwiftFrontend, relative: false )
6408
6416
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
6417
try withTemporaryDirectory { tempDirectory in
6418
6418
try localFileSystem. changeCurrentWorkingDirectory ( to: tempDirectory)
6419
6419
let anotherSwiftFrontend = localFileSystem. currentWorkingDirectory!. appending ( component: executableName ( " swift-frontend " ) )
6420
6420
try localFileSystem. createSymbolicLink ( anotherSwiftFrontend, pointingAt: defaultSwiftFrontend, relative: false )
6421
6421
6422
6422
// test if SWIFT_DRIVER_TOOLNAME_EXEC is respected
6423
6423
do {
6424
- var driver = try Driver ( args: [ " swiftc " , " -print-target-info " ] , env: [ " SWIFT_DRIVER_SWIFT_FRONTEND_EXEC " : customSwiftFrontend. pathString, " PATH " : ProcessEnv . path!] )
6424
+ var driver = try Driver ( args: [ " swiftc " , " -print-target-info " ] ,
6425
+ env: [ PATH: ProcessEnv . path!, SWIFT_FRONTEND_EXEC: customSwiftFrontend. pathString] )
6425
6426
let jobs = try driver. planBuild ( )
6426
6427
XCTAssertEqual ( jobs. count, 1 )
6427
6428
XCTAssertEqual ( jobs. first!. tool. name, customSwiftFrontend. pathString)
6428
6429
}
6429
6430
6430
6431
// test if tools directory is respected
6431
6432
do {
6432
- var driver = try Driver ( args: [ " swiftc " , " -print-target-info " , " -tools-directory " , toolsDirectory. pathString] )
6433
+ var driver = try Driver ( args: [ " swiftc " , " -print-target-info " , " -tools-directory " , toolsDirectory. pathString] ,
6434
+ env: [ PATH: ProcessEnv . path!] )
6433
6435
let jobs = try driver. planBuild ( )
6434
6436
XCTAssertEqual ( jobs. count, 1 )
6435
6437
XCTAssertEqual ( jobs. first!. tool. name, customSwiftFrontend. pathString)
6436
6438
}
6437
6439
6438
6440
// test if current working directory is searched before PATH
6439
6441
do {
6440
- var driver = try Driver ( args: [ " swiftc " , " -print-target-info " ] , env: [ " PATH " : toolsDirectory. pathString] )
6442
+ var driver = try Driver ( args: [ " swiftc " , " -print-target-info " ] , env: [ PATH: toolsDirectory. pathString] )
6441
6443
let jobs = try driver. planBuild ( )
6442
6444
XCTAssertEqual ( jobs. count, 1 )
6443
6445
XCTAssertEqual ( jobs. first!. tool. name, anotherSwiftFrontend. pathString)
0 commit comments