@@ -1806,37 +1806,38 @@ final class SwiftDriverTests: XCTestCase {
18061806      } 
18071807    } 
18081808
1809-     // No response  file
1809+     // Response  file query with full command-line API 
18101810    do  { 
1811-       var  driver  =  try   Driver ( args:  [ " swift " ]  +  [ " foo.swift " ] ) 
1811+       let  source  =  try   AbsolutePath ( validating:  " /foo.swift " ) 
1812+       var  driver  =  try   Driver ( args:  [ " swift " ]  +  [ source. nativePathString ( escaped:  false ) ] ) 
18121813      let  jobs  =  try   driver. planBuild ( ) 
18131814      XCTAssertEqual ( jobs. count,  1 ) 
18141815      XCTAssertEqual ( jobs [ 0 ] . kind,  . interpret) 
18151816      let  interpretJob  =  jobs [ 0 ] 
18161817      let  resolver  =  try   ArgsResolver ( fileSystem:  localFileSystem) 
1817-       let  resolvedArgs :  [ String ]  =  try   resolver. resolveArgumentList ( for:  interpretJob) 
1818-       XCTAssertFalse ( resolvedArgs. contains  {  $0. hasPrefix ( " @ " )  } ) 
1818+       let  resolved :  ResolvedCommandLine  =  try   resolver. resolveArgumentList ( for:  interpretJob,  useResponseFiles:  . forced) 
1819+       guard  case . usingResponseFile( resolved:  let  resolvedArgs,  responseFileContents:  let  contents)  =  resolved else  { 
1820+           XCTFail ( " Argument wasn't a response file " ) 
1821+         return 
1822+       } 
1823+       XCTAssertEqual ( resolvedArgs. count,  3 ) 
1824+       XCTAssertEqual ( resolvedArgs [ 1 ] ,  " -frontend " ) 
1825+       XCTAssertEqual ( resolvedArgs [ 2 ] . first,  " @ " ) 
1826+ 
1827+       XCTAssertTrue ( contents. contains ( subsequence:  [ " -frontend " ,  " -interpret " ] ) ) 
1828+       XCTAssertTrue ( contents. contains ( subsequence:  [ " -module-name " ,  " foo " ] ) ) 
18191829    } 
1820-   } 
18211830
1822-   func  testResponseFileDeterministicNaming( )  throws  { 
1823- #if !os(macOS) 
1824-     try   XCTSkipIf ( true ,  " Test assumes macOS response file quoting behavior " ) 
1825- #endif 
1831+     // No response file
18261832    do  { 
1827-       let  testJob  =  Job ( moduleName:  " Foo " , 
1828-                         kind:  . compile, 
1829-                         tool:  . init( path:  try   AbsolutePath ( validating:  " /swiftc " ) ,  supportsResponseFiles:  true ) , 
1830-                         commandLine:  ( 1 ... 20000 ) . map  {  . flag( " -DTEST_ \( $0) " )  } , 
1831-                         inputs:  [ ] , 
1832-                         primaryInputs:  [ ] , 
1833-                         outputs:  [ ] ) 
1833+       var  driver  =  try   Driver ( args:  [ " swift " ]  +  [ " foo.swift " ] ) 
1834+       let  jobs  =  try   driver. planBuild ( ) 
1835+       XCTAssertEqual ( jobs. count,  1 ) 
1836+       XCTAssertEqual ( jobs [ 0 ] . kind,  . interpret) 
1837+       let  interpretJob  =  jobs [ 0 ] 
18341838      let  resolver  =  try   ArgsResolver ( fileSystem:  localFileSystem) 
1835-       let  resolvedArgs :  [ String ]  =  try   resolver. resolveArgumentList ( for:  testJob) 
1836-       XCTAssertEqual ( resolvedArgs. count,  3 ) 
1837-       XCTAssertEqual ( resolvedArgs [ 2 ] . first,  " @ " ) 
1838-       let  responseFilePath  =  try   AbsolutePath ( validating:  String ( resolvedArgs [ 2 ] . dropFirst ( ) ) ) 
1839-       XCTAssertEqual ( responseFilePath. basename,  " arguments-847d15e70d97df7c18033735497ca8dcc4441f461d5a9c2b764b127004524e81.resp " ) 
1839+       let  resolvedArgs :  [ String ]  =  try   resolver. resolveArgumentList ( for:  interpretJob) 
1840+       XCTAssertFalse ( resolvedArgs. contains  {  $0. hasPrefix ( " @ " )  } ) 
18401841    } 
18411842  } 
18421843
0 commit comments