@overkill-dev/engine 0.0.40 → 0.0.42
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/clock/overkill-clock.d.ts +30 -0
- package/clock/overkill-clock.d.ts.map +1 -0
- package/clock/overkill-clock.js +53 -0
- package/clock/overkill-clock.js.map +1 -0
- package/engine/async-leak-diagnostics.d.ts.map +1 -1
- package/engine/async-leak-diagnostics.js +10 -0
- package/engine/async-leak-diagnostics.js.map +1 -1
- package/engine/case-execution.d.ts +3 -3
- package/engine/case-execution.d.ts.map +1 -1
- package/engine/case-execution.js +22 -10
- package/engine/case-execution.js.map +1 -1
- package/engine/engine.d.ts +2 -2
- package/engine/engine.d.ts.map +1 -1
- package/engine/execution-async-leak-policy.d.ts.map +1 -1
- package/engine/execution-async-leak-policy.js +3 -2
- package/engine/execution-async-leak-policy.js.map +1 -1
- package/engine/execution-global-error-observer.d.ts +20 -0
- package/engine/execution-global-error-observer.d.ts.map +1 -0
- package/engine/execution-global-error-observer.js +342 -0
- package/engine/execution-global-error-observer.js.map +1 -0
- package/engine/execution-result.js +5 -1
- package/engine/execution-result.js.map +1 -1
- package/engine/execution-supervision.d.ts +7 -5
- package/engine/execution-supervision.d.ts.map +1 -1
- package/engine/execution-supervision.js +47 -29
- package/engine/execution-supervision.js.map +1 -1
- package/engine/execution-test-plan-cases.js +72 -14
- package/engine/execution-test-plan-cases.js.map +1 -1
- package/engine/execution.d.ts +2 -2
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +38 -20
- package/engine/execution.js.map +1 -1
- package/engine/reporter-dispatcher.d.ts +2 -2
- package/engine/reporter-dispatcher.d.ts.map +1 -1
- package/engine/reporter-dispatcher.js +1 -0
- package/engine/reporter-dispatcher.js.map +1 -1
- package/engine/reporter.d.ts +1 -1
- package/engine/reporter.d.ts.map +1 -1
- package/engine/resource-usage-growth.js +4 -4
- package/engine/resource-usage-growth.js.map +1 -1
- package/engine/run-result.d.ts +88 -7
- package/engine/run-result.d.ts.map +1 -1
- package/engine/run-result.js +114 -0
- package/engine/run-result.js.map +1 -1
- package/engine/run-timings.d.ts +68 -0
- package/engine/run-timings.d.ts.map +1 -0
- package/engine/run-timings.js +116 -0
- package/engine/run-timings.js.map +1 -0
- package/engine/test-data.d.ts +4 -0
- package/engine/test-data.d.ts.map +1 -1
- package/engine/test-data.js +14 -1
- package/engine/test-data.js.map +1 -1
- package/package.json +3 -2
- package/packages/engine/engine.entry-point.d.ts +5 -3
- package/packages/engine/engine.entry-point.d.ts.map +1 -1
- package/packages/engine/engine.entry-point.js +3 -3
- package/packages/engine/engine.entry-point.js.map +1 -1
- package/readme.md +3 -1
- package/sbom.cdx.json +4 -21
package/engine/run-result.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { InvalidDeepAssertionOperand } from '../assertion-protocol/evaluation.ts';
|
|
2
2
|
import type { FailedCheck, NonEmptyReadonlyArray, ResolvableSourceLocation } from '../assertion-protocol/assertion-node-shape.ts';
|
|
3
3
|
import type { CaseId, WorkId } from './identity.ts';
|
|
4
|
+
import type { RunTimings } from './run-timings.ts';
|
|
4
5
|
type RunnerErrorSubtypeByName = {
|
|
5
6
|
readonly attributionDrift: 'attribution-drift';
|
|
6
7
|
readonly crash: 'crash';
|
|
@@ -11,6 +12,7 @@ type RunnerErrorSubtypeByName = {
|
|
|
11
12
|
readonly resourceExhaustion: 'resource-exhaustion';
|
|
12
13
|
readonly runtimeState: 'runtime-state';
|
|
13
14
|
readonly runtimePolicy: 'runtime-policy';
|
|
15
|
+
readonly uncaughtException: 'uncaught-exception';
|
|
14
16
|
readonly unhandledRejection: 'unhandled-rejection';
|
|
15
17
|
};
|
|
16
18
|
type RunnerErrorSubtype = RunnerErrorSubtypeByName[keyof RunnerErrorSubtypeByName];
|
|
@@ -68,10 +70,16 @@ type CleanupErrorTestFailure = {
|
|
|
68
70
|
};
|
|
69
71
|
readonly kind: 'cleanup-error';
|
|
70
72
|
};
|
|
73
|
+
export type HedgedDuplicateConflictFailure = {
|
|
74
|
+
readonly artifact: RunArtifactId;
|
|
75
|
+
readonly kind: 'hedged-duplicate-conflict';
|
|
76
|
+
readonly summary: string;
|
|
77
|
+
};
|
|
71
78
|
type TestFailureTypes = readonly [
|
|
72
79
|
AssertionTestFailure,
|
|
73
80
|
BodyErrorTestFailure,
|
|
74
81
|
CleanupErrorTestFailure,
|
|
82
|
+
HedgedDuplicateConflictFailure,
|
|
75
83
|
TestContractFailure,
|
|
76
84
|
TimeoutTestFailure
|
|
77
85
|
];
|
|
@@ -98,9 +106,65 @@ export type RunnerError = {
|
|
|
98
106
|
readonly attributedTo: CaseId | null;
|
|
99
107
|
readonly attributedToWork?: WorkId | null;
|
|
100
108
|
readonly cause: unknown;
|
|
109
|
+
readonly diagnostics: readonly RunnerErrorDiagnostic[];
|
|
101
110
|
readonly message: string;
|
|
102
111
|
readonly subtype: RunnerErrorSubtype;
|
|
103
112
|
};
|
|
113
|
+
type RunnerErrorDiagnostic = {
|
|
114
|
+
readonly label: string;
|
|
115
|
+
readonly value: string;
|
|
116
|
+
};
|
|
117
|
+
type PermissionDeniedRunnerErrorBoundaryByName = {
|
|
118
|
+
readonly inProcess: 'in-process';
|
|
119
|
+
readonly none: null;
|
|
120
|
+
readonly supervisedChild: 'supervised-child';
|
|
121
|
+
readonly workerPoolHost: 'worker-pool-host';
|
|
122
|
+
readonly workerPoolWorker: 'worker-pool-worker';
|
|
123
|
+
};
|
|
124
|
+
type PermissionDeniedRunnerErrorBoundary = PermissionDeniedRunnerErrorBoundaryByName[keyof PermissionDeniedRunnerErrorBoundaryByName];
|
|
125
|
+
export type PermissionDeniedRunnerErrorPhase = 'body' | 'collection' | 'load' | 'out-of-test' | 'run' | null;
|
|
126
|
+
type PermissionDeniedRunnerErrorHook = 'uncaughtException' | 'unhandledRejection' | null;
|
|
127
|
+
type PermissionDeniedRunnerErrorSource = 'diagnostic-channel' | 'throw';
|
|
128
|
+
type SerializedPermissionDeniedError = {
|
|
129
|
+
readonly code: string | null;
|
|
130
|
+
readonly message: string;
|
|
131
|
+
readonly name: string;
|
|
132
|
+
readonly permission: string | null;
|
|
133
|
+
readonly resource: string | null;
|
|
134
|
+
readonly stack: string | null;
|
|
135
|
+
};
|
|
136
|
+
export type PermissionDeniedRunnerErrorCause = {
|
|
137
|
+
readonly boundary: PermissionDeniedRunnerErrorBoundary;
|
|
138
|
+
readonly capability: string | null;
|
|
139
|
+
readonly diagnosticChannel: string | null;
|
|
140
|
+
readonly error: SerializedPermissionDeniedError | null;
|
|
141
|
+
readonly hook: PermissionDeniedRunnerErrorHook;
|
|
142
|
+
readonly kind: 'node-permission-denial';
|
|
143
|
+
readonly permission: string | null;
|
|
144
|
+
readonly phase: PermissionDeniedRunnerErrorPhase;
|
|
145
|
+
readonly resource: string | null;
|
|
146
|
+
readonly source: PermissionDeniedRunnerErrorSource;
|
|
147
|
+
};
|
|
148
|
+
export type PermissionDeniedRunnerError = RunnerError & {
|
|
149
|
+
readonly cause: PermissionDeniedRunnerErrorCause;
|
|
150
|
+
readonly subtype: 'permission';
|
|
151
|
+
};
|
|
152
|
+
export type PermissionDeniedRunnerErrorContext = {
|
|
153
|
+
readonly attributedTo: CaseId | null;
|
|
154
|
+
readonly attributedToWork: WorkId | null;
|
|
155
|
+
readonly boundary: PermissionDeniedRunnerErrorBoundary;
|
|
156
|
+
readonly diagnosticChannel: string | null;
|
|
157
|
+
readonly hook: PermissionDeniedRunnerErrorHook;
|
|
158
|
+
readonly phase: PermissionDeniedRunnerErrorPhase;
|
|
159
|
+
};
|
|
160
|
+
export type PermissionDeniedDiagnostic = {
|
|
161
|
+
readonly channel: string;
|
|
162
|
+
readonly fallbackCapability: string | null;
|
|
163
|
+
readonly message: unknown;
|
|
164
|
+
};
|
|
165
|
+
export declare function permissionDeniedRunnerErrorFromThrown(error: unknown, context: PermissionDeniedRunnerErrorContext): PermissionDeniedRunnerError | null;
|
|
166
|
+
export declare function permissionDeniedRunnerErrorFromDiagnostic(diagnostic: PermissionDeniedDiagnostic, context: PermissionDeniedRunnerErrorContext): PermissionDeniedRunnerError;
|
|
167
|
+
export declare function isPermissionDeniedRunnerError(error: RunnerError): error is PermissionDeniedRunnerError;
|
|
104
168
|
export type CaseRunnerErrorOptions = {
|
|
105
169
|
readonly cause: unknown;
|
|
106
170
|
readonly subtype: RunnerErrorSubtype;
|
|
@@ -129,11 +193,12 @@ export type RunPlanStatus = 'empty-selection' | 'empty-shard' | 'planned';
|
|
|
129
193
|
export declare function runStatusFromSummary(summary: RunSummary, runnerErrors: readonly RunnerError[]): RunStatus;
|
|
130
194
|
export declare function runStatusFromPlan(summary: RunSummary, runnerErrors: readonly RunnerError[], planStatus: RunPlanStatus): RunStatus;
|
|
131
195
|
export type PerTestResult = {
|
|
196
|
+
readonly definitionLocations: NonEmptyReadonlyArray<ResolvableSourceLocation>;
|
|
132
197
|
readonly id: CaseId;
|
|
133
198
|
readonly outcome: TestOutcome | null;
|
|
134
199
|
readonly verdict: TestVerdict;
|
|
135
200
|
readonly workId: WorkId;
|
|
136
|
-
readonly
|
|
201
|
+
readonly durationMicroseconds: number;
|
|
137
202
|
};
|
|
138
203
|
export type RunArtifactScope = {
|
|
139
204
|
readonly activeCases: readonly CaseId[];
|
|
@@ -146,21 +211,37 @@ export type RunArtifactScope = {
|
|
|
146
211
|
export type RunArtifactId = {
|
|
147
212
|
readonly scope: RunArtifactScope;
|
|
148
213
|
readonly sequence: number;
|
|
149
|
-
readonly subtype: 'log-capture';
|
|
214
|
+
readonly subtype: 'hedged-conflict' | 'log-capture';
|
|
150
215
|
};
|
|
151
216
|
export type CapturedOutputArtifactPayload = {
|
|
152
217
|
readonly byteLength: number;
|
|
153
|
-
readonly
|
|
218
|
+
readonly capturedAtMicroseconds: number;
|
|
154
219
|
readonly kind: 'captured-output';
|
|
155
220
|
readonly stream: 'stderr' | 'stdout';
|
|
156
221
|
readonly text: string;
|
|
157
222
|
readonly truncated: boolean;
|
|
158
223
|
};
|
|
159
|
-
export type
|
|
224
|
+
export type HedgedConflictEvidence = {
|
|
225
|
+
readonly outcome: TestOutcome | null;
|
|
226
|
+
readonly verdict: TestVerdict;
|
|
227
|
+
};
|
|
228
|
+
export type HedgedConflictArtifactPayload = {
|
|
229
|
+
readonly authoritative: HedgedConflictEvidence;
|
|
230
|
+
readonly conflicting: HedgedConflictEvidence;
|
|
231
|
+
readonly kind: 'hedged-conflict';
|
|
232
|
+
readonly work: WorkId;
|
|
233
|
+
};
|
|
234
|
+
export type CapturedOutputArtifact = {
|
|
160
235
|
readonly id: RunArtifactId;
|
|
161
236
|
readonly payload: CapturedOutputArtifactPayload;
|
|
162
|
-
readonly source: 'boundary-captured';
|
|
237
|
+
readonly source: 'boundary-captured' | 'native';
|
|
238
|
+
};
|
|
239
|
+
export type HedgedConflictArtifact = {
|
|
240
|
+
readonly id: RunArtifactId;
|
|
241
|
+
readonly payload: HedgedConflictArtifactPayload;
|
|
242
|
+
readonly source: 'native';
|
|
163
243
|
};
|
|
244
|
+
export type RunArtifact = CapturedOutputArtifact | HedgedConflictArtifact;
|
|
164
245
|
export type SuiteRunCounts = {
|
|
165
246
|
readonly discovered: number;
|
|
166
247
|
readonly executed: number;
|
|
@@ -169,7 +250,7 @@ export type SuiteRunCounts = {
|
|
|
169
250
|
export type ResourceUsageSnapshot = {
|
|
170
251
|
readonly activeResourceCount: number;
|
|
171
252
|
readonly activeResourceTypes: readonly string[];
|
|
172
|
-
readonly
|
|
253
|
+
readonly capturedAtMicroseconds: number;
|
|
173
254
|
readonly javaScriptEngineHeapBytes: number;
|
|
174
255
|
readonly residentSetBytes: number;
|
|
175
256
|
};
|
|
@@ -203,7 +284,7 @@ export type RunResult = {
|
|
|
203
284
|
readonly runnerErrors: readonly RunnerError[];
|
|
204
285
|
readonly status: RunStatus;
|
|
205
286
|
readonly summary: RunSummary;
|
|
206
|
-
readonly
|
|
287
|
+
readonly timings: RunTimings;
|
|
207
288
|
};
|
|
208
289
|
export declare function verdictFromOutcome(outcome: TestOutcome): TestVerdict;
|
|
209
290
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"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"}
|
package/engine/run-result.js
CHANGED
|
@@ -7,6 +7,119 @@ export function invalidDeepAssertionOperandFailure(actual) {
|
|
|
7
7
|
summary: 'Deep assertions require non-primitive operands.'
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
+
const permissionCapabilities = {
|
|
11
|
+
ChildProcess: 'child-process',
|
|
12
|
+
FileSystemRead: 'fs-read',
|
|
13
|
+
FileSystemWrite: 'fs-write',
|
|
14
|
+
Inspector: 'inspector',
|
|
15
|
+
Network: 'net',
|
|
16
|
+
OpenSSLStore: 'openssl-store',
|
|
17
|
+
WASI: 'wasi',
|
|
18
|
+
WorkerThreads: 'worker'
|
|
19
|
+
};
|
|
20
|
+
function readStringProperty(value, property) {
|
|
21
|
+
if (value === null || typeof value !== 'object') {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const propertyValue = Reflect.get(value, property);
|
|
25
|
+
return typeof propertyValue === 'string' ? propertyValue : null;
|
|
26
|
+
}
|
|
27
|
+
function accessDeniedErrorCode(error) {
|
|
28
|
+
return readStringProperty(error, 'code');
|
|
29
|
+
}
|
|
30
|
+
function permissionCapability(permission, fallback) {
|
|
31
|
+
if (permission === null) {
|
|
32
|
+
return fallback;
|
|
33
|
+
}
|
|
34
|
+
return permissionCapabilities[permission] ?? fallback;
|
|
35
|
+
}
|
|
36
|
+
function serializedDeniedError(error) {
|
|
37
|
+
if (error instanceof Error) {
|
|
38
|
+
return {
|
|
39
|
+
code: accessDeniedErrorCode(error),
|
|
40
|
+
message: error.message,
|
|
41
|
+
name: error.name,
|
|
42
|
+
permission: readStringProperty(error, 'permission'),
|
|
43
|
+
resource: readStringProperty(error, 'resource'),
|
|
44
|
+
stack: error.stack ?? null
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
code: accessDeniedErrorCode(error),
|
|
49
|
+
message: String(error),
|
|
50
|
+
name: 'Error',
|
|
51
|
+
permission: readStringProperty(error, 'permission'),
|
|
52
|
+
resource: readStringProperty(error, 'resource'),
|
|
53
|
+
stack: null
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function permissionDeniedMessage(permission, resource) {
|
|
57
|
+
const permissionLabel = permission ?? 'unknown permission';
|
|
58
|
+
return resource === null
|
|
59
|
+
? `Permission denied: ${permissionLabel}.`
|
|
60
|
+
: `Permission denied: ${permissionLabel} for ${resource}.`;
|
|
61
|
+
}
|
|
62
|
+
function permissionDeniedCause(input) {
|
|
63
|
+
const permission = readStringProperty(input.error, 'permission') ??
|
|
64
|
+
readStringProperty(input.diagnosticMessage, 'permission');
|
|
65
|
+
const resource = readStringProperty(input.error, 'resource') ??
|
|
66
|
+
readStringProperty(input.diagnosticMessage, 'resource');
|
|
67
|
+
return {
|
|
68
|
+
boundary: input.context.boundary,
|
|
69
|
+
capability: permissionCapability(permission, input.capabilityFallback),
|
|
70
|
+
diagnosticChannel: input.context.diagnosticChannel,
|
|
71
|
+
error: input.error === null ? null : serializedDeniedError(input.error),
|
|
72
|
+
hook: input.context.hook,
|
|
73
|
+
kind: 'node-permission-denial',
|
|
74
|
+
permission,
|
|
75
|
+
phase: input.context.phase,
|
|
76
|
+
resource,
|
|
77
|
+
source: input.source
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function permissionDeniedRunnerError(context, cause) {
|
|
81
|
+
return {
|
|
82
|
+
attributedTo: context.attributedTo,
|
|
83
|
+
attributedToWork: context.attributedToWork,
|
|
84
|
+
cause,
|
|
85
|
+
diagnostics: [],
|
|
86
|
+
message: permissionDeniedMessage(cause.permission, cause.resource),
|
|
87
|
+
subtype: 'permission'
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function isAccessDeniedError(error) {
|
|
91
|
+
return accessDeniedErrorCode(error) === 'ERR_ACCESS_DENIED';
|
|
92
|
+
}
|
|
93
|
+
export function permissionDeniedRunnerErrorFromThrown(error, context) {
|
|
94
|
+
if (!isAccessDeniedError(error)) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
return permissionDeniedRunnerError(context, permissionDeniedCause({
|
|
98
|
+
capabilityFallback: null,
|
|
99
|
+
context,
|
|
100
|
+
diagnosticMessage: null,
|
|
101
|
+
error,
|
|
102
|
+
source: 'throw'
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
export function permissionDeniedRunnerErrorFromDiagnostic(diagnostic, context) {
|
|
106
|
+
return permissionDeniedRunnerError(context, permissionDeniedCause({
|
|
107
|
+
capabilityFallback: diagnostic.fallbackCapability,
|
|
108
|
+
context: {
|
|
109
|
+
...context,
|
|
110
|
+
diagnosticChannel: diagnostic.channel
|
|
111
|
+
},
|
|
112
|
+
diagnosticMessage: diagnostic.message,
|
|
113
|
+
error: null,
|
|
114
|
+
source: 'diagnostic-channel'
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
export function isPermissionDeniedRunnerError(error) {
|
|
118
|
+
return error.subtype === 'permission' &&
|
|
119
|
+
typeof error.cause === 'object' &&
|
|
120
|
+
error.cause !== null &&
|
|
121
|
+
Reflect.get(error.cause, 'kind') === 'node-permission-denial';
|
|
122
|
+
}
|
|
10
123
|
const caseRunnerErrorBrand = Symbol.for('@overkill-dev/engine/CaseRunnerError');
|
|
11
124
|
export class CaseRunnerError extends Error {
|
|
12
125
|
runnerErrorCause;
|
|
@@ -25,6 +138,7 @@ export class CaseRunnerError extends Error {
|
|
|
25
138
|
attributedTo,
|
|
26
139
|
attributedToWork,
|
|
27
140
|
cause: this.runnerErrorCause,
|
|
141
|
+
diagnostics: [],
|
|
28
142
|
message: this.message,
|
|
29
143
|
subtype: this.runnerErrorSubtype
|
|
30
144
|
};
|
package/engine/run-result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-result.js","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-result.js","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"AAwGA,MAAM,UAAU,kCAAkC,CAAC,MAAmC;IAClF,OAAO;QACH,MAAM;QACN,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,sCAAsC;QAChD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,iDAAiD;KAC7D,CAAC;AACN,CAAC;AAsGD,MAAM,sBAAsB,GAAqC;IAC7D,YAAY,EAAE,eAAe;IAC7B,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,UAAU;IAC3B,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,eAAe;IAC7B,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,QAAQ;CAC1B,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAc,EAAE,QAAgB;IACxD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAY,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE5D,OAAO,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IACzC,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAyB,EAAE,QAAuB;IAC5E,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,sBAAsB,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO;YACH,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC;YACnD,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC;YAC/C,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;SAC7B,CAAC;IACN,CAAC;IAED,OAAO;QACH,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QACtB,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC;QACnD,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC;QAC/C,KAAK,EAAE,IAAI;KACd,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAyB,EAAE,QAAuB;IAC/E,MAAM,eAAe,GAAG,UAAU,IAAI,oBAAoB,CAAC;IAE3D,OAAO,QAAQ,KAAK,IAAI;QACpB,CAAC,CAAC,sBAAsB,eAAe,GAAG;QAC1C,CAAC,CAAC,sBAAsB,eAAe,QAAQ,QAAQ,GAAG,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAiC;IAC5D,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC;QAC5D,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC;QACxD,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAE5D,OAAO;QACH,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;QAChC,UAAU,EAAE,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC;QACtE,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;QAClD,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC;QACvE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;QACxB,IAAI,EAAE,wBAAwB;QAC9B,UAAU;QACV,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QAC1B,QAAQ;QACR,MAAM,EAAE,KAAK,CAAC,MAAM;KACvB,CAAC;AACN,CAAC;AAED,SAAS,2BAA2B,CAChC,OAA2C,EAC3C,KAAuC;IAEvC,OAAO;QACH,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,KAAK;QACL,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;QAClE,OAAO,EAAE,YAAY;KACxB,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACvC,OAAO,qBAAqB,CAAC,KAAK,CAAC,KAAK,mBAAmB,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,qCAAqC,CACjD,KAAc,EACd,OAA2C;IAE3C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,2BAA2B,CAC9B,OAAO,EACP,qBAAqB,CAAC;QAClB,kBAAkB,EAAE,IAAI;QACxB,OAAO;QACP,iBAAiB,EAAE,IAAI;QACvB,KAAK;QACL,MAAM,EAAE,OAAO;KAClB,CAAC,CACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yCAAyC,CACrD,UAAsC,EACtC,OAA2C;IAE3C,OAAO,2BAA2B,CAC9B,OAAO,EACP,qBAAqB,CAAC;QAClB,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;QACjD,OAAO,EAAE;YACL,GAAG,OAAO;YACV,iBAAiB,EAAE,UAAU,CAAC,OAAO;SACxC;QACD,iBAAiB,EAAE,UAAU,CAAC,OAAO;QACrC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,oBAAoB;KAC/B,CAAC,CACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAkB;IAC5D,OAAO,KAAK,CAAC,OAAO,KAAK,YAAY;QACjC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,KAAK,CAAC,KAAK,KAAK,IAAI;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,wBAAwB,CAAC;AACtE,CAAC;AAED,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAOhF,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACrB,gBAAgB,CAAU;IAC1B,kBAAkB,CAAqB;IAExD,YAAmB,OAAe,EAAE,OAA+B;QAC/D,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;QAE1C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAC9C,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;IACP,CAAC;IAEM,WAAW,CAAC,YAAoB,EAAE,gBAAwB;QAC7D,OAAO;YACH,YAAY;YACZ,gBAAgB;YAChB,KAAK,EAAE,IAAI,CAAC,gBAAgB;YAC5B,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,kBAAkB;SACnC,CAAC;IACN,CAAC;CACJ;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,IAAI;QACpD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,UAAU,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,eAAe,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAkBD,SAAS,oBAAoB,CAAC,OAAmB,EAAE,YAAoC;IACnF,OAAO;QACH,YAAY,CAAC,MAAM,GAAG,CAAC;QACvB,OAAO,CAAC,OAAO,GAAG,CAAC;QACnB,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,OAAO,CAAC,OAAO,KAAK,CAAC;QACrB,OAAO,CAAC,iBAAiB,GAAG,CAAC;QAC7B,OAAO,CAAC,aAAa,GAAG,CAAC;KAC5B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,OAAmB,EACnB,YAAoC;IAEpC,IAAI,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,OAAmB,EACnB,YAAoC,EACpC,UAAyB;IAEzB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;QAC5D,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACvD,CAAC;AA+GD,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACnD,OAAO,OAAO,CAAC,IAAI,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export declare const resourceScopes: readonly ["per-case", "per-file", "per-run", "per-suite", "shared-per-worker"];
|
|
2
|
+
export type ResourceScope = typeof resourceScopes[number];
|
|
3
|
+
export type AmbientNoiseEstimate = 'high' | 'low' | 'medium' | 'unknown';
|
|
4
|
+
export type TimingSpanStatus = 'cancelled' | 'failure' | 'success' | 'timeout';
|
|
5
|
+
export declare const runTimingSpanKinds: readonly ["cleanup", "collection.import", "collection.resolve", "command.parse", "config.load", "config.validate", "file.discovery", "filter.apply", "host.entry-startup", "order.apply", "placement.plan", "profile.resolve", "reporter.deliver", "reporter.finish", "reporter.resolve", "resolution.freeze", "resource.acquire", "resource.dispose", "resource.lower", "runtime.expand", "shard.apply", "supervised-process.exit", "supervised-process.ready", "supervised-process.spawn", "supervised-process.teardown", "test-data.propagate", "work-unit.construct", "worker-pool.ready", "worker-pool.shutdown", "worker-pool.start", "worker.assign-work", "worker.create", "worker.import-startup", "worker.ready", "worker.teardown"];
|
|
6
|
+
export type RunTimingSpanKind = typeof runTimingSpanKinds[number];
|
|
7
|
+
export type RunTimingSummary = {
|
|
8
|
+
readonly runnerOverheadWallTimeMicroseconds: number;
|
|
9
|
+
readonly testExecutionWallTimeMicroseconds: number;
|
|
10
|
+
readonly totalWallTimeMicroseconds: number;
|
|
11
|
+
};
|
|
12
|
+
export type RunTimingSpan = {
|
|
13
|
+
readonly durationMicroseconds: number;
|
|
14
|
+
readonly kind: RunTimingSpanKind;
|
|
15
|
+
readonly label: string | null;
|
|
16
|
+
readonly processId: string | null;
|
|
17
|
+
readonly resource: {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly scope: ResourceScope;
|
|
20
|
+
} | null;
|
|
21
|
+
readonly startOffsetMicroseconds: number | null;
|
|
22
|
+
readonly status: TimingSpanStatus;
|
|
23
|
+
readonly workerId: string | null;
|
|
24
|
+
};
|
|
25
|
+
export type RunTimingAggregate = {
|
|
26
|
+
readonly count: number;
|
|
27
|
+
readonly durationMicroseconds: number;
|
|
28
|
+
readonly kind: RunTimingSpanKind;
|
|
29
|
+
};
|
|
30
|
+
export type TimingCollectionOverhead = {
|
|
31
|
+
readonly aggregationMicroseconds: number;
|
|
32
|
+
readonly recordingMicroseconds: number;
|
|
33
|
+
readonly renderingMicroseconds: number;
|
|
34
|
+
readonly serializationMicroseconds: number;
|
|
35
|
+
};
|
|
36
|
+
export type RunPreciseTimingReport = {
|
|
37
|
+
readonly aggregates: readonly RunTimingAggregate[];
|
|
38
|
+
readonly ambientNoise: AmbientNoiseEstimate;
|
|
39
|
+
readonly droppedSpanCount: number;
|
|
40
|
+
readonly overhead: TimingCollectionOverhead;
|
|
41
|
+
readonly slowestSpans: readonly RunTimingSpan[];
|
|
42
|
+
readonly slowestSpanLimit: number;
|
|
43
|
+
readonly spanLimit: number;
|
|
44
|
+
readonly spans: readonly RunTimingSpan[];
|
|
45
|
+
readonly truncated: boolean;
|
|
46
|
+
};
|
|
47
|
+
export type RunTimings = {
|
|
48
|
+
readonly precise: RunPreciseTimingReport | null;
|
|
49
|
+
readonly summary: RunTimingSummary;
|
|
50
|
+
};
|
|
51
|
+
export type RunTimingSummaryInput = {
|
|
52
|
+
readonly testExecutionWallTimeMicroseconds: number;
|
|
53
|
+
readonly totalWallTimeMicroseconds: number;
|
|
54
|
+
};
|
|
55
|
+
export type PreciseTimingReportInput = {
|
|
56
|
+
readonly aggregationMicroseconds: number;
|
|
57
|
+
readonly recordingMicroseconds: number;
|
|
58
|
+
readonly slowestSpanLimit: number;
|
|
59
|
+
readonly spanLimit: number;
|
|
60
|
+
readonly spans: readonly RunTimingSpan[];
|
|
61
|
+
};
|
|
62
|
+
export declare const defaultRunTimingSpanLimit = 5000;
|
|
63
|
+
export declare const defaultRunTimingSlowestSpanLimit = 50;
|
|
64
|
+
export declare const zeroTimingCollectionOverhead: TimingCollectionOverhead;
|
|
65
|
+
export declare function runTimingSummary(input: RunTimingSummaryInput): RunTimingSummary;
|
|
66
|
+
export declare function summaryRunTimings(input: RunTimingSummaryInput): RunTimings;
|
|
67
|
+
export declare function preciseTimingReport(input: PreciseTimingReportInput): RunPreciseTimingReport;
|
|
68
|
+
//# sourceMappingURL=run-timings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-timings.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-timings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export const resourceScopes = [
|
|
2
|
+
'per-case',
|
|
3
|
+
'per-file',
|
|
4
|
+
'per-run',
|
|
5
|
+
'per-suite',
|
|
6
|
+
'shared-per-worker'
|
|
7
|
+
];
|
|
8
|
+
export const runTimingSpanKinds = [
|
|
9
|
+
'cleanup',
|
|
10
|
+
'collection.import',
|
|
11
|
+
'collection.resolve',
|
|
12
|
+
'command.parse',
|
|
13
|
+
'config.load',
|
|
14
|
+
'config.validate',
|
|
15
|
+
'file.discovery',
|
|
16
|
+
'filter.apply',
|
|
17
|
+
'host.entry-startup',
|
|
18
|
+
'order.apply',
|
|
19
|
+
'placement.plan',
|
|
20
|
+
'profile.resolve',
|
|
21
|
+
'reporter.deliver',
|
|
22
|
+
'reporter.finish',
|
|
23
|
+
'reporter.resolve',
|
|
24
|
+
'resolution.freeze',
|
|
25
|
+
'resource.acquire',
|
|
26
|
+
'resource.dispose',
|
|
27
|
+
'resource.lower',
|
|
28
|
+
'runtime.expand',
|
|
29
|
+
'shard.apply',
|
|
30
|
+
'supervised-process.exit',
|
|
31
|
+
'supervised-process.ready',
|
|
32
|
+
'supervised-process.spawn',
|
|
33
|
+
'supervised-process.teardown',
|
|
34
|
+
'test-data.propagate',
|
|
35
|
+
'work-unit.construct',
|
|
36
|
+
'worker-pool.ready',
|
|
37
|
+
'worker-pool.shutdown',
|
|
38
|
+
'worker-pool.start',
|
|
39
|
+
'worker.assign-work',
|
|
40
|
+
'worker.create',
|
|
41
|
+
'worker.import-startup',
|
|
42
|
+
'worker.ready',
|
|
43
|
+
'worker.teardown'
|
|
44
|
+
];
|
|
45
|
+
export const defaultRunTimingSpanLimit = 5000;
|
|
46
|
+
export const defaultRunTimingSlowestSpanLimit = 50;
|
|
47
|
+
export const zeroTimingCollectionOverhead = Object.freeze({
|
|
48
|
+
aggregationMicroseconds: 0,
|
|
49
|
+
recordingMicroseconds: 0,
|
|
50
|
+
renderingMicroseconds: 0,
|
|
51
|
+
serializationMicroseconds: 0
|
|
52
|
+
});
|
|
53
|
+
export function runTimingSummary(input) {
|
|
54
|
+
const totalWallTimeMicroseconds = Math.max(0, Math.trunc(input.totalWallTimeMicroseconds));
|
|
55
|
+
const testExecutionWallTimeMicroseconds = Math.max(0, Math.min(totalWallTimeMicroseconds, Math.trunc(input.testExecutionWallTimeMicroseconds)));
|
|
56
|
+
return {
|
|
57
|
+
runnerOverheadWallTimeMicroseconds: totalWallTimeMicroseconds - testExecutionWallTimeMicroseconds,
|
|
58
|
+
testExecutionWallTimeMicroseconds,
|
|
59
|
+
totalWallTimeMicroseconds
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export function summaryRunTimings(input) {
|
|
63
|
+
return {
|
|
64
|
+
precise: null,
|
|
65
|
+
summary: runTimingSummary(input)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function aggregateKey(span) {
|
|
69
|
+
return span.kind;
|
|
70
|
+
}
|
|
71
|
+
function timingAggregates(spans) {
|
|
72
|
+
const aggregates = new Map();
|
|
73
|
+
for (const span of spans) {
|
|
74
|
+
const key = aggregateKey(span);
|
|
75
|
+
const aggregate = aggregates.get(key);
|
|
76
|
+
aggregates.set(key, {
|
|
77
|
+
count: (aggregate?.count ?? 0) + 1,
|
|
78
|
+
durationMicroseconds: (aggregate?.durationMicroseconds ?? 0) + span.durationMicroseconds,
|
|
79
|
+
kind: key
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return Array.from(aggregates.values());
|
|
83
|
+
}
|
|
84
|
+
function slowestTimingSpans(spans, slowestSpanLimit) {
|
|
85
|
+
return spans
|
|
86
|
+
.toSorted(function byDurationThenStart(left, right) {
|
|
87
|
+
const durationDifference = right.durationMicroseconds - left.durationMicroseconds;
|
|
88
|
+
if (durationDifference !== 0) {
|
|
89
|
+
return durationDifference;
|
|
90
|
+
}
|
|
91
|
+
return (left.startOffsetMicroseconds ?? Number.MAX_SAFE_INTEGER) -
|
|
92
|
+
(right.startOffsetMicroseconds ?? Number.MAX_SAFE_INTEGER);
|
|
93
|
+
})
|
|
94
|
+
.slice(0, slowestSpanLimit);
|
|
95
|
+
}
|
|
96
|
+
export function preciseTimingReport(input) {
|
|
97
|
+
const { slowestSpanLimit, spanLimit } = input;
|
|
98
|
+
const retainedSpans = input.spans.slice(0, spanLimit);
|
|
99
|
+
return {
|
|
100
|
+
aggregates: timingAggregates(input.spans),
|
|
101
|
+
ambientNoise: 'unknown',
|
|
102
|
+
droppedSpanCount: Math.max(0, input.spans.length - retainedSpans.length),
|
|
103
|
+
overhead: {
|
|
104
|
+
aggregationMicroseconds: input.aggregationMicroseconds,
|
|
105
|
+
recordingMicroseconds: input.recordingMicroseconds,
|
|
106
|
+
renderingMicroseconds: 0,
|
|
107
|
+
serializationMicroseconds: 0
|
|
108
|
+
},
|
|
109
|
+
slowestSpans: slowestTimingSpans(input.spans, slowestSpanLimit),
|
|
110
|
+
slowestSpanLimit,
|
|
111
|
+
spanLimit,
|
|
112
|
+
spans: retainedSpans,
|
|
113
|
+
truncated: retainedSpans.length < input.spans.length
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=run-timings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-timings.js","sourceRoot":"","sources":["../../../../source/engine/run-timings.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,mBAAmB;CACb,CAAC;AAQX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,SAAS;IACT,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,yBAAyB;IACzB,0BAA0B;IAC1B,0BAA0B;IAC1B,6BAA6B;IAC7B,qBAAqB;IACrB,qBAAqB;IACrB,mBAAmB;IACnB,sBAAsB;IACtB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,uBAAuB;IACvB,cAAc;IACd,iBAAiB;CACX,CAAC;AAmEX,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAC9C,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD,MAAM,CAAC,MAAM,4BAA4B,GAA6B,MAAM,CAAC,MAAM,CAAC;IAChF,uBAAuB,EAAE,CAAC;IAC1B,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;IACxB,yBAAyB,EAAE,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IACzD,MAAM,yBAAyB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC3F,MAAM,iCAAiC,GAAG,IAAI,CAAC,GAAG,CAC9C,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAC3F,CAAC;IAEF,OAAO;QACH,kCAAkC,EAAE,yBAAyB,GAAG,iCAAiC;QACjG,iCAAiC;QACjC,yBAAyB;KAC5B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA4B;IAC1D,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC;KACnC,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,IAAmB;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA+B;IACrD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyC,CAAC;IAEpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAChB,KAAK,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;YAClC,oBAAoB,EAAE,CAAC,SAAS,EAAE,oBAAoB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB;YACxF,IAAI,EAAE,GAAG;SACZ,CAAC,CAAC;IACP,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CACvB,KAA+B,EAC/B,gBAAwB;IAExB,OAAO,KAAK;SACP,QAAQ,CAAC,SAAS,mBAAmB,CAAC,IAAI,EAAE,KAAK;QAC9C,MAAM,kBAAkB,GAAG,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAElF,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,MAAM,CAAC,gBAAgB,CAAC;YAC5D,CAAC,KAAK,CAAC,uBAAuB,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACnE,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IAC/D,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAEtD,OAAO;QACH,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QACzC,YAAY,EAAE,SAAS;QACvB,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QACxE,QAAQ,EAAE;YACN,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;YACtD,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,qBAAqB,EAAE,CAAC;YACxB,yBAAyB,EAAE,CAAC;SAC/B;QACD,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC;QAC/D,gBAAgB;QAChB,SAAS;QACT,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;KACvD,CAAC;AACN,CAAC"}
|
package/engine/test-data.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
declare const captureModeValues: readonly ["buffered", "live"];
|
|
2
|
+
declare const duplicateExecutionControlValues: readonly ["forbidden", "idempotent"];
|
|
2
3
|
export type TestFamily = 'benchmark' | 'integration' | 'microtest' | 'property' | 'type-test';
|
|
3
4
|
export type CaptureMode = typeof captureModeValues[number];
|
|
5
|
+
export type DuplicateExecutionControl = typeof duplicateExecutionControlValues[number];
|
|
4
6
|
export type TestAnnotationsInput = {
|
|
5
7
|
readonly ownership?: readonly string[];
|
|
6
8
|
readonly tags?: readonly string[];
|
|
@@ -11,10 +13,12 @@ export type TestAnnotations = {
|
|
|
11
13
|
};
|
|
12
14
|
export type TestControlsInput = {
|
|
13
15
|
readonly capture?: CaptureMode;
|
|
16
|
+
readonly duplicateExecution?: DuplicateExecutionControl;
|
|
14
17
|
readonly timeoutMilliseconds?: number;
|
|
15
18
|
};
|
|
16
19
|
export type TestControls = {
|
|
17
20
|
readonly capture: CaptureMode | null;
|
|
21
|
+
readonly duplicateExecution: DuplicateExecutionControl | null;
|
|
18
22
|
readonly timeoutMilliseconds: number | null;
|
|
19
23
|
};
|
|
20
24
|
export declare function normalizeTestAnnotations(input: TestAnnotationsInput): TestAnnotations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-data.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-data.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,+BAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"test-data.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-data.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,+BAAkC,CAAC;AAC1D,QAAA,MAAM,+BAA+B,sCAAyC,CAAC;AAE/E,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;AAC9F,MAAM,MAAM,WAAW,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,MAAM,yBAAyB,GAAG,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAC;AAEvF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IACxD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC9D,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C,CAAC;AA0HF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,CAOrF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAQ5E;AAED,wBAAgB,sBAAsB,CAClC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,oBAAoB,GAC5B,eAAe,CAOjB;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,oBAAoB,GAAG,eAAe,CAE7F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAQhG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,YAAY,CAEjF"}
|
package/engine/test-data.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
const captureModeValues = ['buffered', 'live'];
|
|
2
|
+
const duplicateExecutionControlValues = ['forbidden', 'idempotent'];
|
|
2
3
|
const annotationFields = new Set(['ownership', 'tags']);
|
|
3
|
-
const controlFields = new Set(['capture', 'timeoutMilliseconds']);
|
|
4
|
+
const controlFields = new Set(['capture', 'duplicateExecution', 'timeoutMilliseconds']);
|
|
4
5
|
const captureModes = new Set(captureModeValues);
|
|
6
|
+
const duplicateExecutionControls = new Set(duplicateExecutionControlValues);
|
|
5
7
|
const defaultTestAnnotations = {
|
|
6
8
|
ownership: [],
|
|
7
9
|
tags: []
|
|
8
10
|
};
|
|
9
11
|
const defaultTestControls = {
|
|
10
12
|
capture: null,
|
|
13
|
+
duplicateExecution: null,
|
|
11
14
|
timeoutMilliseconds: null
|
|
12
15
|
};
|
|
13
16
|
function isRecord(value) {
|
|
@@ -31,6 +34,11 @@ function assertCaptureMode(value) {
|
|
|
31
34
|
throw new TypeError('Control field "capture" contains an unknown value.');
|
|
32
35
|
}
|
|
33
36
|
}
|
|
37
|
+
function assertDuplicateExecutionControl(value) {
|
|
38
|
+
if (typeof value !== 'string' || !duplicateExecutionControls.has(value)) {
|
|
39
|
+
throw new TypeError('Control field "duplicateExecution" contains an unknown value.');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
34
42
|
function assertTimeoutMilliseconds(value) {
|
|
35
43
|
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
36
44
|
throw new TypeError('Control field "timeoutMilliseconds" must be a finite number.');
|
|
@@ -63,6 +71,9 @@ function ensureTestControlsInput(value) {
|
|
|
63
71
|
if (Object.hasOwn(value, 'capture')) {
|
|
64
72
|
assertCaptureMode(value.capture);
|
|
65
73
|
}
|
|
74
|
+
if (Object.hasOwn(value, 'duplicateExecution')) {
|
|
75
|
+
assertDuplicateExecutionControl(value.duplicateExecution);
|
|
76
|
+
}
|
|
66
77
|
if (Object.hasOwn(value, 'timeoutMilliseconds')) {
|
|
67
78
|
assertTimeoutMilliseconds(value.timeoutMilliseconds);
|
|
68
79
|
}
|
|
@@ -87,6 +98,7 @@ export function normalizeTestControls(input) {
|
|
|
87
98
|
ensureTestControlsInput(input);
|
|
88
99
|
return {
|
|
89
100
|
capture: controlField(input, 'capture') ?? null,
|
|
101
|
+
duplicateExecution: controlField(input, 'duplicateExecution') ?? null,
|
|
90
102
|
timeoutMilliseconds: controlField(input, 'timeoutMilliseconds') ?? null
|
|
91
103
|
};
|
|
92
104
|
}
|
|
@@ -104,6 +116,7 @@ export function resolveTestControls(parent, child) {
|
|
|
104
116
|
const controls = normalizeTestControls(child);
|
|
105
117
|
return {
|
|
106
118
|
capture: controls.capture ?? parent.capture,
|
|
119
|
+
duplicateExecution: controls.duplicateExecution ?? parent.duplicateExecution,
|
|
107
120
|
timeoutMilliseconds: controls.timeoutMilliseconds ?? parent.timeoutMilliseconds
|
|
108
121
|
};
|
|
109
122
|
}
|