File: SpecTestSupport.swift

package info (click to toggle)
swiftlang 6.2.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,856,264 kB
  • sloc: cpp: 9,995,718; ansic: 2,234,019; asm: 1,092,167; python: 313,940; objc: 82,726; f90: 80,126; lisp: 38,373; pascal: 25,580; sh: 20,378; ml: 5,058; perl: 4,751; makefile: 4,725; awk: 3,535; javascript: 3,018; xml: 918; fortran: 664; cs: 573; ruby: 396
file content (81 lines) | stat: -rw-r--r-- 4,427 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift open source project
//
// Copyright (c) 2025 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//

import Foundation
package import SWBCore
package import SWBUtil

package class CapturingTaskParserDelegate: TaskOutputParserDelegate {
    package let buildOperationIdentifier: BuildSystemOperationIdentifier = .init(UUID())

    package let diagnosticsEngine = DiagnosticsEngine()
    package var output = OutputByteStream()

    package init() {}
    package func skippedSubtask(signature: ByteString) {}
    package func startSubtask(buildOperationIdentifier: BuildSystemOperationIdentifier, taskName: String, id: ByteString, signature: ByteString, ruleInfo: String, executionDescription: String, commandLine: [ByteString], additionalOutput: [String], interestingPath: Path?, workingDirectory: Path?, serializedDiagnosticsPaths: [Path]) -> any TaskOutputParserDelegate { fatalError() }
    package func emitOutput(_ data: ByteString) { output <<< data }
    package func taskCompleted(exitStatus: Processes.ExitStatus) { }
    package func close() {}
}

package final class OutputParserMockTask: ExecutableTask {
    package let type: any TaskTypeDescription

    package init(basenames: [String], exec: String) {
        self.type = MockTaskTypeDescription(toolBasenameAliases: basenames)

        self.commandLine = [.literal(ByteString(encodingAsUTF8: exec))]
    }

    package var dependencyData: DependencyDataStyle? { return nil }
    package var payload: (any TaskPayload)? { return nil }
    package var forTarget: ConfiguredTarget? { return nil }
    package var ruleInfo: [String] { return [] }
    package let commandLine: [CommandLineArgument]
    package let additionalOutput: [String] = []
    package var environment: EnvironmentBindings { return .init() }
    package var workingDirectory: Path { return Path("/taskdir") }
    package var showEnvironment: Bool { return false }
    package var preparesForIndexing: Bool { return false }
    package var llbuildControlDisabled: Bool { return false }
    package var execDescription: String? { return nil }
    package var inputPaths: [Path] { return [] }
    package var outputPaths: [Path] { return [] }
    package var targetDependencies: [ResolvedTargetDependency] { return [] }
    package let isGate = false
    package let executionInputs: [ExecutionNode]? = nil
    package var showInLog: Bool { !isGate }
    package var showCommandLineInLog: Bool { true }
    package var priority: TaskPriority { .unspecified }
    package let isDynamic: Bool = false
    package var alwaysExecuteTask: Bool { false }
    package var additionalSignatureData: String { "" }

    final class MockTaskTypeDescription: TaskTypeDescription {
        init(toolBasenameAliases: [String]) {
            self.toolBasenameAliases = toolBasenameAliases
        }

        let payloadType: (any TaskPayload.Type)? = nil
        let isUnsafeToInterrupt: Bool = false
        let toolBasenameAliases: [String]
        func commandLineForSignature(for task: any ExecutableTask) -> [ByteString]? { return nil }
        func serializedDiagnosticsPaths(_ task: any ExecutableTask, _ fs: any FSProxy) -> [Path] { return [] }
        func generateIndexingInfo(for task: any ExecutableTask, input: TaskGenerateIndexingInfoInput) -> [TaskGenerateIndexingInfoOutput] { return [] }
        func generatePreviewInfo(for task: any ExecutableTask, input: TaskGeneratePreviewInfoInput, fs: any FSProxy) -> [TaskGeneratePreviewInfoOutput] { return [] }
        func generateDocumentationInfo(for task: any ExecutableTask, input: TaskGenerateDocumentationInfoInput) -> [TaskGenerateDocumentationInfoOutput] { return [] }
        func generateLocalizationInfo(for task: any ExecutableTask, input: TaskGenerateLocalizationInfoInput) -> [TaskGenerateLocalizationInfoOutput] { return [] }
        func customOutputParserType(for task: any ExecutableTask) -> (any TaskOutputParser.Type)? { return nil }
        func interestingPath(for task: any ExecutableTask) -> Path? { return nil }
    }
}