@@ -1783,6 +1783,29 @@ final class SwiftDriverTests: XCTestCase {
1783
1783
XCTAssertTrue ( contents. hasPrefix ( " -interpret \n \( source. nativePathString ( escaped: false ) ) " ) )
1784
1784
}
1785
1785
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
+
1786
1809
// No response file
1787
1810
do {
1788
1811
var driver = try Driver ( args: [ " swift " ] + [ " foo.swift " ] )
0 commit comments