@@ -2626,6 +2626,95 @@ final class BackgroundIndexingTests: XCTestCase {
2626
2626
}
2627
2627
}
2628
2628
2629
+ // WIP, not ready for review
2630
+ // func testBuildServerUsesCustomTaskBatchSize() async throws {
2631
+ // final class BuildServer: CustomBuildServer {
2632
+ // let inProgressRequestsTracker = CustomBuildServerInProgressRequestTracker()
2633
+ // private let projectRoot: URL
2634
+ // private var testFileURL: URL { projectRoot.appendingPathComponent("test.swift").standardized }
2635
+
2636
+ // nonisolated(unsafe) var preparedTargetBatches = [[BuildTargetIdentifier]]()
2637
+
2638
+ // required init(projectRoot: URL, connectionToSourceKitLSP: any LanguageServerProtocol.Connection) {
2639
+ // self.projectRoot = projectRoot
2640
+ // }
2641
+
2642
+ // func initializeBuildRequest(_ request: InitializeBuildRequest) async throws -> InitializeBuildResponse {
2643
+ // return try initializationResponseSupportingBackgroundIndexing(
2644
+ // projectRoot: projectRoot,
2645
+ // outputPathsProvider: false,
2646
+ // )
2647
+ // }
2648
+
2649
+ // func buildTargetSourcesRequest(_ request: BuildTargetSourcesRequest) async throws -> BuildTargetSourcesResponse {
2650
+ // var dummyTargets = [BuildTargetIdentifier]()
2651
+ // for i in 0..<10 {
2652
+ // dummyTargets.append(BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-\(i)")))
2653
+ // }
2654
+ // return BuildTargetSourcesResponse(items: dummyTargets.map {
2655
+ // SourcesItem(target: $0, sources: [SourceItem(uri: URI(testFileURL), kind: .file, generated: false)])
2656
+ // })
2657
+ // }
2658
+
2659
+ // func textDocumentSourceKitOptionsRequest(
2660
+ // _ request: TextDocumentSourceKitOptionsRequest
2661
+ // ) async throws -> TextDocumentSourceKitOptionsResponse? {
2662
+ // return TextDocumentSourceKitOptionsResponse(compilerArguments: [request.textDocument.uri.pseudoPath])
2663
+ // }
2664
+
2665
+ // func prepareTarget(_ request: BuildTargetPrepareRequest) async throws -> VoidResponse {
2666
+ // preparedTargetBatches.append(request.targets.sorted { $0.uri.stringValue < $1.uri.stringValue })
2667
+ // return VoidResponse()
2668
+ // }
2669
+ // }
2670
+
2671
+ // let project = try await CustomBuildServerTestProject(
2672
+ // files: [
2673
+ // "test.swift": """
2674
+ // func testFunction() {}
2675
+ // """
2676
+ // ],
2677
+ // buildServer: BuildServer.self,
2678
+ // enableBackgroundIndexing: true,
2679
+ // )
2680
+
2681
+ // // Wait for indexing to finish without elevating the priority
2682
+ // // Otherwise, task re-scheduling would cause the test to become flaky
2683
+ // let semaphore = WrappedSemaphore(name: "Indexing finished")
2684
+ // let testClient = project.testClient
2685
+ // Task(priority: .low) {
2686
+ // await assertNoThrow {
2687
+ // try await testClient.send(SynchronizeRequest(index: true))
2688
+ // }
2689
+ // semaphore.signal()
2690
+ // }
2691
+ // try semaphore.waitOrThrow()
2692
+
2693
+ // let buildServer = try project.buildServer()
2694
+ // let preparedBatches = buildServer.preparedTargetBatches.sorted { $0[0].uri.stringValue < $1[0].uri.stringValue }
2695
+ // XCTAssertEqual(preparedBatches, [
2696
+ // [
2697
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-0")),
2698
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-1")),
2699
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-2")),
2700
+ // ],
2701
+ // [
2702
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-3")),
2703
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-4")),
2704
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-5")),
2705
+ // ],
2706
+ // [
2707
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-6")),
2708
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-7")),
2709
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-8")),
2710
+ // ],
2711
+ // [
2712
+ // BuildTargetIdentifier(uri: try! URI(string: "dummy://dummy-9")),
2713
+ // ]
2714
+ // ])
2715
+ // }
2716
+ // }
2717
+
2629
2718
extension HoverResponseContents {
2630
2719
var markupContent : MarkupContent ? {
2631
2720
switch self {
0 commit comments