@descryy/runtime-test-runner 0.4.11 → 0.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bounded-file.d.ts +18 -0
- package/dist/bounded-file.d.ts.map +1 -0
- package/dist/bounded-file.js +77 -0
- package/dist/bounded-file.js.map +1 -0
- package/dist/child-environment.d.ts +12 -0
- package/dist/child-environment.d.ts.map +1 -0
- package/dist/child-environment.js +124 -0
- package/dist/child-environment.js.map +1 -0
- package/dist/coverage-capture.d.ts +23 -0
- package/dist/coverage-capture.d.ts.map +1 -0
- package/dist/coverage-capture.js +165 -0
- package/dist/coverage-capture.js.map +1 -0
- package/dist/executed-coverage.d.ts +45 -0
- package/dist/executed-coverage.d.ts.map +1 -0
- package/dist/executed-coverage.js +143 -0
- package/dist/executed-coverage.js.map +1 -0
- package/dist/go-cover-profile.d.ts +29 -0
- package/dist/go-cover-profile.d.ts.map +1 -0
- package/dist/go-cover-profile.js +162 -0
- package/dist/go-cover-profile.js.map +1 -0
- package/dist/go-test.d.ts +29 -2
- package/dist/go-test.d.ts.map +1 -1
- package/dist/go-test.js +149 -30
- package/dist/go-test.js.map +1 -1
- package/dist/graph-mapping.d.ts +1 -0
- package/dist/graph-mapping.d.ts.map +1 -1
- package/dist/graph-mapping.js +78 -1
- package/dist/graph-mapping.js.map +1 -1
- package/dist/index.d.ts +21 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/lexers/c-family.d.ts +4 -0
- package/dist/lexers/c-family.d.ts.map +1 -0
- package/dist/lexers/c-family.js +221 -0
- package/dist/lexers/c-family.js.map +1 -0
- package/dist/lexers/chars.d.ts +7 -0
- package/dist/lexers/chars.d.ts.map +1 -0
- package/dist/lexers/chars.js +49 -0
- package/dist/lexers/chars.js.map +1 -0
- package/dist/lexers/index.d.ts +7 -0
- package/dist/lexers/index.d.ts.map +1 -0
- package/dist/lexers/index.js +5 -0
- package/dist/lexers/index.js.map +1 -0
- package/dist/lexers/python.d.ts +3 -0
- package/dist/lexers/python.d.ts.map +1 -0
- package/dist/lexers/python.js +101 -0
- package/dist/lexers/python.js.map +1 -0
- package/dist/quality/annotations.d.ts +14 -0
- package/dist/quality/annotations.d.ts.map +1 -0
- package/dist/quality/annotations.js +147 -0
- package/dist/quality/annotations.js.map +1 -0
- package/dist/quality/assertion-kinds.d.ts +18 -0
- package/dist/quality/assertion-kinds.d.ts.map +1 -0
- package/dist/quality/assertion-kinds.js +25 -0
- package/dist/quality/assertion-kinds.js.map +1 -0
- package/dist/quality/chains.d.ts +25 -0
- package/dist/quality/chains.d.ts.map +1 -0
- package/dist/quality/chains.js +129 -0
- package/dist/quality/chains.js.map +1 -0
- package/dist/quality/common.d.ts +31 -0
- package/dist/quality/common.d.ts.map +1 -0
- package/dist/quality/common.js +211 -0
- package/dist/quality/common.js.map +1 -0
- package/dist/quality/csharp-family.d.ts +9 -0
- package/dist/quality/csharp-family.d.ts.map +1 -0
- package/dist/quality/csharp-family.js +560 -0
- package/dist/quality/csharp-family.js.map +1 -0
- package/dist/quality/detect.d.ts +3 -0
- package/dist/quality/detect.d.ts.map +1 -0
- package/dist/quality/detect.js +348 -0
- package/dist/quality/detect.js.map +1 -0
- package/dist/quality/durations.d.ts +4 -0
- package/dist/quality/durations.d.ts.map +1 -0
- package/dist/quality/durations.js +177 -0
- package/dist/quality/durations.js.map +1 -0
- package/dist/quality/expressions.d.ts +7 -0
- package/dist/quality/expressions.d.ts.map +1 -0
- package/dist/quality/expressions.js +123 -0
- package/dist/quality/expressions.js.map +1 -0
- package/dist/quality/facts.d.ts +5 -0
- package/dist/quality/facts.d.ts.map +1 -0
- package/dist/quality/facts.js +183 -0
- package/dist/quality/facts.js.map +1 -0
- package/dist/quality/failure-of.d.ts +4 -0
- package/dist/quality/failure-of.d.ts.map +1 -0
- package/dist/quality/failure-of.js +233 -0
- package/dist/quality/failure-of.js.map +1 -0
- package/dist/quality/frameworks.d.ts +5 -0
- package/dist/quality/frameworks.d.ts.map +1 -0
- package/dist/quality/frameworks.js +20 -0
- package/dist/quality/frameworks.js.map +1 -0
- package/dist/quality/go-family.d.ts +6 -0
- package/dist/quality/go-family.d.ts.map +1 -0
- package/dist/quality/go-family.js +393 -0
- package/dist/quality/go-family.js.map +1 -0
- package/dist/quality/index.d.ts +10 -0
- package/dist/quality/index.d.ts.map +1 -0
- package/dist/quality/index.js +19 -0
- package/dist/quality/index.js.map +1 -0
- package/dist/quality/java-family.d.ts +12 -0
- package/dist/quality/java-family.d.ts.map +1 -0
- package/dist/quality/java-family.js +529 -0
- package/dist/quality/java-family.js.map +1 -0
- package/dist/quality/js-assertions.d.ts +11 -0
- package/dist/quality/js-assertions.d.ts.map +1 -0
- package/dist/quality/js-assertions.js +297 -0
- package/dist/quality/js-assertions.js.map +1 -0
- package/dist/quality/js-family.d.ts +3 -0
- package/dist/quality/js-family.d.ts.map +1 -0
- package/dist/quality/js-family.js +470 -0
- package/dist/quality/js-family.js.map +1 -0
- package/dist/quality/python-family.d.ts +6 -0
- package/dist/quality/python-family.d.ts.map +1 -0
- package/dist/quality/python-family.js +786 -0
- package/dist/quality/python-family.js.map +1 -0
- package/dist/quality/scope.d.ts +26 -0
- package/dist/quality/scope.d.ts.map +1 -0
- package/dist/quality/scope.js +33 -0
- package/dist/quality/scope.js.map +1 -0
- package/dist/quality/selectors.d.ts +14 -0
- package/dist/quality/selectors.d.ts.map +1 -0
- package/dist/quality/selectors.js +137 -0
- package/dist/quality/selectors.js.map +1 -0
- package/dist/quality/statuses.d.ts +7 -0
- package/dist/quality/statuses.d.ts.map +1 -0
- package/dist/quality/statuses.js +143 -0
- package/dist/quality/statuses.js.map +1 -0
- package/dist/quality/stream.d.ts +23 -0
- package/dist/quality/stream.d.ts.map +1 -0
- package/dist/quality/stream.js +194 -0
- package/dist/quality/stream.js.map +1 -0
- package/dist/quality/types.d.ts +88 -0
- package/dist/quality/types.d.ts.map +1 -0
- package/dist/quality/types.js +2 -0
- package/dist/quality/types.js.map +1 -0
- package/dist/run-timeout.d.ts +25 -0
- package/dist/run-timeout.d.ts.map +1 -0
- package/dist/run-timeout.js +52 -0
- package/dist/run-timeout.js.map +1 -0
- package/dist/runner-wrappers.d.ts +74 -0
- package/dist/runner-wrappers.d.ts.map +1 -0
- package/dist/runner-wrappers.js +604 -0
- package/dist/runner-wrappers.js.map +1 -0
- package/dist/swift-xctest.d.ts +15 -2
- package/dist/swift-xctest.d.ts.map +1 -1
- package/dist/swift-xctest.js +143 -20
- package/dist/swift-xctest.js.map +1 -1
- package/dist/test-runner-collector.d.ts +56 -6
- package/dist/test-runner-collector.d.ts.map +1 -1
- package/dist/test-runner-collector.js +265 -113
- package/dist/test-runner-collector.js.map +1 -1
- package/dist/testgen/csharp-facts.d.ts +3 -0
- package/dist/testgen/csharp-facts.d.ts.map +1 -0
- package/dist/testgen/csharp-facts.js +306 -0
- package/dist/testgen/csharp-facts.js.map +1 -0
- package/dist/testgen/csharp-profile.d.ts +14 -0
- package/dist/testgen/csharp-profile.d.ts.map +1 -0
- package/dist/testgen/csharp-profile.js +233 -0
- package/dist/testgen/csharp-profile.js.map +1 -0
- package/dist/testgen/declarations.d.ts +10 -0
- package/dist/testgen/declarations.d.ts.map +1 -0
- package/dist/testgen/declarations.js +110 -0
- package/dist/testgen/declarations.js.map +1 -0
- package/dist/testgen/facts-common.d.ts +33 -0
- package/dist/testgen/facts-common.d.ts.map +1 -0
- package/dist/testgen/facts-common.js +76 -0
- package/dist/testgen/facts-common.js.map +1 -0
- package/dist/testgen/failure.d.ts +4 -0
- package/dist/testgen/failure.d.ts.map +1 -0
- package/dist/testgen/failure.js +106 -0
- package/dist/testgen/failure.js.map +1 -0
- package/dist/testgen/frameworks.d.ts +6 -0
- package/dist/testgen/frameworks.d.ts.map +1 -0
- package/dist/testgen/frameworks.js +516 -0
- package/dist/testgen/frameworks.js.map +1 -0
- package/dist/testgen/go-facts.d.ts +11 -0
- package/dist/testgen/go-facts.d.ts.map +1 -0
- package/dist/testgen/go-facts.js +237 -0
- package/dist/testgen/go-facts.js.map +1 -0
- package/dist/testgen/go-profile.d.ts +6 -0
- package/dist/testgen/go-profile.d.ts.map +1 -0
- package/dist/testgen/go-profile.js +155 -0
- package/dist/testgen/go-profile.js.map +1 -0
- package/dist/testgen/index.d.ts +28 -0
- package/dist/testgen/index.d.ts.map +1 -0
- package/dist/testgen/index.js +21 -0
- package/dist/testgen/index.js.map +1 -0
- package/dist/testgen/java-build.d.ts +13 -0
- package/dist/testgen/java-build.d.ts.map +1 -0
- package/dist/testgen/java-build.js +250 -0
- package/dist/testgen/java-build.js.map +1 -0
- package/dist/testgen/java-facts.d.ts +3 -0
- package/dist/testgen/java-facts.d.ts.map +1 -0
- package/dist/testgen/java-facts.js +349 -0
- package/dist/testgen/java-facts.js.map +1 -0
- package/dist/testgen/java-profile.d.ts +13 -0
- package/dist/testgen/java-profile.d.ts.map +1 -0
- package/dist/testgen/java-profile.js +194 -0
- package/dist/testgen/java-profile.js.map +1 -0
- package/dist/testgen/languages.d.ts +11 -0
- package/dist/testgen/languages.d.ts.map +1 -0
- package/dist/testgen/languages.js +63 -0
- package/dist/testgen/languages.js.map +1 -0
- package/dist/testgen/lexer.d.ts +19 -0
- package/dist/testgen/lexer.d.ts.map +1 -0
- package/dist/testgen/lexer.js +257 -0
- package/dist/testgen/lexer.js.map +1 -0
- package/dist/testgen/mutant-core.d.ts +19 -0
- package/dist/testgen/mutant-core.d.ts.map +1 -0
- package/dist/testgen/mutant-core.js +39 -0
- package/dist/testgen/mutant-core.js.map +1 -0
- package/dist/testgen/mutants-lang.d.ts +6 -0
- package/dist/testgen/mutants-lang.d.ts.map +1 -0
- package/dist/testgen/mutants-lang.js +291 -0
- package/dist/testgen/mutants-lang.js.map +1 -0
- package/dist/testgen/mutants.d.ts +9 -0
- package/dist/testgen/mutants.d.ts.map +1 -0
- package/dist/testgen/mutants.js +148 -0
- package/dist/testgen/mutants.js.map +1 -0
- package/dist/testgen/paths.d.ts +32 -0
- package/dist/testgen/paths.d.ts.map +1 -0
- package/dist/testgen/paths.js +211 -0
- package/dist/testgen/paths.js.map +1 -0
- package/dist/testgen/process.d.ts +19 -0
- package/dist/testgen/process.d.ts.map +1 -0
- package/dist/testgen/process.js +89 -0
- package/dist/testgen/process.js.map +1 -0
- package/dist/testgen/profile-failure.d.ts +7 -0
- package/dist/testgen/profile-failure.d.ts.map +1 -0
- package/dist/testgen/profile-failure.js +29 -0
- package/dist/testgen/profile-failure.js.map +1 -0
- package/dist/testgen/python-facts.d.ts +11 -0
- package/dist/testgen/python-facts.d.ts.map +1 -0
- package/dist/testgen/python-facts.js +380 -0
- package/dist/testgen/python-facts.js.map +1 -0
- package/dist/testgen/python-profile.d.ts +4 -0
- package/dist/testgen/python-profile.d.ts.map +1 -0
- package/dist/testgen/python-profile.js +344 -0
- package/dist/testgen/python-profile.js.map +1 -0
- package/dist/testgen/source-facts.d.ts +30 -0
- package/dist/testgen/source-facts.d.ts.map +1 -0
- package/dist/testgen/source-facts.js +497 -0
- package/dist/testgen/source-facts.js.map +1 -0
- package/dist/testgen/stubs.d.ts +4 -0
- package/dist/testgen/stubs.d.ts.map +1 -0
- package/dist/testgen/stubs.js +66 -0
- package/dist/testgen/stubs.js.map +1 -0
- package/dist/testgen/toolchain.d.ts +23 -0
- package/dist/testgen/toolchain.d.ts.map +1 -0
- package/dist/testgen/toolchain.js +201 -0
- package/dist/testgen/toolchain.js.map +1 -0
- package/dist/testgen/types.d.ts +67 -0
- package/dist/testgen/types.d.ts.map +1 -0
- package/dist/testgen/types.js +2 -0
- package/dist/testgen/types.js.map +1 -0
- package/dist/v8-coverage.d.ts +21 -0
- package/dist/v8-coverage.d.ts.map +1 -0
- package/dist/v8-coverage.js +217 -0
- package/dist/v8-coverage.js.map +1 -0
- package/dist/vitest-reporter.d.ts +46 -13
- package/dist/vitest-reporter.d.ts.map +1 -1
- package/dist/vitest-reporter.js +119 -26
- package/dist/vitest-reporter.js.map +1 -1
- package/dist/vitest-version.d.ts +21 -0
- package/dist/vitest-version.d.ts.map +1 -0
- package/dist/vitest-version.js +98 -0
- package/dist/vitest-version.js.map +1 -0
- package/package.json +14 -8
- package/reporters/junit/classes/DescryJUnitListener.class +0 -0
- package/reporters/junit/classes/META-INF/services/org.junit.platform.launcher.TestExecutionListener +1 -0
- package/reporters/minitest/descry_minitest_reporter.rb +150 -0
- package/reporters/phpunit/DescryPhpUnitExtension.php +209 -0
- package/reporters/pytest/descry_pytest_plugin.py +397 -0
- package/reporters/rspec/descry_rspec_formatter.rb +175 -0
- package/reporters/xunit/bin/Release/netstandard2.0/Descry.TestLogger.deps.json +203 -0
- package/reporters/xunit/bin/Release/netstandard2.0/Descry.TestLogger.dll +0 -0
- package/reporters/xunit/bin/Release/netstandard2.0/Descry.TestLogger.pdb +0 -0
package/dist/swift-xctest.d.ts
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
* so isolating it buys nothing. Which mode ran is queryable via `isolationMode()` on the
|
|
46
46
|
* returned collector — rule 7, a fallback is always labelled, never silently taken.
|
|
47
47
|
*/
|
|
48
|
-
import type { Collector } from "@descryy/runtime-contracts";
|
|
48
|
+
import type { Collector, FilesystemPolicy, NetworkPolicy } from "@descryy/runtime-contracts";
|
|
49
49
|
import { type TraceCoverage } from "./test-runner-collector.ts";
|
|
50
50
|
import { type IsolationMode } from "./swift-isolation.ts";
|
|
51
51
|
export interface SwiftTestDump {
|
|
@@ -82,7 +82,12 @@ export type SwiftDiscoveryResult = {
|
|
|
82
82
|
* `LinuxMain.swift` is removed first: left in place, the build would use last
|
|
83
83
|
* run's stale class list instead of discovering fresh.
|
|
84
84
|
*/
|
|
85
|
-
export
|
|
85
|
+
export interface SwiftDiscoveryOptions {
|
|
86
|
+
readonly timeoutMs?: number;
|
|
87
|
+
readonly signal?: AbortSignal;
|
|
88
|
+
readonly environment?: Readonly<Record<string, string | undefined>>;
|
|
89
|
+
}
|
|
90
|
+
export declare function discoverSwiftTests(packageRoot: string, options?: SwiftDiscoveryOptions): Promise<SwiftDiscoveryResult>;
|
|
86
91
|
/** Refuses to overwrite a non-Descry `Tests/LinuxMain.swift` that has appeared since `discoverSwiftTests` ran. */
|
|
87
92
|
export declare function writeLinuxMain(packageRoot: string, classes: readonly DiscoveredSwiftClass[]): void;
|
|
88
93
|
/** Removes a Descry-generated `Tests/LinuxMain.swift` only — never a file this module didn't write. */
|
|
@@ -91,13 +96,21 @@ export interface SwiftXCTestCollectorOptions {
|
|
|
91
96
|
readonly packageRoot: string;
|
|
92
97
|
/** Joins emitted Evidence to a named service; omit for a standalone run with no corresponding service. */
|
|
93
98
|
readonly service?: string;
|
|
99
|
+
readonly timeoutMs?: number;
|
|
100
|
+
readonly filesystemPolicy?: FilesystemPolicy;
|
|
101
|
+
readonly networkPolicy?: NetworkPolicy;
|
|
102
|
+
readonly signal?: AbortSignal;
|
|
103
|
+
readonly inheritHostEnvironment?: boolean;
|
|
104
|
+
readonly passthroughEnvironmentNames?: readonly string[];
|
|
94
105
|
}
|
|
95
106
|
export interface SwiftXCTestCollector extends Collector {
|
|
96
107
|
waitForCompletion(): Promise<void>;
|
|
97
108
|
traceCoverage(): TraceCoverage;
|
|
109
|
+
timedOut(): boolean;
|
|
98
110
|
/** Which isolation mode the last `start()` used, `null` before the first one — rule 7's
|
|
99
111
|
* "label the fallback" surfaced as a fact a caller can read, not buried in a log line. */
|
|
100
112
|
isolationMode(): IsolationMode | null;
|
|
113
|
+
wrapperDisclosures(): readonly string[];
|
|
101
114
|
}
|
|
102
115
|
/** Two-pass collector: `start()` discovers-then-generates before spawning the real run — slower to become `available` than the single-spawn runners, the cost of having no reporter flag. */
|
|
103
116
|
export declare function createSwiftXCTestCollector(options: SwiftXCTestCollectorOptions): SwiftXCTestCollector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift-xctest.d.ts","sourceRoot":"","sources":["../src/swift-xctest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AASH,OAAO,KAAK,EAAE,SAAS,EAAiE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"swift-xctest.d.ts","sourceRoot":"","sources":["../src/swift-xctest.ts"],"names":[],"mappings":"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"}
|
package/dist/swift-xctest.js
CHANGED
|
@@ -49,9 +49,11 @@ import { existsSync, readFileSync, readdirSync, rmSync, writeFileSync } from "no
|
|
|
49
49
|
import { tmpdir } from "node:os";
|
|
50
50
|
import { join } from "node:path";
|
|
51
51
|
import { randomUUID } from "node:crypto";
|
|
52
|
-
import {
|
|
52
|
+
import { spawn } from "node:child_process";
|
|
53
53
|
import { spawnProcess } from "@descryy/runtime-controller";
|
|
54
|
-
import {
|
|
54
|
+
import { buildChildEnvironment } from "./child-environment.js";
|
|
55
|
+
import { armRunTimeout, resolveRunTimeout } from "./run-timeout.js";
|
|
56
|
+
import { createEnvelopeGate, createEventTranslator, pumpLines, reportRunnerOutputGap, isNodeTestEvent } from "./test-runner-collector.js";
|
|
55
57
|
import { COLLECTOR_VERSION } from "./collector-version.js";
|
|
56
58
|
import { buildBwrapOverlayCommand, copyPackageExcludingBuild, detectIsolationMode, removeCopy, } from "./swift-isolation.js";
|
|
57
59
|
/**
|
|
@@ -150,14 +152,84 @@ ${entries}
|
|
|
150
152
|
])
|
|
151
153
|
`;
|
|
152
154
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
155
|
+
const KEEP_OUTPUT_TAIL_BYTES = 256 * 1024;
|
|
156
|
+
const KEEP_TEST_LIST_BYTES = 64 * 1024 * 1024;
|
|
157
|
+
const DEFAULT_DISCOVERY_STEP_TIMEOUT_MS = 30 * 60 * 1000;
|
|
158
|
+
function keepTail(current, chunk, limit) {
|
|
159
|
+
const next = current + chunk;
|
|
160
|
+
return next.length > limit ? next.slice(next.length - limit) : next;
|
|
161
|
+
}
|
|
162
|
+
function runStep(command, args, cwd, options) {
|
|
163
|
+
const described = [command, ...args].join(" ");
|
|
164
|
+
return new Promise((resolve) => {
|
|
165
|
+
let child;
|
|
166
|
+
try {
|
|
167
|
+
child = spawn(command, args, { cwd, env: { ...process.env, ...options.environment }, detached: true, stdio: ["ignore", "pipe", "pipe"] });
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
resolve({ status: null, stdout: "", stderr: "", failure: `${described} could not be started: ${error.message}` });
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const keepStdout = options.keepStdoutBytes ?? KEEP_OUTPUT_TAIL_BYTES;
|
|
174
|
+
let stdout = "";
|
|
175
|
+
let stdoutOverflowed = false;
|
|
176
|
+
let stderr = "";
|
|
177
|
+
let failure = null;
|
|
178
|
+
let settled = false;
|
|
179
|
+
const stopGroup = () => {
|
|
180
|
+
if (child.pid === undefined)
|
|
181
|
+
return;
|
|
182
|
+
try {
|
|
183
|
+
process.kill(-child.pid, "SIGKILL");
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
if (options.signal?.aborted === true) {
|
|
190
|
+
failure = `${described} was cancelled`;
|
|
191
|
+
stopGroup();
|
|
192
|
+
}
|
|
193
|
+
const timer = setTimeout(() => {
|
|
194
|
+
failure = `${described} did not finish within ${options.budgetMs ?? options.timeoutMs} ms and was stopped`;
|
|
195
|
+
stopGroup();
|
|
196
|
+
}, options.timeoutMs);
|
|
197
|
+
const onAbort = () => {
|
|
198
|
+
failure = `${described} was cancelled`;
|
|
199
|
+
stopGroup();
|
|
200
|
+
};
|
|
201
|
+
options.signal?.addEventListener("abort", onAbort, { once: true });
|
|
202
|
+
child.stdout?.setEncoding("utf8");
|
|
203
|
+
child.stderr?.setEncoding("utf8");
|
|
204
|
+
child.stdout?.on("data", (chunk) => {
|
|
205
|
+
if (stdout.length + chunk.length > keepStdout)
|
|
206
|
+
stdoutOverflowed = true;
|
|
207
|
+
stdout = keepTail(stdout, chunk, keepStdout);
|
|
208
|
+
});
|
|
209
|
+
child.stderr?.on("data", (chunk) => {
|
|
210
|
+
stderr = keepTail(stderr, chunk, KEEP_OUTPUT_TAIL_BYTES);
|
|
211
|
+
});
|
|
212
|
+
const finish = (status, startFailure) => {
|
|
213
|
+
if (settled)
|
|
214
|
+
return;
|
|
215
|
+
settled = true;
|
|
216
|
+
clearTimeout(timer);
|
|
217
|
+
options.signal?.removeEventListener("abort", onAbort);
|
|
218
|
+
if (startFailure !== null)
|
|
219
|
+
failure ??= startFailure;
|
|
220
|
+
if (failure === null && stdoutOverflowed && keepStdout === KEEP_TEST_LIST_BYTES) {
|
|
221
|
+
failure = `${described} wrote more than ${KEEP_TEST_LIST_BYTES} bytes of output`;
|
|
222
|
+
}
|
|
223
|
+
resolve({ status, stdout, stderr, failure });
|
|
224
|
+
};
|
|
225
|
+
child.once("error", (error) => finish(null, `${described} could not be started: ${error.message}`));
|
|
226
|
+
child.once("close", (code) => finish(code, null));
|
|
227
|
+
});
|
|
156
228
|
}
|
|
157
229
|
/** Asks SwiftPM for its output dir rather than assuming `.build/<triple>/debug`, not a stable contract. */
|
|
158
|
-
function binPath(packageRoot) {
|
|
159
|
-
const result =
|
|
160
|
-
if (result.status !== 0)
|
|
230
|
+
async function binPath(packageRoot, options) {
|
|
231
|
+
const result = await runStep("swift", ["build", "--show-bin-path"], packageRoot, options);
|
|
232
|
+
if (result.failure !== null || result.status !== 0)
|
|
161
233
|
return null;
|
|
162
234
|
return result.stdout.trim();
|
|
163
235
|
}
|
|
@@ -167,13 +239,17 @@ function findXCTestBinary(dir) {
|
|
|
167
239
|
const found = readdirSync(dir).find((entry) => entry.endsWith(".xctest"));
|
|
168
240
|
return found === undefined ? null : join(dir, found);
|
|
169
241
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
242
|
+
export async function discoverSwiftTests(packageRoot, options = {}) {
|
|
243
|
+
const budgetMs = options.timeoutMs ?? DEFAULT_DISCOVERY_STEP_TIMEOUT_MS;
|
|
244
|
+
const deadline = Date.now() + budgetMs;
|
|
245
|
+
const environment = options.environment ?? buildChildEnvironment().env;
|
|
246
|
+
const stepWithinBudget = (extra = {}) => ({
|
|
247
|
+
timeoutMs: Math.max(1, deadline - Date.now()),
|
|
248
|
+
budgetMs,
|
|
249
|
+
environment,
|
|
250
|
+
...(options.signal === undefined ? {} : { signal: options.signal }),
|
|
251
|
+
...extra,
|
|
252
|
+
});
|
|
177
253
|
const linuxMain = join(packageRoot, "Tests", "LinuxMain.swift");
|
|
178
254
|
if (existsSync(linuxMain)) {
|
|
179
255
|
const content = readFileSync(linuxMain, "utf8");
|
|
@@ -186,17 +262,21 @@ export function discoverSwiftTests(packageRoot) {
|
|
|
186
262
|
};
|
|
187
263
|
}
|
|
188
264
|
}
|
|
189
|
-
const built =
|
|
265
|
+
const built = await runStep("swift", ["build", "--build-tests"], packageRoot, stepWithinBudget());
|
|
266
|
+
if (built.failure !== null)
|
|
267
|
+
return { ok: false, reason: built.failure };
|
|
190
268
|
if (built.status !== 0) {
|
|
191
269
|
return { ok: false, reason: `swift build --build-tests failed:\n${built.stdout}${built.stderr}` };
|
|
192
270
|
}
|
|
193
|
-
const dir = binPath(packageRoot);
|
|
271
|
+
const dir = await binPath(packageRoot, stepWithinBudget());
|
|
194
272
|
if (dir === null)
|
|
195
|
-
return { ok: false, reason: "swift build --show-bin-path failed to report a binary output directory" };
|
|
273
|
+
return { ok: false, reason: "swift build --show-bin-path failed to report a binary output directory (it failed, was cancelled, or the discovery time budget ran out)" };
|
|
196
274
|
const binary = findXCTestBinary(dir);
|
|
197
275
|
if (binary === null)
|
|
198
276
|
return { ok: false, reason: `no .xctest binary found in ${dir} after a successful build --build-tests` };
|
|
199
|
-
const dumped =
|
|
277
|
+
const dumped = await runStep(binary, ["--dump-tests-json"], packageRoot, stepWithinBudget({ keepStdoutBytes: KEEP_TEST_LIST_BYTES }));
|
|
278
|
+
if (dumped.failure !== null)
|
|
279
|
+
return { ok: false, reason: dumped.failure };
|
|
200
280
|
if (dumped.status !== 0) {
|
|
201
281
|
return { ok: false, reason: `${binary} --dump-tests-json failed:\n${dumped.stdout}${dumped.stderr}` };
|
|
202
282
|
}
|
|
@@ -253,14 +333,42 @@ export function createSwiftXCTestCollector(options) {
|
|
|
253
333
|
let mode = null;
|
|
254
334
|
let generatedTmpFile = null;
|
|
255
335
|
let packageCopy = null;
|
|
336
|
+
let timeoutGuard = null;
|
|
337
|
+
let environmentDisclosures = [];
|
|
338
|
+
const discoveryAbort = new AbortController();
|
|
339
|
+
const abortDiscovery = () => discoveryAbort.abort();
|
|
340
|
+
options.signal?.addEventListener("abort", abortDiscovery, { once: true });
|
|
341
|
+
if (options.signal?.aborted === true)
|
|
342
|
+
abortDiscovery();
|
|
256
343
|
return {
|
|
257
344
|
collectorId: "swift-xctest-collector",
|
|
258
345
|
async start(ctx) {
|
|
346
|
+
const timeout = resolveRunTimeout(options.timeoutMs);
|
|
347
|
+
if (!timeout.ok)
|
|
348
|
+
return { available: false, reason: timeout.reason };
|
|
349
|
+
if (options.filesystemPolicy !== undefined || options.networkPolicy !== undefined) {
|
|
350
|
+
const declared = [options.filesystemPolicy !== undefined ? "filesystemPolicy" : null, options.networkPolicy !== undefined ? "networkPolicy" : null].filter((name) => name !== null).join(" and ");
|
|
351
|
+
return {
|
|
352
|
+
available: false,
|
|
353
|
+
reason: `a ${declared} was declared, but the Swift XCTest collector runs \`swift build\` (which evaluates Package.swift and its plugins) and the built test binary outside Descry's sandbox, ` +
|
|
354
|
+
"so it cannot enforce one; the run was refused rather than started unconstrained.",
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
const childEnvironment = buildChildEnvironment({
|
|
358
|
+
...(options.inheritHostEnvironment === undefined ? {} : { inheritHostEnvironment: options.inheritHostEnvironment }),
|
|
359
|
+
...(options.passthroughEnvironmentNames === undefined ? {} : { passthroughNames: options.passthroughEnvironmentNames }),
|
|
360
|
+
});
|
|
361
|
+
environmentDisclosures = childEnvironment.disclosure === null ? [] : [childEnvironment.disclosure];
|
|
362
|
+
const deadline = Date.now() + timeout.timeoutMs;
|
|
259
363
|
// Unchanged: writes only to .build (ordinary build output), never to
|
|
260
364
|
// Tests/LinuxMain.swift, so it runs directly against the real tree either way.
|
|
261
|
-
const discovery = discoverSwiftTests(options.packageRoot);
|
|
365
|
+
const discovery = await discoverSwiftTests(options.packageRoot, { timeoutMs: timeout.timeoutMs, signal: discoveryAbort.signal, environment: childEnvironment.env });
|
|
262
366
|
if (!discovery.ok)
|
|
263
367
|
return { available: false, reason: discovery.reason };
|
|
368
|
+
const remainingMs = deadline - Date.now();
|
|
369
|
+
if (remainingMs <= 0) {
|
|
370
|
+
return { available: false, reason: `discovery used the whole ${String(timeout.timeoutMs)} ms time budget, leaving none for the test run; nothing was run.` };
|
|
371
|
+
}
|
|
264
372
|
const decision = detectIsolationMode();
|
|
265
373
|
mode = decision.mode;
|
|
266
374
|
let spawnCommand;
|
|
@@ -297,7 +405,9 @@ export function createSwiftXCTestCollector(options) {
|
|
|
297
405
|
command: spawnCommand,
|
|
298
406
|
args: spawnArgs,
|
|
299
407
|
cwd: spawnCwd,
|
|
408
|
+
env: childEnvironment.env,
|
|
300
409
|
});
|
|
410
|
+
timeoutGuard = armRunTimeout(managed, { runner: "swift test", timeoutMs: remainingMs, emit: ctx.emit, service: options.service ?? null, processId });
|
|
301
411
|
translator = createEventTranslator(ctx.emit, options.service, processId);
|
|
302
412
|
const activeTranslator = translator;
|
|
303
413
|
const gate = createEnvelopeGate();
|
|
@@ -345,6 +455,10 @@ export function createSwiftXCTestCollector(options) {
|
|
|
345
455
|
if (verdict.kind !== "event")
|
|
346
456
|
return;
|
|
347
457
|
activeTranslator.handle(parsed);
|
|
458
|
+
}, {
|
|
459
|
+
onGap: (droppedChars) => {
|
|
460
|
+
reportRunnerOutputGap(ctx.emit, { collector: "swift-xctest", service: options.service ?? null, processId, droppedChars });
|
|
461
|
+
},
|
|
348
462
|
}).then(async () => {
|
|
349
463
|
activeTranslator.flush();
|
|
350
464
|
// A run that died before a single test was observed (bwrap refusing a flag, swift
|
|
@@ -362,7 +476,13 @@ export function createSwiftXCTestCollector(options) {
|
|
|
362
476
|
});
|
|
363
477
|
return { available: true };
|
|
364
478
|
},
|
|
479
|
+
timedOut() {
|
|
480
|
+
return timeoutGuard?.timedOut() ?? false;
|
|
481
|
+
},
|
|
365
482
|
async stop() {
|
|
483
|
+
discoveryAbort.abort();
|
|
484
|
+
options.signal?.removeEventListener("abort", abortDiscovery);
|
|
485
|
+
timeoutGuard?.cancel();
|
|
366
486
|
if (managed !== null) {
|
|
367
487
|
await managed.kill();
|
|
368
488
|
}
|
|
@@ -398,6 +518,9 @@ export function createSwiftXCTestCollector(options) {
|
|
|
398
518
|
isolationMode() {
|
|
399
519
|
return mode;
|
|
400
520
|
},
|
|
521
|
+
wrapperDisclosures() {
|
|
522
|
+
return environmentDisclosures;
|
|
523
|
+
},
|
|
401
524
|
};
|
|
402
525
|
}
|
|
403
526
|
//# sourceMappingURL=swift-xctest.js.map
|
package/dist/swift-xctest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift-xctest.js","sourceRoot":"","sources":["../src/swift-xctest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"swift-xctest.js","sourceRoot":"","sources":["../src/swift-xctest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAuB,MAAM,6BAA6B,CAAC;AAGhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAwB,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,EAAsB,MAAM,4BAA4B,CAAC;AAC9J,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,UAAU,GAGX,MAAM,sBAAsB,CAAC;AAa9B;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,IAAmB,EAAQ,EAAE;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;YACxE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO;YACvB,GAAG,CAAC,IAAI,CAAC;gBACP,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC/B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;gBACnC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACrC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+GAA+G;AAC/G,MAAM,CAAC,MAAM,gBAAgB,GAAG,4HAA4H,CAAC;AAE7J;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BpB,CAAC;AAEH,wGAAwG;AACxG,MAAM,UAAU,iBAAiB,CAAC,OAAwC;IACxE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,OAAO,aAAa,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS,0CAA0C,OAAO,uBAAuB,CAAC;IACxK,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhG,OAAO,GAAG,gBAAgB;;;EAG1B,OAAO;;EAEP,UAAU;;EAEV,aAAa;;;;EAIb,OAAO;;CAER,CAAC;AACF,CAAC;AAiBD,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,CAAC;AAC1C,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C,MAAM,iCAAiC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzD,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAE,KAAa;IAC7D,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC;IAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,IAAuB,EAAE,GAAW,EAAE,OAAoB;IAC1F,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,KAA+B,CAAC;QACpC,IAAI,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5I,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,SAAS,0BAA2B,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7H,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,IAAI,sBAAsB,CAAC;QACrE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;gBAAE,OAAO;YACpC,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,GAAG,GAAG,SAAS,gBAAgB,CAAC;YACvC,SAAS,EAAE,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,GAAG,GAAG,SAAS,0BAA0B,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,qBAAqB,CAAC;YAC3G,SAAS,EAAE,CAAC;QACd,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,OAAO,GAAG,GAAG,SAAS,gBAAgB,CAAC;YACvC,SAAS,EAAE,CAAC;QACd,CAAC,CAAC;QACF,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,UAAU;gBAAE,gBAAgB,GAAG,IAAI,CAAC;YACvE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAqB,EAAE,YAA2B,EAAQ,EAAE;YAC1E,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,YAAY,KAAK,IAAI;gBAAE,OAAO,KAAK,YAAY,CAAC;YACpD,IAAI,OAAO,KAAK,IAAI,IAAI,gBAAgB,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;gBAChF,OAAO,GAAG,GAAG,SAAS,oBAAoB,oBAAoB,kBAAkB,CAAC;YACnF,CAAC;YACD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,SAAS,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2GAA2G;AAC3G,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,OAAoB;IAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1E,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,UAAiC,EAAE;IAC/F,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,IAAI,iCAAiC,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,qBAAqB,EAAE,CAAC,GAAG,CAAC;IACvE,MAAM,gBAAgB,GAAG,CAAC,QAA8B,EAAE,EAAe,EAAE,CAAC,CAAC;QAC3E,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7C,QAAQ;QACR,WAAW;QACX,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,KAAK;KACT,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAAE,MAAM,CAAC,SAAS,CAAC,CAAC;aACvD,CAAC;YACJ,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG,SAAS,wLAAwL;aAC7M,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAClG,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACxE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sCAAsC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;IACpG,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC3D,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yIAAyI,EAAE,CAAC;IAE1L,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,GAAG,yCAAyC,EAAE,CAAC;IAE9H,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;IACtI,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,+BAA+B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IACxG,CAAC;IAED,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAkB,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,kDAAkD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IACzH,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sGAAsG,EAAE,CAAC;IACvI,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,OAAwC;IAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,8FAA8F,CAAC,CAAC;IAC9H,CAAC;IACD,aAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,wBAAwB,CAAC,WAAmB;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1F,MAAM,CAAC,SAAS,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAcD,SAAS,mBAAmB;IAC1B,MAAM,MAAM,GAAG,6HAA6H,CAAC;IAC7I,MAAM,MAAM,GAAG,EAAE,YAAY,EAAE,aAAsB,EAAE,MAAM,EAAE,CAAC;IAChE,OAAO;QACL,cAAc,EAAE,MAAM;QACtB,kBAAkB,EAAE,MAAM;QAC1B,kBAAkB,EAAE,MAAM;QAC1B,gBAAgB,EAAE,MAAM;QACxB,gBAAgB,EAAE,MAAM;QACxB,aAAa,EAAE,EAAE,YAAY,EAAE,WAAoB,EAAE,MAAM,EAAE,IAAI,EAAE;QACnE,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,MAAM;QACxB,mBAAmB,EAAE,MAAM;QAC3B,0BAA0B,EAAE,MAAM;KACnC,CAAC;AACJ,CAAC;AAYD,6LAA6L;AAC7L,MAAM,UAAU,0BAA0B,CAAC,OAAoC;IAC7E,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,IAAI,UAAU,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAClD,IAAI,UAAU,GAAoD,IAAI,CAAC;IACvE,IAAI,IAAI,GAAyB,IAAI,CAAC;IACtC,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAC3C,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C,IAAI,YAAY,GAA2B,IAAI,CAAC;IAChD,IAAI,sBAAsB,GAAsB,EAAE,CAAC;IACnD,MAAM,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,GAAS,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC1D,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI;QAAE,cAAc,EAAE,CAAC;IAEvD,OAAO;QACL,WAAW,EAAE,wBAAwB;QAErC,KAAK,CAAC,KAAK,CAAC,GAAqB;YAC/B,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YACrE,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAClF,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClM,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,MAAM,EACJ,KAAK,QAAQ,yKAAyK;wBACtL,kFAAkF;iBACrF,CAAC;YACJ,CAAC;YACD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;gBAC7C,GAAG,CAAC,OAAO,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC;gBACnH,GAAG,CAAC,OAAO,CAAC,2BAA2B,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,2BAA2B,EAAE,CAAC;aACxH,CAAC,CAAC;YACH,sBAAsB,GAAG,gBAAgB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;YAChD,qEAAqE;YACrE,+EAA+E;YAC/E,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;YACpK,IAAI,CAAC,SAAS,CAAC,EAAE;gBAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;YACzE,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1C,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;gBACrB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,kEAAkE,EAAE,CAAC;YAC/J,CAAC;YAED,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;YACvC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAErB,IAAI,YAAoB,CAAC;YACzB,IAAI,SAA4B,CAAC;YACjC,IAAI,QAAgB,CAAC;YAErB,IAAI,CAAC;gBACH,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,0BAA0B,UAAU,EAAE,QAAQ,CAAC,CAAC;oBAC/E,8EAA8E;oBAC9E,mFAAmF;oBACnF,+EAA+E;oBAC/E,aAAa,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;oBACrE,gBAAgB,GAAG,OAAO,CAAC;oBAC3B,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACrE,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;oBAC7B,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;oBACvB,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBAC5D,WAAW,GAAG,IAAI,CAAC;oBACnB,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;oBACjD,YAAY,GAAG,OAAO,CAAC;oBACvB,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC;oBACrB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9F,CAAC;YAED,MAAM,SAAS,GAAG,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC/C,OAAO,GAAG,YAAY,CAAC;gBACrB,SAAS;gBACT,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,QAAQ;gBACb,GAAG,EAAE,gBAAgB,CAAC,GAAG;aAC1B,CAAC,CAAC;YACH,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAErJ,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM,gBAAgB,GAAG,UAAU,CAAC;YACpC,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;YAClC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAQ,EAAE;gBACnD,GAAG,CAAC,IAAI,CAAC;oBACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;oBAChC,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,aAAa,EAAE,IAAI;oBACnB,WAAW,EAAE,IAAI;oBACjB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,CAAC;oBACb,eAAe,EAAE,mBAAmB;oBACpC,gBAAgB,EAAE,iBAAiB;oBACnC,SAAS,EAAE,iBAAiB;oBAC5B,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE;oBAC9C,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO;gBAC/B,IAAI,MAAe,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,2FAA2F;oBAC3F,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;wBAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC/D,OAAO;gBACT,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC9B,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;oBAAE,OAAO;gBACrC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC,EAAE;gBACD,KAAK,EAAE,CAAC,YAAY,EAAE,EAAE;oBACtB,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC5H,CAAC;aACF,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACjB,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBACzB,kFAAkF;gBAClF,oFAAoF;gBACpF,oFAAoF;gBACpF,6CAA6C;gBAC7C,MAAM,OAAO,GAAG,OAAO,CAAC;gBACxB,IAAI,OAAO,KAAK,IAAI;oBAAE,OAAO;gBAC7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;oBACrG,mBAAmB,CACjB,qBAAqB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gCAAgC;wBACxE,eAAe,IAAI,IAAI,SAAS,oBAAoB,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC7B,CAAC;QAED,QAAQ;YACN,OAAO,YAAY,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,IAAI;YACR,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC7D,YAAY,EAAE,MAAM,EAAE,CAAC;YACvB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,UAAU,CAAC;YACjB,qFAAqF;YACrF,kFAAkF;YAClF,gFAAgF;YAChF,iFAAiF;YACjF,yDAAyD;YACzD,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC;oBACP,oFAAoF;gBACtF,CAAC;gBACD,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,UAAU,CAAC,WAAW,CAAC,CAAC;gBACxB,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QAED,YAAY;YACV,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,iBAAiB;YACrB,MAAM,UAAU,CAAC;QACnB,CAAC;QAED,aAAa;YACX,OAAO,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAClF,CAAC;QAED,aAAa;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kBAAkB;YAChB,OAAO,sBAAsB,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -98,8 +98,10 @@
|
|
|
98
98
|
* before a scoped `node --test packages/test-runner/test/*.test.ts` also
|
|
99
99
|
* works and is faster while iterating on one file.
|
|
100
100
|
*/
|
|
101
|
-
import { type ManagedProcess, type ProcessExitInfo } from "@descryy/runtime-controller";
|
|
101
|
+
import { type ManagedProcess, type ProcessExitInfo, type SandboxDisclosures } from "@descryy/runtime-controller";
|
|
102
102
|
import type { Collector, EmitFn, TestRunnerConfiguration } from "@descryy/runtime-contracts";
|
|
103
|
+
import { type ExecutedCoverage } from "./executed-coverage.ts";
|
|
104
|
+
import { type WrapperMatch } from "./runner-wrappers.ts";
|
|
103
105
|
/**
|
|
104
106
|
* §2 (RT-?): the contracts type, not a look-alike -- `ExecutionConfiguration.testRunner`
|
|
105
107
|
* IS this shape, the same "one type, not two that could drift" precedent
|
|
@@ -112,6 +114,8 @@ export interface TestRunnerCollectorOptions {
|
|
|
112
114
|
readonly configuration: TestRunnerConfiguration;
|
|
113
115
|
/** Joins emitted Evidence back to a named service, same convention as every other collector. Omit for a standalone test run with no corresponding service. */
|
|
114
116
|
readonly service?: string;
|
|
117
|
+
readonly inheritHostEnvironment?: boolean;
|
|
118
|
+
readonly passthroughEnvironmentNames?: readonly string[];
|
|
115
119
|
}
|
|
116
120
|
/**
|
|
117
121
|
* Which runner a declared command names. The value is carried through
|
|
@@ -205,15 +209,23 @@ export declare function createEnvelopeGate(): {
|
|
|
205
209
|
* (RT-088), landed with the vocabulary rather than after it.
|
|
206
210
|
*/
|
|
207
211
|
export type SkipReason = "disabled" | "not-implemented" | "precondition-unmet" | "unspecified";
|
|
212
|
+
/**
|
|
213
|
+
* `command`/`args` are the runner's own, so every profile reads them exactly as it would a bare
|
|
214
|
+
* runner. `wrapper`, when present, is what goes in front of them at spawn time.
|
|
215
|
+
*/
|
|
208
216
|
export type RunnerDiscovery = {
|
|
209
217
|
readonly ok: true;
|
|
210
218
|
readonly kind: RunnerKind;
|
|
211
219
|
readonly command: string;
|
|
212
220
|
readonly args: readonly string[];
|
|
221
|
+
readonly wrapper?: WrapperMatch;
|
|
213
222
|
} | {
|
|
214
223
|
readonly ok: false;
|
|
215
224
|
readonly reason: string;
|
|
216
225
|
};
|
|
226
|
+
export interface ReporterFlagOptions {
|
|
227
|
+
readonly vitestTaskLocation?: boolean;
|
|
228
|
+
}
|
|
217
229
|
/**
|
|
218
230
|
* **Where the reporter flags land in argv is load-bearing for node, not
|
|
219
231
|
* cosmetic.** Measured while building RT-073: `node --test sample.test.mjs
|
|
@@ -301,7 +313,7 @@ export declare function matchRunner(rawCommand: string): RunnerMatch | null;
|
|
|
301
313
|
* best-effort guess.
|
|
302
314
|
*/
|
|
303
315
|
export declare function discoverRunner(rawCommand: string): RunnerDiscovery;
|
|
304
|
-
export declare function reporterFlagsFor(kind: RunnerKind, args: readonly string[]): readonly string[];
|
|
316
|
+
export declare function reporterFlagsFor(kind: RunnerKind, args: readonly string[], options?: ReporterFlagOptions): readonly string[];
|
|
305
317
|
/** `{}` for every profile that has no `reporterEnv` — `start()`'s merge then adds nothing. */
|
|
306
318
|
export declare function reporterEnvFor(kind: RunnerKind, args: readonly string[]): Record<string, string | undefined>;
|
|
307
319
|
/**
|
|
@@ -422,8 +434,13 @@ export declare function isNodeTestEvent(value: unknown): value is NodeTestEvent;
|
|
|
422
434
|
* `TEST_STARTED` -- the test did start -- but no paired result, on the same
|
|
423
435
|
* "report nothing rather than guess" rule.
|
|
424
436
|
*/
|
|
437
|
+
export interface UnittestReconciliation {
|
|
438
|
+
readonly reconciled: boolean;
|
|
439
|
+
readonly reason: string | null;
|
|
440
|
+
}
|
|
425
441
|
export declare function createUnittestResultParser(): {
|
|
426
442
|
feed(line: string): readonly NodeTestEvent[];
|
|
443
|
+
finish(): UnittestReconciliation;
|
|
427
444
|
};
|
|
428
445
|
/**
|
|
429
446
|
* `test:pass`/`test:fail` arrive from node's own reporter stream BEFORE any
|
|
@@ -484,19 +501,30 @@ export declare function createEventTranslator(emit: EmitFn, service: string | un
|
|
|
484
501
|
flush(): void;
|
|
485
502
|
coverage(): TraceCoverage;
|
|
486
503
|
};
|
|
504
|
+
export declare function runnerOutputGapReason(droppedChars: number): string;
|
|
505
|
+
export declare function reportRunnerOutputGap(emit: EmitFn, details: {
|
|
506
|
+
readonly collector: string;
|
|
507
|
+
readonly service: string | null;
|
|
508
|
+
readonly processId: string;
|
|
509
|
+
readonly droppedChars: number;
|
|
510
|
+
}): void;
|
|
511
|
+
export interface PumpLinesOptions {
|
|
512
|
+
readonly pollIntervalMs?: number;
|
|
513
|
+
readonly onGap?: (droppedChars: number) => void;
|
|
514
|
+
}
|
|
487
515
|
/**
|
|
488
|
-
* Feeds complete NDJSON lines from `managed`'s
|
|
516
|
+
* Feeds complete NDJSON lines from `managed`'s output to
|
|
489
517
|
* `onLine`, exactly once each, as they arrive -- streaming-first, not
|
|
490
518
|
* batched until the process exits. A narrower, single-purpose relative of
|
|
491
|
-
* `orchestrator`'s `createPollingProcessOutputSource` (same
|
|
492
|
-
*
|
|
519
|
+
* `orchestrator`'s `createPollingProcessOutputSource` (same cursor read and
|
|
520
|
+
* gap handling, same "ends only once the process is finished AND the buffer
|
|
493
521
|
* stopped growing" ordering) rather than a shared dependency on it: this
|
|
494
522
|
* collector only ever needs complete lines fed to a callback, not the
|
|
495
523
|
* general `ProcessOutputSource` shape, and taking a dependency on
|
|
496
524
|
* `@descryy/runtime-orchestrator` -- the assembly layer -- from a collector
|
|
497
525
|
* would invert the direction every other package in this repo depends in.
|
|
498
526
|
*/
|
|
499
|
-
export declare function pumpLines(managed: ManagedProcess, onLine: (line: string) => void,
|
|
527
|
+
export declare function pumpLines(managed: ManagedProcess, onLine: (line: string) => void, options?: PumpLinesOptions): Promise<void>;
|
|
500
528
|
export interface TestRunnerCollector extends Collector {
|
|
501
529
|
/** Resolves once the spawned runner process has exited and every buffered line has been translated. Await this, not just `stop()`, to know the run finished. */
|
|
502
530
|
waitForCompletion(): Promise<void>;
|
|
@@ -515,6 +543,28 @@ export interface TestRunnerCollector extends Collector {
|
|
|
515
543
|
* returns, because the process has necessarily already exited by then.
|
|
516
544
|
*/
|
|
517
545
|
processExit(): ProcessExitInfo | null;
|
|
546
|
+
/**
|
|
547
|
+
* The last `maxBytes` (default 8 KB) of the runner's combined stdout and stderr, unredacted;
|
|
548
|
+
* `null` before anything was spawned. What a caller shows when the runner died before a
|
|
549
|
+
* single result, so the reason is read off the process rather than guessed.
|
|
550
|
+
*/
|
|
551
|
+
outputTail(maxBytes?: number): string | null;
|
|
552
|
+
/** What running through the declared wrapper changed about it (offline, no sync), for the caller to say. Empty for a bare runner. */
|
|
553
|
+
wrapperDisclosures(): readonly string[];
|
|
554
|
+
/**
|
|
555
|
+
* What this run could not observe, in terms a user can act on, valid once `waitForCompletion()`
|
|
556
|
+
* has resolved. Empty when nothing was lost. Today: Vitest's per-test line and column, which
|
|
557
|
+
* depend on a flag only some majors accept. Stated rather than left as a null line on each event.
|
|
558
|
+
*/
|
|
559
|
+
degradations(): readonly string[];
|
|
560
|
+
timedOut(): boolean;
|
|
561
|
+
sandboxDisclosures(): SandboxDisclosures;
|
|
562
|
+
/**
|
|
563
|
+
* Executed-line coverage of the whole run, valid once `waitForCompletion()` has resolved.
|
|
564
|
+
* `available: false` with a reason before completion, when `collectCoverage` was not set, and
|
|
565
|
+
* for every runner that has no dependency-free line-coverage hook.
|
|
566
|
+
*/
|
|
567
|
+
executedCoverage(): ExecutedCoverage;
|
|
518
568
|
}
|
|
519
569
|
export declare function createTestRunnerCollector(options: TestRunnerCollectorOptions): TestRunnerCollector;
|
|
520
570
|
//# sourceMappingURL=test-runner-collector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-runner-collector.d.ts","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;
|
|
1
|
+
{"version":3,"file":"test-runner-collector.d.ts","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"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"}
|