@overkill-dev/engine 0.0.36 → 0.0.38
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/engine/case-execution.d.ts +1 -0
- package/engine/case-execution.d.ts.map +1 -1
- package/engine/case-execution.js +19 -13
- package/engine/case-execution.js.map +1 -1
- package/engine/execution-async-leak-policy.d.ts.map +1 -1
- package/engine/execution-async-leak-policy.js +2 -1
- package/engine/execution-async-leak-policy.js.map +1 -1
- package/engine/execution-options.d.ts +4 -1
- package/engine/execution-options.d.ts.map +1 -1
- package/engine/execution-options.js +18 -10
- package/engine/execution-options.js.map +1 -1
- package/engine/execution-resource-tracked-cases.js +17 -12
- package/engine/execution-resource-tracked-cases.js.map +1 -1
- package/engine/execution-result.js +7 -2
- package/engine/execution-result.js.map +1 -1
- package/engine/execution-supervision.d.ts.map +1 -1
- package/engine/execution-supervision.js +18 -13
- package/engine/execution-supervision.js.map +1 -1
- package/engine/execution-test-plan-cases.js +214 -0
- package/engine/execution-test-plan-cases.js.map +1 -0
- package/engine/execution-test-plan-resource-usage.js +14 -0
- package/engine/execution-test-plan-resource-usage.js.map +1 -0
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +14 -218
- package/engine/execution.js.map +1 -1
- package/engine/identity.d.ts +3 -2
- package/engine/identity.d.ts.map +1 -1
- package/engine/identity.js +6 -6
- package/engine/identity.js.map +1 -1
- package/engine/reporter-dispatcher.d.ts +1 -0
- package/engine/reporter-dispatcher.d.ts.map +1 -1
- package/engine/reporter-dispatcher.js +53 -19
- package/engine/reporter-dispatcher.js.map +1 -1
- package/engine/reporter-error-delivery-tracking.js +12 -1
- package/engine/reporter-error-delivery-tracking.js.map +1 -1
- package/engine/reporter-managed-output.js +24 -3
- package/engine/reporter-managed-output.js.map +1 -1
- package/engine/reporter-output-scope.js +60 -0
- package/engine/reporter-output-scope.js.map +1 -0
- package/engine/run-result.d.ts +5 -0
- package/engine/run-result.d.ts.map +1 -1
- package/engine/run-result.js +16 -0
- package/engine/run-result.js.map +1 -1
- package/engine/runner-error-reporting.js +29 -0
- package/engine/runner-error-reporting.js.map +1 -0
- package/package.json +3 -2
- package/packages/engine/engine.entry-point.d.ts +1 -0
- package/packages/engine/engine.entry-point.d.ts.map +1 -1
- package/packages/engine/engine.entry-point.js.map +1 -1
- package/sbom.cdx.json +4 -4
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { caseWithAsyncLeakPolicy, concurrentRunActiveResourceLeak } from "./execution-async-leak-policy.js";
|
|
2
|
+
import { executeCaseBody } from "./execution-supervision.js";
|
|
3
|
+
import { createReporterEventQueue, reportSuiteTransition } from "./reporter-event-queue.js";
|
|
4
|
+
import { reportRunnerErrorEvents, unreportedRunnerErrors } from "./runner-error-reporting.js";
|
|
5
|
+
async function reportTestStart(testCase, attempt, context) {
|
|
6
|
+
return await context.reporterDelivery.reportEvent({
|
|
7
|
+
attempt,
|
|
8
|
+
case: testCase.id,
|
|
9
|
+
definitionLocations: testCase.definitionLocations,
|
|
10
|
+
kind: 'test-start',
|
|
11
|
+
suitePath: testCase.suitePath,
|
|
12
|
+
workId: testCase.workId
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
async function reportTestEnd(input, context) {
|
|
16
|
+
return await context.reporterDelivery.reportEvent({
|
|
17
|
+
attempt: input.attempt,
|
|
18
|
+
artifacts: [],
|
|
19
|
+
case: input.testCase.id,
|
|
20
|
+
definitionLocations: input.testCase.definitionLocations,
|
|
21
|
+
kind: 'test-end',
|
|
22
|
+
outcome: input.result.outcome,
|
|
23
|
+
suitePath: input.testCase.suitePath,
|
|
24
|
+
verdict: input.result.verdict,
|
|
25
|
+
wallTimeMs: input.wallTimeMs,
|
|
26
|
+
workId: input.testCase.workId
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async function executeCase(input) {
|
|
30
|
+
const startErrors = await reportTestStart(input.testCase, input.attempt, input.context);
|
|
31
|
+
const activeResourceTypesBefore = input.context.dependencies.readActiveResourceTypes();
|
|
32
|
+
const executedCase = await input.context.dependencies.asyncLeakMonitor.runCase(input.testCase, async function runCase() {
|
|
33
|
+
return await executeCaseBody(input.testCase, input.options.timeoutPolicy, input.supervision, input.context.dependencies);
|
|
34
|
+
});
|
|
35
|
+
const leakCheckedCase = await caseWithAsyncLeakPolicy({
|
|
36
|
+
activeResourceTypesBefore,
|
|
37
|
+
dependencies: input.context.dependencies,
|
|
38
|
+
executedCase,
|
|
39
|
+
includeActiveResourceLeaks: input.options.execution.mode === 'serial-in-process',
|
|
40
|
+
testCase: input.testCase
|
|
41
|
+
});
|
|
42
|
+
const caseRunnerErrors = [
|
|
43
|
+
...leakCheckedCase.executedCase.runnerErrors,
|
|
44
|
+
...leakCheckedCase.runnerErrors
|
|
45
|
+
];
|
|
46
|
+
for (const runnerError of caseRunnerErrors) {
|
|
47
|
+
input.supervision.recordRunnerError(runnerError);
|
|
48
|
+
}
|
|
49
|
+
const runnerErrorNotificationErrors = await reportRunnerErrorEvents(input.context.reporterDelivery, caseRunnerErrors);
|
|
50
|
+
const endErrors = await reportTestEnd({
|
|
51
|
+
attempt: input.attempt,
|
|
52
|
+
result: leakCheckedCase.executedCase.result,
|
|
53
|
+
testCase: input.testCase,
|
|
54
|
+
wallTimeMs: leakCheckedCase.executedCase.wallTimeMs
|
|
55
|
+
}, input.context);
|
|
56
|
+
return {
|
|
57
|
+
reporterErrors: [...startErrors, ...runnerErrorNotificationErrors, ...endErrors],
|
|
58
|
+
runnerErrors: caseRunnerErrors,
|
|
59
|
+
result: leakCheckedCase.executedCase.result
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function initialSerialCaseExecutionState() {
|
|
63
|
+
return {
|
|
64
|
+
currentSuitePath: [],
|
|
65
|
+
perTest: [],
|
|
66
|
+
reportedRunnerErrors: [],
|
|
67
|
+
reporterErrors: []
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
async function executeSerialTestPlanCase(input, state, testCase) {
|
|
71
|
+
const suiteErrors = await reportSuiteTransition(input.context.reporterDelivery, state.currentSuitePath, testCase.suitePath);
|
|
72
|
+
const testRun = await executeCase({
|
|
73
|
+
attempt: 0,
|
|
74
|
+
context: input.context,
|
|
75
|
+
options: input.options,
|
|
76
|
+
supervision: input.supervision,
|
|
77
|
+
testCase
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
currentSuitePath: testCase.suitePath,
|
|
81
|
+
perTest: [...state.perTest, testRun.result],
|
|
82
|
+
reportedRunnerErrors: [...state.reportedRunnerErrors, ...testRun.runnerErrors],
|
|
83
|
+
reporterErrors: [...state.reporterErrors, ...suiteErrors, ...testRun.reporterErrors]
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
async function serialTestPlanReporterErrors(input, state) {
|
|
87
|
+
const pendingRunnerErrors = unreportedRunnerErrors(input.supervision.runnerErrors, state.reportedRunnerErrors);
|
|
88
|
+
const pendingRunnerErrorNotifications = await reportRunnerErrorEvents(input.context.reporterDelivery, pendingRunnerErrors);
|
|
89
|
+
return [
|
|
90
|
+
...state.reporterErrors,
|
|
91
|
+
...input.supervision.runnerErrors,
|
|
92
|
+
...pendingRunnerErrorNotifications,
|
|
93
|
+
...await reportSuiteTransition(input.context.reporterDelivery, state.currentSuitePath, [])
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
async function executeTestPlanCases(input) {
|
|
97
|
+
let state = initialSerialCaseExecutionState();
|
|
98
|
+
for (const testCase of input.testPlan.cases) {
|
|
99
|
+
state = await executeSerialTestPlanCase(input, state, testCase);
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
perTest: state.perTest,
|
|
103
|
+
reporterErrors: await serialTestPlanReporterErrors(input, state)
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
async function reportConcurrentCaseStarts(input) {
|
|
107
|
+
let reporterErrors = [];
|
|
108
|
+
let currentSuitePath = [];
|
|
109
|
+
for (const testCase of input.testPlan.cases) {
|
|
110
|
+
const suiteErrors = await reportSuiteTransition(input.context.reporterDelivery, currentSuitePath, testCase.suitePath);
|
|
111
|
+
const startErrors = await reportTestStart(testCase, 0, input.context);
|
|
112
|
+
currentSuitePath = testCase.suitePath;
|
|
113
|
+
reporterErrors = [...reporterErrors, ...suiteErrors, ...startErrors];
|
|
114
|
+
}
|
|
115
|
+
return [
|
|
116
|
+
...reporterErrors,
|
|
117
|
+
...await reportSuiteTransition(input.context.reporterDelivery, currentSuitePath, [])
|
|
118
|
+
];
|
|
119
|
+
}
|
|
120
|
+
async function reportConcurrentCaseEnd(testCase, executedCase, reportQueue) {
|
|
121
|
+
return await reportQueue.report({
|
|
122
|
+
attempt: 0,
|
|
123
|
+
artifacts: [],
|
|
124
|
+
case: testCase.id,
|
|
125
|
+
definitionLocations: testCase.definitionLocations,
|
|
126
|
+
kind: 'test-end',
|
|
127
|
+
outcome: executedCase.result.outcome,
|
|
128
|
+
suitePath: testCase.suitePath,
|
|
129
|
+
verdict: executedCase.result.verdict,
|
|
130
|
+
wallTimeMs: executedCase.wallTimeMs,
|
|
131
|
+
workId: testCase.workId
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
async function reportConcurrentCaseRunnerErrors(runnerErrors, reportQueue) {
|
|
135
|
+
let reporterErrors = [];
|
|
136
|
+
for (const error of runnerErrors) {
|
|
137
|
+
reporterErrors = [
|
|
138
|
+
...reporterErrors,
|
|
139
|
+
...await reportQueue.report({
|
|
140
|
+
error,
|
|
141
|
+
kind: 'runner-error'
|
|
142
|
+
})
|
|
143
|
+
];
|
|
144
|
+
}
|
|
145
|
+
return reporterErrors;
|
|
146
|
+
}
|
|
147
|
+
async function executeConcurrentCases(input) {
|
|
148
|
+
const endReporterErrors = [];
|
|
149
|
+
const reportedRunnerErrors = [];
|
|
150
|
+
const caseExecutions = input.testPlan.cases.map(async function executeCaseConcurrently(testCase) {
|
|
151
|
+
const executedCase = await input.context.dependencies.asyncLeakMonitor.runCase(testCase, async function runCase() {
|
|
152
|
+
return await executeCaseBody(testCase, input.options.timeoutPolicy, input.supervision, input.context.dependencies);
|
|
153
|
+
});
|
|
154
|
+
const leakCheckedCase = await caseWithAsyncLeakPolicy({
|
|
155
|
+
activeResourceTypesBefore: [],
|
|
156
|
+
dependencies: input.context.dependencies,
|
|
157
|
+
executedCase,
|
|
158
|
+
includeActiveResourceLeaks: false,
|
|
159
|
+
testCase
|
|
160
|
+
});
|
|
161
|
+
const caseRunnerErrors = [
|
|
162
|
+
...leakCheckedCase.executedCase.runnerErrors,
|
|
163
|
+
...leakCheckedCase.runnerErrors
|
|
164
|
+
];
|
|
165
|
+
for (const runnerError of caseRunnerErrors) {
|
|
166
|
+
input.supervision.recordRunnerError(runnerError);
|
|
167
|
+
}
|
|
168
|
+
endReporterErrors.push(...await reportConcurrentCaseRunnerErrors(caseRunnerErrors, input.reportQueue), ...await reportConcurrentCaseEnd(testCase, leakCheckedCase.executedCase, input.reportQueue));
|
|
169
|
+
reportedRunnerErrors.push(...caseRunnerErrors);
|
|
170
|
+
return leakCheckedCase.executedCase;
|
|
171
|
+
});
|
|
172
|
+
const executedCases = await Promise.all(caseExecutions);
|
|
173
|
+
return {
|
|
174
|
+
endReporterErrors,
|
|
175
|
+
perTest: executedCases.map(function toPerTest(executedCase) {
|
|
176
|
+
return executedCase.result;
|
|
177
|
+
}),
|
|
178
|
+
reportedRunnerErrors,
|
|
179
|
+
runnerErrors: input.supervision.runnerErrors
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
async function executeConcurrentTestPlanCases(input) {
|
|
183
|
+
const reporterErrors = await reportConcurrentCaseStarts(input);
|
|
184
|
+
const activeResourceTypesBefore = input.context.dependencies.readActiveResourceTypes();
|
|
185
|
+
const concurrentCaseExecution = await executeConcurrentCases({
|
|
186
|
+
context: input.context,
|
|
187
|
+
options: input.options,
|
|
188
|
+
reportQueue: createReporterEventQueue(input.context.reporterDelivery),
|
|
189
|
+
supervision: input.supervision,
|
|
190
|
+
testPlan: input.testPlan
|
|
191
|
+
});
|
|
192
|
+
const activeLeakError = concurrentRunActiveResourceLeak(input.context.dependencies, activeResourceTypesBefore);
|
|
193
|
+
const runnerErrors = activeLeakError === null
|
|
194
|
+
? concurrentCaseExecution.runnerErrors
|
|
195
|
+
: [...concurrentCaseExecution.runnerErrors, activeLeakError];
|
|
196
|
+
const pendingRunnerErrors = unreportedRunnerErrors(runnerErrors, concurrentCaseExecution.reportedRunnerErrors);
|
|
197
|
+
const pendingRunnerErrorNotifications = await reportRunnerErrorEvents(input.context.reporterDelivery, pendingRunnerErrors);
|
|
198
|
+
return {
|
|
199
|
+
perTest: concurrentCaseExecution.perTest,
|
|
200
|
+
reporterErrors: [
|
|
201
|
+
...reporterErrors,
|
|
202
|
+
...runnerErrors,
|
|
203
|
+
...pendingRunnerErrorNotifications,
|
|
204
|
+
...concurrentCaseExecution.endReporterErrors
|
|
205
|
+
]
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
export async function executeTestPlanCasesWithMode(input) {
|
|
209
|
+
if (input.options.execution.mode === 'concurrent-in-process') {
|
|
210
|
+
return await executeConcurrentTestPlanCases(input);
|
|
211
|
+
}
|
|
212
|
+
return await executeTestPlanCases(input);
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=execution-test-plan-cases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-test-plan-cases.js","sourceRoot":"","sources":["../../../../source/engine/execution-test-plan-cases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { executeResourceTrackedCases } from "./execution-resource-tracked-cases.js";
|
|
2
|
+
import { createExecutionSupervision } from "./execution-supervision.js";
|
|
3
|
+
import { executeTestPlanCasesWithMode } from "./execution-test-plan-cases.js";
|
|
4
|
+
export async function executeTestPlanCasesAndMeasureResourceUsage(testPlan, options, dependencies, reporterDelivery) {
|
|
5
|
+
const supervision = createExecutionSupervision();
|
|
6
|
+
const input = {
|
|
7
|
+
context: { dependencies, reporterDelivery },
|
|
8
|
+
options,
|
|
9
|
+
supervision,
|
|
10
|
+
testPlan
|
|
11
|
+
};
|
|
12
|
+
return await executeResourceTrackedCases(input, executeTestPlanCasesWithMode);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=execution-test-plan-resource-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-test-plan-resource-usage.js","sourceRoot":"","sources":["../../../../source/engine/execution-test-plan-resource-usage.ts"],"names":[],"mappings":"AACA,OAAO,EACH,2BAA2B,EAE9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EACH,4BAA4B,EAI/B,MAAM,gCAAgC,CAAC;AAIxC,MAAM,CAAC,KAAK,UAAU,2CAA2C,CAC7D,QAAkB,EAClB,OAAiC,EACjC,YAAuC,EACvC,gBAAkC;IAElC,MAAM,WAAW,GAAG,0BAA0B,EAAE,CAAC;IACjD,MAAM,KAAK,GAA8B;QACrC,OAAO,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE;QAC3C,OAAO;QACP,WAAW;QACX,QAAQ;KACX,CAAC;IAEF,OAAO,MAAM,2BAA2B,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../source/engine/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../source/engine/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAGH,KAAK,oBAAoB,EAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEH,KAAK,gBAAgB,IAAI,0BAA0B,EACnD,KAAK,cAAc,IAAI,wBAAwB,EAElD,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAGH,KAAK,kBAAkB,EAE1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CACjC,CAAC;AAkFF,MAAM,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAE3F,wBAAgB,aAAa,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CA+BxE"}
|
package/engine/execution.js
CHANGED
|
@@ -1,221 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createExecutionAsyncLeakMonitor } from "./execution-async-leak-policy.js";
|
|
2
2
|
import { executeOptionsWithDefaults } from "./execution-options.js";
|
|
3
3
|
import { appendRunnerErrors, createRunResult, throwWithCleanupErrors } from "./execution-result.js";
|
|
4
|
-
import {
|
|
5
|
-
import { createExecutionSupervision, executeCaseBody } from "./execution-supervision.js";
|
|
4
|
+
import { executeTestPlanCasesAndMeasureResourceUsage } from "./execution-test-plan-resource-usage.js";
|
|
6
5
|
import { createReporterDisposal } from "./reporter-dispatcher.js";
|
|
7
|
-
import {
|
|
8
|
-
async function reportTestStart(testCase, attempt, context) {
|
|
9
|
-
return await context.reporterDelivery.reportEvent({
|
|
10
|
-
attempt,
|
|
11
|
-
case: testCase.id,
|
|
12
|
-
definitionLocations: testCase.definitionLocations,
|
|
13
|
-
kind: 'test-start',
|
|
14
|
-
suitePath: testCase.suitePath,
|
|
15
|
-
workId: testCase.workId
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
async function reportTestEnd(input, context) {
|
|
19
|
-
return await context.reporterDelivery.reportEvent({
|
|
20
|
-
attempt: input.attempt,
|
|
21
|
-
artifacts: [],
|
|
22
|
-
case: input.testCase.id,
|
|
23
|
-
definitionLocations: input.testCase.definitionLocations,
|
|
24
|
-
kind: 'test-end',
|
|
25
|
-
outcome: input.result.outcome,
|
|
26
|
-
suitePath: input.testCase.suitePath,
|
|
27
|
-
verdict: input.result.verdict,
|
|
28
|
-
wallTimeMs: input.wallTimeMs,
|
|
29
|
-
workId: input.testCase.workId
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
async function reportCaseRunnerErrors(runnerErrors, context) {
|
|
33
|
-
let reporterErrors = [];
|
|
34
|
-
for (const error of runnerErrors) {
|
|
35
|
-
reporterErrors = [
|
|
36
|
-
...reporterErrors,
|
|
37
|
-
...await context.reporterDelivery.reportEvent({
|
|
38
|
-
error,
|
|
39
|
-
kind: 'runner-error'
|
|
40
|
-
})
|
|
41
|
-
];
|
|
42
|
-
}
|
|
43
|
-
return reporterErrors;
|
|
44
|
-
}
|
|
45
|
-
async function executeCase(input) {
|
|
46
|
-
const startErrors = await reportTestStart(input.testCase, input.attempt, input.context);
|
|
47
|
-
const activeResourceTypesBefore = input.context.dependencies.readActiveResourceTypes();
|
|
48
|
-
const executedCase = await input.context.dependencies.asyncLeakMonitor.runCase(input.testCase, async function runCase() {
|
|
49
|
-
return await executeCaseBody(input.testCase, input.options.timeoutPolicy, input.supervision, input.context.dependencies);
|
|
50
|
-
});
|
|
51
|
-
const leakCheckedCase = await caseWithAsyncLeakPolicy({
|
|
52
|
-
activeResourceTypesBefore,
|
|
53
|
-
dependencies: input.context.dependencies,
|
|
54
|
-
executedCase,
|
|
55
|
-
includeActiveResourceLeaks: input.options.execution.mode === 'serial-in-process',
|
|
56
|
-
testCase: input.testCase
|
|
57
|
-
});
|
|
58
|
-
for (const runnerError of [
|
|
59
|
-
...leakCheckedCase.executedCase.runnerErrors,
|
|
60
|
-
...leakCheckedCase.runnerErrors
|
|
61
|
-
]) {
|
|
62
|
-
input.supervision.recordRunnerError(runnerError);
|
|
63
|
-
}
|
|
64
|
-
const runnerErrorNotificationErrors = await reportCaseRunnerErrors(leakCheckedCase.executedCase.runnerErrors, input.context);
|
|
65
|
-
const endErrors = await reportTestEnd({
|
|
66
|
-
attempt: input.attempt,
|
|
67
|
-
result: leakCheckedCase.executedCase.result,
|
|
68
|
-
testCase: input.testCase,
|
|
69
|
-
wallTimeMs: leakCheckedCase.executedCase.wallTimeMs
|
|
70
|
-
}, input.context);
|
|
71
|
-
return {
|
|
72
|
-
reporterErrors: [...startErrors, ...runnerErrorNotificationErrors, ...endErrors],
|
|
73
|
-
result: leakCheckedCase.executedCase.result
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
async function executeTestPlanCases(input) {
|
|
77
|
-
let perTest = [];
|
|
78
|
-
let reporterErrors = [];
|
|
79
|
-
let currentSuitePath = [];
|
|
80
|
-
for (const testCase of input.testPlan.cases) {
|
|
81
|
-
const suiteErrors = await reportSuiteTransition(input.context.reporterDelivery, currentSuitePath, testCase.suitePath);
|
|
82
|
-
currentSuitePath = testCase.suitePath;
|
|
83
|
-
const testRun = await executeCase({
|
|
84
|
-
attempt: 0,
|
|
85
|
-
context: input.context,
|
|
86
|
-
options: input.options,
|
|
87
|
-
supervision: input.supervision,
|
|
88
|
-
testCase
|
|
89
|
-
});
|
|
90
|
-
reporterErrors = [...reporterErrors, ...suiteErrors, ...testRun.reporterErrors];
|
|
91
|
-
perTest = [...perTest, testRun.result];
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
perTest,
|
|
95
|
-
reporterErrors: [
|
|
96
|
-
...reporterErrors,
|
|
97
|
-
...input.supervision.runnerErrors,
|
|
98
|
-
...input.options.runtimePolicy?.takeRunErrors() ?? [],
|
|
99
|
-
...await reportSuiteTransition(input.context.reporterDelivery, currentSuitePath, [])
|
|
100
|
-
]
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
async function reportConcurrentCaseStarts(testPlan, reporterDelivery, dependencies) {
|
|
104
|
-
const reportingContext = {
|
|
105
|
-
dependencies,
|
|
106
|
-
reporterDelivery
|
|
107
|
-
};
|
|
108
|
-
let reporterErrors = [];
|
|
109
|
-
let currentSuitePath = [];
|
|
110
|
-
for (const testCase of testPlan.cases) {
|
|
111
|
-
const suiteErrors = await reportSuiteTransition(reportingContext.reporterDelivery, currentSuitePath, testCase.suitePath);
|
|
112
|
-
const startErrors = await reportTestStart(testCase, 0, reportingContext);
|
|
113
|
-
currentSuitePath = testCase.suitePath;
|
|
114
|
-
reporterErrors = [...reporterErrors, ...suiteErrors, ...startErrors];
|
|
115
|
-
}
|
|
116
|
-
return [
|
|
117
|
-
...reporterErrors,
|
|
118
|
-
...await reportSuiteTransition(reportingContext.reporterDelivery, currentSuitePath, [])
|
|
119
|
-
];
|
|
120
|
-
}
|
|
121
|
-
async function reportConcurrentCaseEnd(testCase, executedCase, reportQueue) {
|
|
122
|
-
return await reportQueue.report({
|
|
123
|
-
attempt: 0,
|
|
124
|
-
artifacts: [],
|
|
125
|
-
case: testCase.id,
|
|
126
|
-
definitionLocations: testCase.definitionLocations,
|
|
127
|
-
kind: 'test-end',
|
|
128
|
-
outcome: executedCase.result.outcome,
|
|
129
|
-
suitePath: testCase.suitePath,
|
|
130
|
-
verdict: executedCase.result.verdict,
|
|
131
|
-
wallTimeMs: executedCase.wallTimeMs,
|
|
132
|
-
workId: testCase.workId
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
async function reportConcurrentCaseRunnerErrors(runnerErrors, reportQueue) {
|
|
136
|
-
let reporterErrors = [];
|
|
137
|
-
for (const error of runnerErrors) {
|
|
138
|
-
reporterErrors = [
|
|
139
|
-
...reporterErrors,
|
|
140
|
-
...await reportQueue.report({
|
|
141
|
-
error,
|
|
142
|
-
kind: 'runner-error'
|
|
143
|
-
})
|
|
144
|
-
];
|
|
145
|
-
}
|
|
146
|
-
return reporterErrors;
|
|
147
|
-
}
|
|
148
|
-
async function executeConcurrentCases(input) {
|
|
149
|
-
const endReporterErrors = [];
|
|
150
|
-
const caseExecutions = input.testPlan.cases.map(async function executeCaseConcurrently(testCase) {
|
|
151
|
-
const executedCase = await input.context.dependencies.asyncLeakMonitor.runCase(testCase, async function runCase() {
|
|
152
|
-
return await executeCaseBody(testCase, input.options.timeoutPolicy, input.supervision, input.context.dependencies);
|
|
153
|
-
});
|
|
154
|
-
const leakCheckedCase = await caseWithAsyncLeakPolicy({
|
|
155
|
-
activeResourceTypesBefore: [],
|
|
156
|
-
dependencies: input.context.dependencies,
|
|
157
|
-
executedCase,
|
|
158
|
-
includeActiveResourceLeaks: false,
|
|
159
|
-
testCase
|
|
160
|
-
});
|
|
161
|
-
for (const runnerError of [
|
|
162
|
-
...leakCheckedCase.executedCase.runnerErrors,
|
|
163
|
-
...leakCheckedCase.runnerErrors
|
|
164
|
-
]) {
|
|
165
|
-
input.supervision.recordRunnerError(runnerError);
|
|
166
|
-
}
|
|
167
|
-
endReporterErrors.push(...await reportConcurrentCaseRunnerErrors(leakCheckedCase.executedCase.runnerErrors, input.reportQueue), ...await reportConcurrentCaseEnd(testCase, leakCheckedCase.executedCase, input.reportQueue));
|
|
168
|
-
return leakCheckedCase.executedCase;
|
|
169
|
-
});
|
|
170
|
-
const executedCases = await Promise.all(caseExecutions);
|
|
171
|
-
return {
|
|
172
|
-
endReporterErrors,
|
|
173
|
-
perTest: executedCases.map(function toPerTest(executedCase) {
|
|
174
|
-
return executedCase.result;
|
|
175
|
-
}),
|
|
176
|
-
runnerErrors: input.supervision.runnerErrors
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
async function executeConcurrentTestPlanCases(input) {
|
|
180
|
-
const reporterErrors = await reportConcurrentCaseStarts(input.testPlan, input.context.reporterDelivery, input.context.dependencies);
|
|
181
|
-
const activeResourceTypesBefore = input.context.dependencies.readActiveResourceTypes();
|
|
182
|
-
const concurrentCaseExecution = await executeConcurrentCases({
|
|
183
|
-
context: input.context,
|
|
184
|
-
options: input.options,
|
|
185
|
-
reportQueue: createReporterEventQueue(input.context.reporterDelivery),
|
|
186
|
-
supervision: input.supervision,
|
|
187
|
-
testPlan: input.testPlan
|
|
188
|
-
});
|
|
189
|
-
const activeLeakError = concurrentRunActiveResourceLeak(input.context.dependencies, activeResourceTypesBefore);
|
|
190
|
-
const runnerErrors = activeLeakError === null
|
|
191
|
-
? concurrentCaseExecution.runnerErrors
|
|
192
|
-
: [...concurrentCaseExecution.runnerErrors, activeLeakError];
|
|
193
|
-
return {
|
|
194
|
-
perTest: concurrentCaseExecution.perTest,
|
|
195
|
-
reporterErrors: [
|
|
196
|
-
...reporterErrors,
|
|
197
|
-
...runnerErrors,
|
|
198
|
-
...input.options.runtimePolicy?.takeRunErrors() ?? [],
|
|
199
|
-
...concurrentCaseExecution.endReporterErrors
|
|
200
|
-
]
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
async function executeTestPlanCasesWithMode(input) {
|
|
204
|
-
if (input.options.execution.mode === 'concurrent-in-process') {
|
|
205
|
-
return await executeConcurrentTestPlanCases(input);
|
|
206
|
-
}
|
|
207
|
-
return await executeTestPlanCases(input);
|
|
208
|
-
}
|
|
209
|
-
async function executeTestPlanCasesAndMeasureResourceUsage(testPlan, options, dependencies, reporterDelivery) {
|
|
210
|
-
const supervision = createExecutionSupervision();
|
|
211
|
-
const input = {
|
|
212
|
-
context: { dependencies, reporterDelivery },
|
|
213
|
-
options,
|
|
214
|
-
supervision,
|
|
215
|
-
testPlan
|
|
216
|
-
};
|
|
217
|
-
return await executeResourceTrackedCases(input, executeTestPlanCasesWithMode);
|
|
218
|
-
}
|
|
6
|
+
import { reportRunnerErrors } from "./runner-error-reporting.js";
|
|
219
7
|
async function createRunResultBeforeRunEnd(testPlan, options, dependencies, reporterDelivery) {
|
|
220
8
|
const startedAtMs = dependencies.wallClock.currentTimestampInMilliseconds;
|
|
221
9
|
const startErrors = await reporterDelivery.reportEvent({
|
|
@@ -224,8 +12,15 @@ async function createRunResultBeforeRunEnd(testPlan, options, dependencies, repo
|
|
|
224
12
|
root: testPlan.root,
|
|
225
13
|
startedAt: options.startedAt
|
|
226
14
|
});
|
|
15
|
+
const loadRuntimePolicyErrors = await reportRunnerErrors(reporterDelivery, options.runtimePolicy?.takePendingRunErrors() ?? []);
|
|
227
16
|
const { executedTestPlan, resourceUsage } = await executeTestPlanCasesAndMeasureResourceUsage(testPlan, options, dependencies, reporterDelivery);
|
|
228
|
-
const
|
|
17
|
+
const finalRuntimePolicyErrors = await reportRunnerErrors(reporterDelivery, options.runtimePolicy?.takeRunErrors() ?? []);
|
|
18
|
+
const reporterErrors = [
|
|
19
|
+
...startErrors,
|
|
20
|
+
...loadRuntimePolicyErrors,
|
|
21
|
+
...executedTestPlan.reporterErrors,
|
|
22
|
+
...finalRuntimePolicyErrors
|
|
23
|
+
];
|
|
229
24
|
return createRunResult(testPlan, executedTestPlan.perTest, reporterErrors, {
|
|
230
25
|
resourceUsage,
|
|
231
26
|
startedAtMs,
|
|
@@ -234,11 +29,12 @@ async function createRunResultBeforeRunEnd(testPlan, options, dependencies, repo
|
|
|
234
29
|
}
|
|
235
30
|
async function executeRun(input) {
|
|
236
31
|
const result = await createRunResultBeforeRunEnd(input.testPlan, input.options, input.context.dependencies, input.context.reporterDelivery);
|
|
32
|
+
const finalizedResult = await input.options.finalizeResult(result);
|
|
237
33
|
const runEndErrors = await input.context.reporterDelivery.reportEvent({
|
|
238
34
|
kind: 'run-end',
|
|
239
|
-
result
|
|
35
|
+
result: finalizedResult
|
|
240
36
|
});
|
|
241
|
-
const resultForFinalReporting = appendRunnerErrors(
|
|
37
|
+
const resultForFinalReporting = appendRunnerErrors(finalizedResult, runEndErrors);
|
|
242
38
|
const finalReporterErrors = await input.context.reporterDelivery.reportResult(resultForFinalReporting);
|
|
243
39
|
const disposeErrors = await input.reporterDisposal.disposeOnce();
|
|
244
40
|
return appendRunnerErrors(resultForFinalReporting, [...finalReporterErrors, ...disposeErrors]);
|
package/engine/execution.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../../source/engine/execution.ts"],"names":[],"mappings":"AACA,OAAO,EACH
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../../source/engine/execution.ts"],"names":[],"mappings":"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"}
|
package/engine/identity.d.ts
CHANGED
|
@@ -18,12 +18,13 @@ export type WorkloadId = {
|
|
|
18
18
|
};
|
|
19
19
|
export type WorkId = {
|
|
20
20
|
readonly case: CaseId;
|
|
21
|
-
readonly
|
|
21
|
+
readonly runtimes: readonly RuntimeId[];
|
|
22
22
|
readonly workload: WorkloadId | null;
|
|
23
23
|
};
|
|
24
24
|
export declare function createCaseId(file: string | null, suite: readonly string[], title: string, params: string | null): CaseId;
|
|
25
25
|
export declare function caseIdentityKey(caseId: CaseId): string;
|
|
26
|
-
export declare function runtimeIdentityKey(runtime: RuntimeId
|
|
26
|
+
export declare function runtimeIdentityKey(runtime: RuntimeId): string;
|
|
27
|
+
export declare function runtimeIdentitiesKey(runtimes: readonly RuntimeId[]): string;
|
|
27
28
|
export declare function workIdentityKey(work: WorkId): string;
|
|
28
29
|
export declare function createDefaultWorkId(testCase: CaseId): WorkId;
|
|
29
30
|
export declare function formatCaseId(caseId: CaseId): string;
|
package/engine/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../source/engine/identity.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../source/engine/identity.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,wBAAgB,YAAY,CACxB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAOR;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AA+BD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAE7D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAE3E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CASnD"}
|
package/engine/identity.js
CHANGED
|
@@ -15,15 +15,15 @@ function orderedRecordEntries(record) {
|
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
17
|
function runtimeIdentityShape(runtime) {
|
|
18
|
-
if (runtime === null) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
18
|
return [
|
|
22
19
|
runtime.name,
|
|
23
20
|
runtime.variantId,
|
|
24
21
|
orderedRecordEntries(runtime.dimensions)
|
|
25
22
|
];
|
|
26
23
|
}
|
|
24
|
+
function runtimeIdentitiesShape(runtimes) {
|
|
25
|
+
return runtimes.map(runtimeIdentityShape);
|
|
26
|
+
}
|
|
27
27
|
function workloadIdentityShape(workload) {
|
|
28
28
|
if (workload === null) {
|
|
29
29
|
return null;
|
|
@@ -35,19 +35,19 @@ function workloadIdentityShape(workload) {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
export function workIdentityKey(work) {
|
|
38
|
-
if (work.
|
|
38
|
+
if (work.runtimes.length === 0 && work.workload === null) {
|
|
39
39
|
return caseIdentityKey(work.case);
|
|
40
40
|
}
|
|
41
41
|
return JSON.stringify([
|
|
42
42
|
caseIdentityKey(work.case),
|
|
43
|
-
|
|
43
|
+
runtimeIdentitiesShape(work.runtimes),
|
|
44
44
|
workloadIdentityShape(work.workload)
|
|
45
45
|
]);
|
|
46
46
|
}
|
|
47
47
|
export function createDefaultWorkId(testCase) {
|
|
48
48
|
return {
|
|
49
49
|
case: testCase,
|
|
50
|
-
|
|
50
|
+
runtimes: [],
|
|
51
51
|
workload: null
|
|
52
52
|
};
|
|
53
53
|
}
|
package/engine/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../source/engine/identity.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,YAAY,CACxB,IAAmB,EACnB,KAAwB,EACxB,KAAa,EACb,MAAqB;IAErB,OAAO;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;KACR,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAwC;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,CAAE,IAAI,CAAE,EAAE,CAAE,KAAK,CAAE;QAC3E,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../source/engine/identity.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,YAAY,CACxB,IAAmB,EACnB,KAAwB,EACxB,KAAa,EACb,MAAqB;IAErB,OAAO;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;KACR,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAwC;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,CAAE,IAAI,CAAE,EAAE,CAAE,KAAK,CAAE;QAC3E,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAkB;IAC5C,OAAO;QACH,OAAO,CAAC,IAAI;QACZ,OAAO,CAAC,SAAS;QACjB,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC;KAC3C,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAAC,QAA8B;IAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA2B;IACtD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,QAAQ,CAAC,IAAI;QACb,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC;KACxC,CAAC;AACN,CAAC;;MAMK,UAIU,eAAe,CAAC,IAAY;IACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC;QAClB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;KACvC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAChD,OAAO;QACH,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACjB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACvC,MAAM,SAAS,GAAG,CAAE,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;IAErF,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,GAAG,UAAU,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC;AAC9C,CAAC"}
|
|
@@ -8,6 +8,7 @@ export type ReporterDispatcher = {
|
|
|
8
8
|
readonly trackRunnerErrorDelivery: <Result>(work: () => Promise<Result>) => Promise<{
|
|
9
9
|
readonly deliveredRunnerErrors: readonly RunnerError[];
|
|
10
10
|
readonly result: Result;
|
|
11
|
+
readonly undeliveredRunnerErrors: readonly RunnerError[];
|
|
11
12
|
}>;
|
|
12
13
|
};
|
|
13
14
|
export type ReporterDelivery = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter-dispatcher.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACH,sBAAsB,IAAI,kCAAkC,EAC5D,KAAK,gBAAgB,IAAI,oBAAoB,EAChD,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"reporter-dispatcher.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACH,sBAAsB,IAAI,kCAAkC,EAC5D,KAAK,gBAAgB,IAAI,oBAAoB,EAChD,MAAM,wBAAwB,CAAC;AAYhC,OAAO,KAAK,EACR,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAyB,KAAK,eAAe,EAAiB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE/G,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9D,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,cAAc,EAAE,CACrB,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,cAAc,EAAE,qBAAqB,KACpC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/B,QAAQ,CAAC,wBAAwB,EAAE,CAAC,MAAM,EACtC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,KAC1B,OAAO,CAAC;QACT,QAAQ,CAAC,qBAAqB,EAAE,SAAS,WAAW,EAAE,CAAC;QACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,uBAAuB,EAAE,SAAS,WAAW,EAAE,CAAC;KAC5D,CAAC,CAAC;CACN,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IAChF,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;CACjF,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IACzC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CACjC,CAAC;AAwBF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD,eAAO,MAAM,sBAAsB,EAAE,OAAO,kCAAuE,CAAC;AAodpH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,8BAA8B,GAAG,kBAAkB,CASzG"}
|