@@ -1783,6 +1783,29 @@ final class SwiftDriverTests: XCTestCase {
17831783 XCTAssertTrue ( contents. hasPrefix ( " -interpret \n \( source. nativePathString ( escaped: false ) ) " ) )
17841784 }
17851785
1786+ // Forced response file in a non-existing temporary directory
1787+ do {
1788+ try withTemporaryDirectory { tempPath in
1789+ let resolverTempDirPath = tempPath. appending ( components: " resolverStuff " )
1790+ let source = try AbsolutePath ( validating: " /foo.swift " )
1791+ var driver = try Driver ( args: [ " swift " ] + [ source. nativePathString ( escaped: false ) ] )
1792+ let jobs = try driver. planBuild ( )
1793+ XCTAssertEqual ( jobs. count, 1 )
1794+ XCTAssertEqual ( jobs [ 0 ] . kind, . interpret)
1795+ let interpretJob = jobs [ 0 ]
1796+ let resolver = try ArgsResolver ( fileSystem: localFileSystem,
1797+ temporaryDirectory: . absolute( resolverTempDirPath) )
1798+ let resolvedArgs : [ String ] = try resolver. resolveArgumentList ( for: interpretJob, useResponseFiles: . forced)
1799+ XCTAssertEqual ( resolvedArgs. count, 3 )
1800+ XCTAssertEqual ( resolvedArgs [ 1 ] , " -frontend " )
1801+ XCTAssertEqual ( resolvedArgs [ 2 ] . first, " @ " )
1802+ let responseFilePath = try AbsolutePath ( validating: String ( resolvedArgs [ 2 ] . dropFirst ( ) ) )
1803+ XCTAssertEqual ( responseFilePath. parentDirectory. basename, " resolverStuff " )
1804+ let contents = try localFileSystem. readFileContents ( responseFilePath) . description
1805+ XCTAssertTrue ( contents. hasPrefix ( " -interpret \n \( source. nativePathString ( escaped: false ) ) " ) )
1806+ }
1807+ }
1808+
17861809 // No response file
17871810 do {
17881811 var driver = try Driver ( args: [ " swift " ] + [ " foo.swift " ] )
0 commit comments