@@ -1148,6 +1148,39 @@ final class SwiftPMBuildSystemTests: XCTestCase {
11481148      XCTAssert ( compilerArgs. contains ( try . filePath) ) 
11491149    } 
11501150  } 
1151+ 
1152+   func  testBuildSettingsForInvalidManifest( )  async  throws  { 
1153+     try await  withTestScratchDir  {  tempDir in 
1154+       try FileManager . default. createFiles ( 
1155+         root:  tempDir, 
1156+         files:  [ 
1157+           " pkg/Sources/lib/a.swift " :  " " , 
1158+           " pkg/Package.swift " :  """ 
1159+           // swift-tools-version: 4.2 
1160+           import PackageDescription 
1161+            """ , 
1162+         ] 
1163+       ) 
1164+       let  packageRoot  =  try . appendingPathComponent ( " pkg " ) . realpath
1165+       let  manifestURL  =  packageRoot. appendingPathComponent ( " Package.swift " ) 
1166+       let  buildSystemManager  =  await  BuildSystemManager ( 
1167+         buildSystemSpec:  BuildSystemSpec ( kind:  . swiftPM,  projectRoot:  packageRoot) , 
1168+         toolchainRegistry:  . forTesting, 
1169+         options:  SourceKitLSPOptions ( ) , 
1170+         connectionToClient:  DummyBuildSystemManagerConnectionToClient ( ) , 
1171+         buildSystemTestHooks:  BuildSystemTestHooks ( ) 
1172+       ) 
1173+       await  buildSystemManager. waitForUpToDateBuildGraph ( ) 
1174+       let  settings  =  await  buildSystemManager. buildSettingsInferredFromMainFile ( 
1175+         for:  DocumentURI ( manifestURL) , 
1176+         language:  . swift, 
1177+         fallbackAfterTimeout:  false 
1178+       ) 
1179+       let  compilerArgs  =  try XCTUnwrap ( settings? . compilerArguments) 
1180+       XCTAssert ( compilerArgs. contains ( " -package-description-version " ) ) 
1181+       XCTAssert ( compilerArgs. contains ( try . filePath) ) 
1182+     } 
1183+   } 
11511184} 
11521185
11531186private  func  assertArgumentsDoNotContain( 
0 commit comments