@overkill-dev/run 0.0.17 → 0.0.19

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.
Files changed (83) hide show
  1. package/engine/case-execution.d.ts +22 -0
  2. package/engine/case-execution.d.ts.map +1 -0
  3. package/engine/case-execution.js +10 -1
  4. package/engine/case-execution.js.map +1 -1
  5. package/engine/execution-result.js +4 -0
  6. package/engine/execution-result.js.map +1 -1
  7. package/engine/execution-supervision.d.ts +2 -0
  8. package/engine/execution-supervision.d.ts.map +1 -1
  9. package/engine/execution-supervision.js +28 -21
  10. package/engine/execution-supervision.js.map +1 -1
  11. package/engine/execution.d.ts +4 -1
  12. package/engine/execution.d.ts.map +1 -1
  13. package/engine/execution.js +9 -1
  14. package/engine/execution.js.map +1 -1
  15. package/engine/resource-usage-growth.js +12 -0
  16. package/engine/resource-usage-growth.js.map +1 -0
  17. package/engine/run-result.d.ts +3 -1
  18. package/engine/run-result.d.ts.map +1 -1
  19. package/engine/run-result.js.map +1 -1
  20. package/package.json +6 -3
  21. package/packages/run/run.entry-point.d.ts +2 -2
  22. package/packages/run/run.entry-point.d.ts.map +1 -1
  23. package/packages/run/run.entry-point.js +1 -1
  24. package/packages/run/run.entry-point.js.map +1 -1
  25. package/readme.md +39 -2
  26. package/run/capability-policy.d.ts +47 -0
  27. package/run/capability-policy.d.ts.map +1 -0
  28. package/run/capability-policy.js +395 -0
  29. package/run/capability-policy.js.map +1 -0
  30. package/run/collected-run-plan.js +100 -0
  31. package/run/collected-run-plan.js.map +1 -0
  32. package/run/command-line-runner.d.ts.map +1 -1
  33. package/run/command-line-runner.js +6 -3
  34. package/run/command-line-runner.js.map +1 -1
  35. package/run/node-host-readers.js +13 -0
  36. package/run/node-host-readers.js.map +1 -0
  37. package/run/node-process-capability-restrictions.js +92 -0
  38. package/run/node-process-capability-restrictions.js.map +1 -0
  39. package/run/run-config-schema.d.ts +5 -0
  40. package/run/run-config-schema.d.ts.map +1 -1
  41. package/run/run-config-schema.js +1 -0
  42. package/run/run-config-schema.js.map +1 -1
  43. package/run/run-config.d.ts.map +1 -1
  44. package/run/run-config.js +8 -2
  45. package/run/run-config.js.map +1 -1
  46. package/run/run-engine-selection.js +92 -0
  47. package/run/run-engine-selection.js.map +1 -0
  48. package/run/run-facts.js +103 -0
  49. package/run/run-facts.js.map +1 -0
  50. package/run/run-local-test-plan.js +25 -0
  51. package/run/run-local-test-plan.js.map +1 -0
  52. package/run/run-orchestrator.entry-point.d.ts +2 -0
  53. package/run/run-orchestrator.entry-point.d.ts.map +1 -0
  54. package/run/run-orchestrator.entry-point.js +31 -0
  55. package/run/run-orchestrator.entry-point.js.map +1 -0
  56. package/run/run-orchestrator.js +27 -33
  57. package/run/run-orchestrator.js.map +1 -1
  58. package/run/run-process-engine.js +40 -0
  59. package/run/run-process-engine.js.map +1 -0
  60. package/run/run-support.js +133 -0
  61. package/run/run-support.js.map +1 -0
  62. package/run/run-test-plan.js +20 -0
  63. package/run/run-test-plan.js.map +1 -0
  64. package/run/run-types.d.ts +60 -4
  65. package/run/run-types.d.ts.map +1 -1
  66. package/run/run-types.js.map +1 -1
  67. package/run/run-validation.js +122 -0
  68. package/run/run-validation.js.map +1 -0
  69. package/run/run.js +191 -329
  70. package/run/run.js.map +1 -1
  71. package/run/supervised-child-process.js +127 -0
  72. package/run/supervised-child-process.js.map +1 -0
  73. package/run/supervised-run-resource-policy.js +64 -0
  74. package/run/supervised-run-resource-policy.js.map +1 -0
  75. package/run/supervised-run-runtime.js +257 -0
  76. package/run/supervised-run-runtime.js.map +1 -0
  77. package/run/supervised-run-state.js +109 -0
  78. package/run/supervised-run-state.js.map +1 -0
  79. package/run/supervised-run.js +209 -299
  80. package/run/supervised-run.js.map +1 -1
  81. package/sbom.cdx.json +4 -4
  82. package/run/run-orchestrator.d.ts +0 -3
  83. package/run/run-orchestrator.d.ts.map +0 -1
package/run/run.js CHANGED
@@ -1,333 +1,136 @@
1
- import { serializeValue } from "../compare/serialized-value.js";
2
- import { discoverRunFiles } from "./run-discovery.js";
3
- import { invalidRequest, RunCollectionError, unsupportedRequest } from "./run-errors.js";
4
- import { loadRunTestModules } from "./run-test-modules.js";
5
- import { executeSupervisedRun } from "./supervised-run.js";
6
- import { invalidRunProfileNameMessage } from "./run-types.js";
7
- const minimumSeedValue = 0n;
8
- function validateRunShard(request) {
9
- if (request.shard.index !== 0 || request.shard.total !== 1) {
10
- unsupportedRequest('Sharding is not implemented yet.');
11
- }
12
- }
13
- function validateRunSeed(request) {
14
- if (request.seed.value !== null && request.seed.value < minimumSeedValue) {
15
- invalidRequest('Run seed must be a nonnegative bigint.');
16
- }
17
- }
18
- function validatePositiveSafeInteger(value, label) {
19
- if (value !== null && (!Number.isSafeInteger(value) || value <= 0)) {
20
- invalidRequest(`${label} must be a positive safe integer.`);
21
- }
22
- }
23
- function validateResourceBudgets(resourceBudgets) {
24
- validatePositiveSafeInteger(resourceBudgets.activeResourceCount, 'Active resource count budget');
25
- validatePositiveSafeInteger(resourceBudgets.javaScriptEngineHeapBytes, 'JavaScript engine heap budget');
26
- validatePositiveSafeInteger(resourceBudgets.residentSetBytes, 'Resident set budget');
27
- validatePositiveSafeInteger(resourceBudgets.residentSetGrowthBytesPerSecond, 'Resident set growth budget');
28
- }
29
- function validateSamplingInterval(value) {
30
- validatePositiveSafeInteger(value, 'Resource usage sampling interval');
31
- }
32
- function validateTimeoutPolicy(policy) {
33
- validatePositiveSafeInteger(policy.softMilliseconds, 'Soft timeout');
34
- validatePositiveSafeInteger(policy.hardMilliseconds, 'Hard timeout');
35
- if (policy.softMilliseconds > policy.hardMilliseconds) {
36
- invalidRequest('Soft timeout must not exceed hard timeout.');
37
- }
38
- }
39
- function hasResourceBudgets(resourceBudgets) {
40
- return resourceBudgets.activeResourceCount !== null ||
41
- resourceBudgets.javaScriptEngineHeapBytes !== null ||
42
- resourceBudgets.residentSetBytes !== null ||
43
- resourceBudgets.residentSetGrowthBytesPerSecond !== null;
44
- }
45
- function validateRunResourceUsageRequest(request) {
46
- if (request.resourceBudgetOverrides !== null) {
47
- validateResourceBudgets(request.resourceBudgetOverrides);
48
- }
49
- validateSamplingInterval(request.resourceUsageSamplingIntervalMilliseconds);
50
- if (request.measureResourceUsage === false &&
51
- request.resourceBudgetOverrides !== null &&
52
- hasResourceBudgets(request.resourceBudgetOverrides)) {
53
- invalidRequest('Resource budget overrides require resource usage measurement.');
54
- }
55
- }
56
- function assertValidRunProfileName(profileName) {
57
- const message = invalidRunProfileNameMessage(profileName);
58
- if (message !== null) {
59
- invalidRequest(message);
60
- }
61
- }
62
- function validateRunRequest(request) {
63
- assertValidRunProfileName(request.profile);
64
- validateRunShard(request);
65
- validateRunSeed(request);
66
- validateRunResourceUsageRequest(request);
67
- }
68
- function validateRunResourceUsagePolicy(policy) {
69
- validateResourceBudgets(policy.budgets);
70
- validateSamplingInterval(policy.samplingIntervalMilliseconds);
71
- if (!policy.measure && hasResourceBudgets(policy.budgets)) {
72
- invalidRequest('Resource budgets require resource usage measurement.');
73
- }
1
+ import { collectedRunCaseFacts } from "./collected-run-plan.js";
2
+ import { createRunFacts, resolveResourceUsagePolicy, runCaseFactsFromTestPlan, selectedProfile } from "./run-facts.js";
3
+ import { createLocalTestPlan } from "./run-local-test-plan.js";
4
+ import { RunCollectionError } from "./run-errors.js";
5
+ import { copyRunEngineSelection, copyRunConfig, copyRunRequest, createRunRuntimePolicy } from "./run-support.js";
6
+ import { collectSupervisedRun, executeSupervisedRun, runSupervisedCommand } from "./supervised-run.js";
7
+ import { assertSupportedProcessEngine, validateRunInput, validateRunResourceUsagePolicy } from "./run-validation.js";
8
+ function currentRunStartTime(dependencies) {
9
+ const startedAt = new Date(dependencies.wallClock.currentTimestampInMilliseconds);
10
+ return startedAt.toISOString();
74
11
  }
75
- function validateRunMicrotestProfile(profile) {
76
- validateRunResourceUsagePolicy(profile.resourceUsage);
77
- validateTimeoutPolicy(profile.timeouts);
78
- }
79
- const runProfileValidators = {
80
- microtest: validateRunMicrotestProfile
81
- };
82
- function readProfileTestFamily(profile) {
83
- return profile.testFamily;
84
- }
85
- function isRunTestFamily(value) {
86
- return value === 'microtest';
87
- }
88
- function validateRunProfile(profileName, profile) {
89
- const testFamily = readProfileTestFamily(profile);
90
- if (!isRunTestFamily(testFamily)) {
91
- invalidRequest(`Invalid run profile "${profileName}": testFamily must be "microtest".`);
92
- }
93
- runProfileValidators[testFamily](profile);
12
+ function resolveEngineExecutionMode(execution) {
13
+ return execution.scheduling === 'concurrent' ? 'concurrent-in-process' : 'serial-in-process';
94
14
  }
95
- function validateRunConfig(config) {
96
- for (const [profileName, profile] of Object.entries(config.profiles)) {
97
- assertValidRunProfileName(profileName);
98
- validateRunProfile(profileName, profile);
15
+ function freezeValue(value) {
16
+ if (value !== null && typeof value === 'object') {
17
+ for (const propertyValue of Object.values(value)) {
18
+ freezeValue(propertyValue);
19
+ }
20
+ Object.freeze(value);
99
21
  }
22
+ return value;
100
23
  }
101
- function resolvedSeed(request, dependencies) {
102
- return request.seed.value ?? dependencies.createSeed();
103
- }
104
- function copyLoaderConfig(loader) {
105
- return {
106
- sourceMaps: loader.sourceMaps,
107
- stripMode: loader.stripMode
108
- };
109
- }
110
- function copyRunShard(shard) {
111
- return {
112
- index: shard.index,
113
- total: shard.total
114
- };
115
- }
116
- function copyResourceBudgets(resourceBudgets) {
117
- return {
118
- activeResourceCount: resourceBudgets.activeResourceCount,
119
- javaScriptEngineHeapBytes: resourceBudgets.javaScriptEngineHeapBytes,
120
- residentSetBytes: resourceBudgets.residentSetBytes,
121
- residentSetGrowthBytesPerSecond: resourceBudgets.residentSetGrowthBytesPerSecond
122
- };
123
- }
124
- function copyResourceBudgetOverrides(overrides) {
125
- if (overrides === null) {
126
- return null;
24
+ function supervisedEngine(command) {
25
+ if (command.engine.kind === 'instance') {
26
+ throw new Error('Instance engines cannot run in supervised children.');
127
27
  }
128
- return copyResourceBudgets(overrides);
28
+ return command.engine;
129
29
  }
130
- function copyResourceUsagePolicy(policy) {
30
+ function createSupervisedCommandBase(command, profile) {
31
+ const resourceUsagePolicy = resolveResourceUsagePolicy(command.request, profile);
131
32
  return {
132
- budgets: copyResourceBudgets(policy.budgets),
133
- measure: policy.measure,
134
- samplingIntervalMilliseconds: policy.samplingIntervalMilliseconds
135
- };
136
- }
137
- function copyTimeoutPolicy(policy) {
138
- return {
139
- hardMilliseconds: policy.hardMilliseconds,
140
- softMilliseconds: policy.softMilliseconds
33
+ capabilityRestrictions: command.request.capabilityRestrictions,
34
+ collectionTimeoutMilliseconds: profile.timeouts.collectionMilliseconds,
35
+ cwd: command.cwd,
36
+ engine: supervisedEngine(command),
37
+ hardTimeoutMilliseconds: profile.timeouts.hardMilliseconds,
38
+ paths: command.request.paths,
39
+ resourceBudgets: resourceUsagePolicy.budgets,
40
+ resourceUsageSamplingIntervalMilliseconds: resourceUsagePolicy.samplingIntervalMilliseconds,
41
+ scheduling: profile.execution.scheduling,
42
+ timeoutMilliseconds: profile.timeouts.softMilliseconds
141
43
  };
142
44
  }
143
- function copyExecution(execution) {
45
+ function createSupervisedCollectCommand(command, profile) {
144
46
  return {
145
- processModel: execution.processModel,
146
- scheduling: execution.scheduling
47
+ ...createSupervisedCommandBase(command, profile),
48
+ kind: 'collect'
147
49
  };
148
50
  }
149
- function copyProfileConfig(profile) {
51
+ function createSupervisedRunCommand(command, profile) {
150
52
  return {
151
- execution: copyExecution(profile.execution),
152
- reporters: profile.reporters === null ? null : Array.from(profile.reporters),
153
- resourceUsage: copyResourceUsagePolicy(profile.resourceUsage),
154
- testFamily: profile.testFamily,
155
- timeouts: copyTimeoutPolicy(profile.timeouts)
53
+ ...createSupervisedCommandBase(command, profile),
54
+ kind: 'run'
156
55
  };
157
56
  }
158
- function copyRunProfilesConfig(profiles) {
159
- return Object.fromEntries(Object.entries(profiles).map(function copyProfileEntry([name, profile]) {
160
- return [name, copyProfileConfig(profile)];
57
+ function createResolvedRunFromCollectedPlan(input) {
58
+ const engine = freezeValue(copyRunEngineSelection(input.command.engine));
59
+ const facts = freezeValue(createRunFacts({
60
+ cases: collectedRunCaseFacts(input.collectedPlan),
61
+ config: input.config,
62
+ dependencies: input.dependencies,
63
+ engine,
64
+ request: input.request
161
65
  }));
162
- }
163
- function copyRunRequest(request) {
164
- return {
165
- baselineUpdateMode: request.baselineUpdateMode,
166
- capture: request.capture,
167
- debug: {
168
- mode: request.debug.mode,
169
- selectors: []
170
- },
171
- execution: { mode: request.execution.mode },
172
- measureResourceUsage: request.measureResourceUsage,
173
- order: request.order,
174
- paths: Array.from(request.paths),
175
- profile: request.profile,
176
- resourceBudgetOverrides: copyResourceBudgetOverrides(request.resourceBudgetOverrides),
177
- resourceUsageSamplingIntervalMilliseconds: request.resourceUsageSamplingIntervalMilliseconds,
178
- seed: { value: request.seed.value },
179
- selection: { kind: request.selection.kind },
180
- shard: copyRunShard(request.shard),
181
- verbose: request.verbose
182
- };
183
- }
184
- function copyRunConfig(config) {
185
- return {
186
- loader: copyLoaderConfig(config.loader),
187
- outputRenderer: config.outputRenderer,
188
- profiles: copyRunProfilesConfig(config.profiles),
189
- reporters: Array.from(config.reporters),
190
- runtimeStateDir: config.runtimeStateDir
191
- };
192
- }
193
- function runCaseFacts(metadata, id) {
194
- return {
195
- id,
196
- metadata: serializeValue(metadata)
197
- };
198
- }
199
- function disabledResourceBudgets() {
200
- return {
201
- activeResourceCount: null,
202
- javaScriptEngineHeapBytes: null,
203
- residentSetBytes: null,
204
- residentSetGrowthBytesPerSecond: null
205
- };
206
- }
207
- function readBudgetOverride(configValue, requestValue) {
208
- return requestValue ?? configValue;
209
- }
210
- function resolveResourceBudgets(configBudgets, requestOverrides) {
211
- if (requestOverrides === null) {
212
- return copyResourceBudgets(configBudgets);
213
- }
214
- return {
215
- activeResourceCount: readBudgetOverride(configBudgets.activeResourceCount, requestOverrides.activeResourceCount),
216
- javaScriptEngineHeapBytes: readBudgetOverride(configBudgets.javaScriptEngineHeapBytes, requestOverrides.javaScriptEngineHeapBytes),
217
- residentSetBytes: readBudgetOverride(configBudgets.residentSetBytes, requestOverrides.residentSetBytes),
218
- residentSetGrowthBytesPerSecond: readBudgetOverride(configBudgets.residentSetGrowthBytesPerSecond, requestOverrides.residentSetGrowthBytesPerSecond)
219
- };
220
- }
221
- function assertResourceBudgetOverridesAllowed(measureResourceUsage, requestOverrides) {
222
- if (!measureResourceUsage && requestOverrides !== null && hasResourceBudgets(requestOverrides)) {
223
- invalidRequest('Resource budget overrides require resource usage measurement.');
224
- }
225
- }
226
- function selectedProfile(request, config) {
227
- const profile = config.profiles[request.profile];
228
- if (profile === undefined) {
229
- invalidRequest(`Unknown run profile: ${request.profile}`);
230
- }
231
- return profile;
232
- }
233
- function resolveEngineExecutionMode(execution) {
234
- return execution.scheduling === 'concurrent' ? 'concurrent-in-process' : 'serial-in-process';
235
- }
236
- function resolveResourceUsagePolicy(request, profile) {
237
- const configuredPolicy = profile.resourceUsage;
238
- const measureResourceUsage = request.measureResourceUsage ?? configuredPolicy.measure;
239
- const resourceUsageSamplingIntervalMilliseconds = request.resourceUsageSamplingIntervalMilliseconds ??
240
- configuredPolicy.samplingIntervalMilliseconds;
241
- const resourceBudgets = measureResourceUsage
242
- ? resolveResourceBudgets(configuredPolicy.budgets, request.resourceBudgetOverrides)
243
- : disabledResourceBudgets();
244
- assertResourceBudgetOverridesAllowed(measureResourceUsage, request.resourceBudgetOverrides);
245
- return {
246
- budgets: resourceBudgets,
247
- measure: measureResourceUsage,
248
- samplingIntervalMilliseconds: resourceUsageSamplingIntervalMilliseconds
249
- };
250
- }
251
- function createRunFacts(testPlan, request, config, dependencies) {
252
- const profile = selectedProfile(request, config);
253
- return {
254
- cases: testPlan.cases.map(function toRunCaseFacts(testCase) {
255
- return runCaseFacts(testCase.metadata, testCase.id);
256
- }),
257
- environment: {
258
- node: {
259
- arch: dependencies.node.arch,
260
- platform: dependencies.node.platform,
261
- version: dependencies.node.version
262
- },
263
- runtimeStateDir: config.runtimeStateDir
264
- },
265
- execution: {
266
- baselineUpdateMode: request.baselineUpdateMode,
267
- capture: request.capture,
268
- debug: request.debug,
269
- order: request.order,
270
- processModel: profile.execution.processModel,
271
- profile: request.profile,
272
- resourceUsagePolicy: resolveResourceUsagePolicy(request, profile),
273
- scheduling: profile.execution.scheduling,
274
- testFamily: profile.testFamily,
275
- timeoutPolicy: profile.timeouts,
276
- verbose: request.verbose
66
+ return freezeValue({
67
+ collectionRunnerErrors: input.collectionRunnerErrors,
68
+ config: input.config,
69
+ cwd: input.command.cwd,
70
+ engine,
71
+ facts,
72
+ plan: {
73
+ collectedPlan: input.collectedPlan,
74
+ kind: 'supervised'
277
75
  },
278
- loader: config.loader,
279
- reproducibility: {
280
- seed: resolvedSeed(request, dependencies).toString(),
281
- shard: request.shard
282
- }
283
- };
284
- }
285
- function freezeValue(value) {
286
- if (value !== null && typeof value === 'object') {
287
- for (const propertyValue of Object.values(value)) {
288
- freezeValue(propertyValue);
289
- }
290
- Object.freeze(value);
291
- }
292
- return value;
293
- }
294
- function resolveRunEngine(command, dependencies) {
295
- return command.engine ?? dependencies.defaultEngine;
76
+ reporters: input.profile.reporters ?? input.config.reporters,
77
+ request: input.request
78
+ });
296
79
  }
297
- async function createTestPlan(command, dependencies) {
298
- const engine = resolveRunEngine(command, dependencies);
299
- const files = await discoverRunFiles({ cwd: command.cwd, paths: command.request.paths });
300
- const testFiles = await loadRunTestModules(files, engine);
301
- try {
302
- return engine.createTestPlanFromTestFiles({
303
- files: testFiles,
304
- root: {
305
- metadata: {},
306
- name: command.cwd
307
- }
308
- });
309
- }
310
- catch (error) {
311
- throw new RunCollectionError('Failed to collect tests from explicit run inputs.', { cause: error }, 'loader');
312
- }
80
+ function createResolvedRunFromSupervisedCollection(command, dependencies, input, collection) {
81
+ return createResolvedRunFromCollectedPlan({
82
+ collectionRunnerErrors: freezeValue(Array.from(collection.runnerErrors)),
83
+ collectedPlan: freezeValue(collection.collectedPlan),
84
+ command,
85
+ config: input.config,
86
+ dependencies,
87
+ profile: input.profile,
88
+ request: input.request
89
+ });
313
90
  }
314
- async function createResolvedRun(command, dependencies) {
315
- validateRunRequest(command.request);
316
- validateRunConfig(command.config);
91
+ async function readResolvedRunInput(command) {
92
+ await validateRunInput(command);
317
93
  const request = freezeValue(copyRunRequest(command.request));
318
94
  const config = freezeValue(copyRunConfig(command.config));
319
- const testPlan = await createTestPlan(command, dependencies);
320
- const facts = freezeValue(createRunFacts(testPlan, request, config, dependencies));
321
95
  const profile = selectedProfile(request, config);
96
+ assertSupportedProcessEngine(command, profile);
97
+ const engine = freezeValue(copyRunEngineSelection(command.engine));
98
+ return { config, engine, profile, request };
99
+ }
100
+ async function createSupervisedResolvedRun(command, dependencies, input) {
101
+ const collection = await collectSupervisedRun(createSupervisedCollectCommand(command, input.profile), dependencies);
102
+ return createResolvedRunFromSupervisedCollection(command, dependencies, input, collection);
103
+ }
104
+ async function createLocalResolvedRun(command, dependencies, input) {
105
+ const testPlan = await createLocalTestPlan(command, input.profile, dependencies);
106
+ const facts = freezeValue(createRunFacts({
107
+ cases: runCaseFactsFromTestPlan(testPlan),
108
+ config: input.config,
109
+ dependencies,
110
+ engine: input.engine,
111
+ request: input.request
112
+ }));
322
113
  return freezeValue({
323
- config,
114
+ collectionRunnerErrors: [],
115
+ config: input.config,
324
116
  cwd: command.cwd,
117
+ engine: input.engine,
325
118
  facts,
326
- reporters: profile.reporters ?? config.reporters,
327
- request,
328
- testPlan
119
+ plan: {
120
+ kind: 'local',
121
+ testPlan
122
+ },
123
+ reporters: input.profile.reporters ?? input.config.reporters,
124
+ request: input.request
329
125
  });
330
126
  }
127
+ async function createResolvedRun(command, dependencies) {
128
+ const input = await readResolvedRunInput(command);
129
+ if (input.profile.execution.processModel === 'supervised-process') {
130
+ return await createSupervisedResolvedRun(command, dependencies, input);
131
+ }
132
+ return await createLocalResolvedRun(command, dependencies, input);
133
+ }
331
134
  function assertRunnableResourceUsagePolicy(policy) {
332
135
  validateRunResourceUsagePolicy(policy);
333
136
  }
@@ -339,14 +142,14 @@ function createExecutionResourceUsageTracker(policy, dependencies) {
339
142
  samplingIntervalMilliseconds: policy.samplingIntervalMilliseconds
340
143
  });
341
144
  }
342
- function createCollectionErrorRunResult(error) {
145
+ function createCollectionErrorRunResult(error, runtimePolicyErrors) {
343
146
  return {
344
147
  artifacts: [],
345
148
  bySuite: {},
346
149
  orphans: [],
347
150
  perTest: [],
348
151
  resourceUsage: null,
349
- runnerErrors: [error.runnerError()],
152
+ runnerErrors: [...runtimePolicyErrors, error.runnerError()],
350
153
  summary: {
351
154
  crashed: 0,
352
155
  defined: 0,
@@ -356,6 +159,7 @@ function createCollectionErrorRunResult(error) {
356
159
  passed: 0,
357
160
  planned: 0,
358
161
  resourceExhausted: 0,
162
+ runtimePolicy: 0,
359
163
  skipped: 0
360
164
  },
361
165
  wallTimeMs: 0
@@ -364,45 +168,103 @@ function createCollectionErrorRunResult(error) {
364
168
  function isRunResult(value) {
365
169
  return Object.hasOwn(value, 'summary');
366
170
  }
367
- async function createResolvedRunOrCollectionErrorResult(command, dependencies) {
368
- try {
171
+ function createResultFromResolutionError(error, runtimePolicy) {
172
+ if (error instanceof RunCollectionError) {
173
+ return createCollectionErrorRunResult(error, runtimePolicy?.takeRunErrors() ?? []);
174
+ }
175
+ throw error;
176
+ }
177
+ async function resolveRunWithRuntimePolicy(resolveRun, runtimePolicy) {
178
+ return runtimePolicy === null ? await resolveRun() : await runtimePolicy.runLoad(resolveRun);
179
+ }
180
+ async function createResolvedRunOrCollectionErrorResult(command, dependencies, runtimePolicy) {
181
+ const resolveRun = async function resolveRunInsidePolicy() {
369
182
  return await createResolvedRun(command, dependencies);
183
+ };
184
+ try {
185
+ return await resolveRunWithRuntimePolicy(resolveRun, runtimePolicy);
370
186
  }
371
187
  catch (error) {
372
- if (error instanceof RunCollectionError) {
373
- return createCollectionErrorRunResult(error);
374
- }
188
+ return createResultFromResolutionError(error, runtimePolicy);
189
+ }
190
+ }
191
+ function addRunnerErrors(result, runnerErrors) {
192
+ if (runnerErrors.length === 0) {
193
+ return result;
194
+ }
195
+ return {
196
+ ...result,
197
+ runnerErrors: [...runnerErrors, ...result.runnerErrors]
198
+ };
199
+ }
200
+ async function createResolvedRunResult(command, dependencies, runtimePolicy) {
201
+ try {
202
+ return await createResolvedRunOrCollectionErrorResult(command, dependencies, runtimePolicy);
203
+ }
204
+ catch (error) {
205
+ runtimePolicy?.takeRunErrors();
375
206
  throw error;
376
207
  }
377
208
  }
209
+ async function runSupervisedAndAttachPolicyErrors(command, dependencies, runtimePolicy, input) {
210
+ const result = await runSupervisedCommand(createSupervisedRunCommand(command, input.profile), dependencies, function createResolvedRunAfterCollection(collection) {
211
+ return createResolvedRunFromSupervisedCollection(command, dependencies, input, collection);
212
+ });
213
+ return addRunnerErrors(result, runtimePolicy?.takeRunErrors() ?? []);
214
+ }
215
+ async function createSupervisedRunResult(command, dependencies, runtimePolicy) {
216
+ const input = await readResolvedRunInput(command);
217
+ if (input.profile.execution.processModel !== 'supervised-process') {
218
+ throw new Error('Expected supervised-process profile.');
219
+ }
220
+ try {
221
+ return await runSupervisedAndAttachPolicyErrors(command, dependencies, runtimePolicy, input);
222
+ }
223
+ catch (error) {
224
+ return createResultFromResolutionError(error, runtimePolicy);
225
+ }
226
+ }
227
+ async function executeResolvedRun(resolvedRun, dependencies, runtimePolicy) {
228
+ const { resourceUsagePolicy } = resolvedRun.facts.execution;
229
+ assertRunnableResourceUsagePolicy(resourceUsagePolicy);
230
+ if (resolvedRun.facts.execution.processModel === 'supervised-process') {
231
+ const result = await executeSupervisedRun(resolvedRun, dependencies);
232
+ return addRunnerErrors(result, runtimePolicy?.takeRunErrors() ?? []);
233
+ }
234
+ if (resolvedRun.plan.kind !== 'local') {
235
+ throw new Error('In-process execution requires a local test plan.');
236
+ }
237
+ return await dependencies.execute(resolvedRun.plan.testPlan, {
238
+ execution: { mode: resolveEngineExecutionMode(resolvedRun.facts.execution) },
239
+ outputRenderer: resolvedRun.config.outputRenderer,
240
+ reporters: resolvedRun.reporters,
241
+ resourceBudgets: resourceUsagePolicy.budgets,
242
+ resourceUsageTracker: createExecutionResourceUsageTracker(resourceUsagePolicy, dependencies),
243
+ runtimePolicy,
244
+ runFacts: resolvedRun.facts,
245
+ startedAt: currentRunStartTime(dependencies),
246
+ timeoutPolicy: {
247
+ hardTimeoutMilliseconds: resolvedRun.facts.execution.timeoutPolicy.hardMilliseconds,
248
+ timeoutMilliseconds: resolvedRun.facts.execution.timeoutPolicy.softMilliseconds
249
+ }
250
+ });
251
+ }
378
252
  export function createRunOrchestrator(dependencies) {
379
253
  return {
380
254
  async resolve(command) {
381
255
  return await createResolvedRun(command, dependencies);
382
256
  },
383
257
  async run(command) {
384
- const resolvedRun = await createResolvedRunOrCollectionErrorResult(command, dependencies);
258
+ const runtimePolicy = createRunRuntimePolicy(command.request, dependencies);
259
+ const profile = command.config.profiles[command.request.profile];
260
+ if (profile?.execution.processModel === 'supervised-process') {
261
+ return await createSupervisedRunResult(command, dependencies, runtimePolicy);
262
+ }
263
+ const resolvedRun = await createResolvedRunResult(command, dependencies, runtimePolicy);
385
264
  if (isRunResult(resolvedRun)) {
386
265
  return resolvedRun;
387
266
  }
388
- const { resourceUsagePolicy } = resolvedRun.facts.execution;
389
- assertRunnableResourceUsagePolicy(resourceUsagePolicy);
390
- if (resolvedRun.facts.execution.processModel === 'supervised-process') {
391
- return await executeSupervisedRun(resolvedRun, dependencies);
392
- }
393
- return await dependencies.execute(resolvedRun.testPlan, {
394
- execution: { mode: resolveEngineExecutionMode(resolvedRun.facts.execution) },
395
- outputRenderer: resolvedRun.config.outputRenderer,
396
- reporters: resolvedRun.reporters,
397
- resourceBudgets: resourceUsagePolicy.budgets,
398
- resourceUsageTracker: createExecutionResourceUsageTracker(resourceUsagePolicy, dependencies),
399
- runFacts: resolvedRun.facts,
400
- startedAt: dependencies.readStartedAt(),
401
- timeoutPolicy: {
402
- hardTimeoutMilliseconds: resolvedRun.facts.execution.timeoutPolicy.hardMilliseconds,
403
- timeoutMilliseconds: resolvedRun.facts.execution.timeoutPolicy.softMilliseconds
404
- }
405
- });
267
+ return await executeResolvedRun(resolvedRun, dependencies, runtimePolicy);
406
268
  }
407
269
  };
408
270
  }
package/run/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../source/run/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../source/run/run.ts"],"names":[],"mappings":"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"}