@overkill-dev/run 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/diff/diff-shape.d.ts +7 -2
  2. package/diff/diff-shape.d.ts.map +1 -1
  3. package/engine/assertion-recorder.js +242 -0
  4. package/engine/assertion-recorder.js.map +1 -0
  5. package/engine/case-execution.js +31 -247
  6. package/engine/case-execution.js.map +1 -1
  7. package/engine/execution-result.js +12 -4
  8. package/engine/execution-result.js.map +1 -1
  9. package/engine/execution-supervision.d.ts +50 -0
  10. package/engine/execution-supervision.d.ts.map +1 -0
  11. package/engine/execution-supervision.js +316 -0
  12. package/engine/execution-supervision.js.map +1 -0
  13. package/engine/execution.d.ts +4 -1
  14. package/engine/execution.d.ts.map +1 -1
  15. package/engine/execution.js +70 -61
  16. package/engine/execution.js.map +1 -1
  17. package/engine/reporter-output.d.ts +8 -1
  18. package/engine/reporter-output.d.ts.map +1 -1
  19. package/engine/reporter-output.js +9 -2
  20. package/engine/reporter-output.js.map +1 -1
  21. package/engine/reporter.d.ts +9 -3
  22. package/engine/reporter.d.ts.map +1 -1
  23. package/engine/reporter.js +7 -0
  24. package/engine/reporter.js.map +1 -1
  25. package/engine/run-result.d.ts +15 -5
  26. package/engine/run-result.d.ts.map +1 -1
  27. package/engine/run-result.js.map +1 -1
  28. package/engine/test-node.d.ts +1 -0
  29. package/engine/test-node.d.ts.map +1 -1
  30. package/engine/test-node.js.map +1 -1
  31. package/package.json +5 -2
  32. package/packages/engine/engine.entry-point.js +2 -2
  33. package/packages/engine/engine.entry-point.js.map +1 -1
  34. package/packages/run/command-line.entry-point.d.ts +1 -1
  35. package/packages/run/command-line.entry-point.d.ts.map +1 -1
  36. package/packages/run/run.entry-point.d.ts +3 -1
  37. package/packages/run/run.entry-point.d.ts.map +1 -1
  38. package/packages/run/run.entry-point.js +1 -0
  39. package/packages/run/run.entry-point.js.map +1 -1
  40. package/readme.md +9 -7
  41. package/reporters/line-reporter.js +18 -12
  42. package/reporters/line-reporter.js.map +1 -1
  43. package/run/command-line-command.d.ts +1 -1
  44. package/run/command-line-command.d.ts.map +1 -1
  45. package/run/command-line-runner.d.ts +1 -1
  46. package/run/command-line-runner.d.ts.map +1 -1
  47. package/run/command-line-runner.js +6 -3
  48. package/run/command-line-runner.js.map +1 -1
  49. package/run/resource-usage.d.ts.map +1 -1
  50. package/run/resource-usage.js +16 -17
  51. package/run/resource-usage.js.map +1 -1
  52. package/run/run-config.d.ts +145 -32
  53. package/run/run-config.d.ts.map +1 -1
  54. package/run/run-config.js +187 -61
  55. package/run/run-config.js.map +1 -1
  56. package/run/run-orchestrator.d.ts +1 -1
  57. package/run/run-orchestrator.d.ts.map +1 -1
  58. package/run/run-orchestrator.js +10 -7
  59. package/run/run-orchestrator.js.map +1 -1
  60. package/run/{run.d.ts → run-types.d.ts} +38 -23
  61. package/run/run-types.d.ts.map +1 -0
  62. package/run/run.js +86 -29
  63. package/run/run.js.map +1 -1
  64. package/run/supervised-run.js +359 -0
  65. package/run/supervised-run.js.map +1 -0
  66. package/sbom.cdx.json +5 -5
  67. package/run/run.d.ts.map +0 -1
package/run/run.js CHANGED
@@ -2,6 +2,7 @@ import { serializeValue } from "../compare/serialized-value.js";
2
2
  import { discoverRunFiles } from "./run-discovery.js";
3
3
  import { invalidRequest, RunCollectionError, unsupportedRequest } from "./run-errors.js";
4
4
  import { loadRunTestModules } from "./run-test-modules.js";
5
+ import { executeSupervisedRun } from "./supervised-run.js";
5
6
  const minimumSeedValue = 0n;
6
7
  function validateRunShard(request) {
7
8
  if (request.shard.index !== 0 || request.shard.total !== 1) {
@@ -27,6 +28,13 @@ function validateResourceBudgets(resourceBudgets) {
27
28
  function validateSamplingInterval(value) {
28
29
  validatePositiveSafeInteger(value, 'Resource usage sampling interval');
29
30
  }
31
+ function validateTimeoutPolicy(policy) {
32
+ validatePositiveSafeInteger(policy.softMilliseconds, 'Soft timeout');
33
+ validatePositiveSafeInteger(policy.hardMilliseconds, 'Hard timeout');
34
+ if (policy.softMilliseconds > policy.hardMilliseconds) {
35
+ invalidRequest('Soft timeout must not exceed hard timeout.');
36
+ }
37
+ }
30
38
  function hasResourceBudgets(resourceBudgets) {
31
39
  return resourceBudgets.activeResourceCount !== null ||
32
40
  resourceBudgets.javaScriptEngineHeapBytes !== null ||
@@ -50,14 +58,20 @@ function validateRunRequest(request) {
50
58
  validateRunResourceUsageRequest(request);
51
59
  }
52
60
  function validateRunResourceUsagePolicy(policy) {
53
- validateResourceBudgets(policy.resourceBudgets);
54
- validateSamplingInterval(policy.resourceUsageSamplingIntervalMilliseconds);
55
- if (!policy.measureResourceUsage && hasResourceBudgets(policy.resourceBudgets)) {
61
+ validateResourceBudgets(policy.budgets);
62
+ validateSamplingInterval(policy.samplingIntervalMilliseconds);
63
+ if (!policy.measure && hasResourceBudgets(policy.budgets)) {
56
64
  invalidRequest('Resource budgets require resource usage measurement.');
57
65
  }
58
66
  }
67
+ function validateRunProfile(profile) {
68
+ validateRunResourceUsagePolicy(profile.resourceUsage);
69
+ validateTimeoutPolicy(profile.timeouts);
70
+ }
59
71
  function validateRunConfig(config) {
60
- validateRunResourceUsagePolicy(config.profiles.microtest);
72
+ for (const profile of Object.values(config.profiles)) {
73
+ validateRunProfile(profile);
74
+ }
61
75
  }
62
76
  function resolvedSeed(request, dependencies) {
63
77
  return request.seed.value ?? dependencies.createSeed();
@@ -90,21 +104,41 @@ function copyResourceBudgetOverrides(overrides) {
90
104
  }
91
105
  function copyResourceUsagePolicy(policy) {
92
106
  return {
93
- measureResourceUsage: policy.measureResourceUsage,
94
- resourceBudgets: copyResourceBudgets(policy.resourceBudgets),
95
- resourceUsageSamplingIntervalMilliseconds: policy.resourceUsageSamplingIntervalMilliseconds
107
+ budgets: copyResourceBudgets(policy.budgets),
108
+ measure: policy.measure,
109
+ samplingIntervalMilliseconds: policy.samplingIntervalMilliseconds
96
110
  };
97
111
  }
98
- function copyRunProfilesConfig(profiles) {
112
+ function copyTimeoutPolicy(policy) {
113
+ return {
114
+ hardMilliseconds: policy.hardMilliseconds,
115
+ softMilliseconds: policy.softMilliseconds
116
+ };
117
+ }
118
+ function copyExecution(execution) {
119
+ return {
120
+ processModel: execution.processModel,
121
+ scheduling: execution.scheduling
122
+ };
123
+ }
124
+ function copyProfileConfig(profile) {
99
125
  return {
100
- microtest: copyResourceUsagePolicy(profiles.microtest)
126
+ execution: copyExecution(profile.execution),
127
+ reporters: profile.reporters === null ? null : Array.from(profile.reporters),
128
+ resourceUsage: copyResourceUsagePolicy(profile.resourceUsage),
129
+ testFamily: profile.testFamily,
130
+ timeouts: copyTimeoutPolicy(profile.timeouts)
101
131
  };
102
132
  }
133
+ function copyRunProfilesConfig(profiles) {
134
+ return Object.fromEntries(Object.entries(profiles).map(function copyProfileEntry([name, profile]) {
135
+ return [name, copyProfileConfig(profile)];
136
+ }));
137
+ }
103
138
  function copyRunRequest(request) {
104
139
  return {
105
140
  baselineUpdateMode: request.baselineUpdateMode,
106
141
  capture: request.capture,
107
- coverage: request.coverage,
108
142
  debug: {
109
143
  mode: request.debug.mode,
110
144
  selectors: []
@@ -164,22 +198,33 @@ function assertResourceBudgetOverridesAllowed(measureResourceUsage, requestOverr
164
198
  invalidRequest('Resource budget overrides require resource usage measurement.');
165
199
  }
166
200
  }
167
- function resolveResourceUsagePolicy(request, config) {
168
- const configuredPolicy = config.profiles.microtest;
169
- const measureResourceUsage = request.measureResourceUsage ?? configuredPolicy.measureResourceUsage;
201
+ function selectedProfile(request, config) {
202
+ const profile = config.profiles[request.profile];
203
+ if (profile === undefined) {
204
+ invalidRequest(`Unknown run profile: ${request.profile}`);
205
+ }
206
+ return profile;
207
+ }
208
+ function resolveEngineExecutionMode(execution) {
209
+ return execution.scheduling === 'concurrent' ? 'concurrent-in-process' : 'serial-in-process';
210
+ }
211
+ function resolveResourceUsagePolicy(request, profile) {
212
+ const configuredPolicy = profile.resourceUsage;
213
+ const measureResourceUsage = request.measureResourceUsage ?? configuredPolicy.measure;
170
214
  const resourceUsageSamplingIntervalMilliseconds = request.resourceUsageSamplingIntervalMilliseconds ??
171
- configuredPolicy.resourceUsageSamplingIntervalMilliseconds;
215
+ configuredPolicy.samplingIntervalMilliseconds;
172
216
  const resourceBudgets = measureResourceUsage
173
- ? resolveResourceBudgets(configuredPolicy.resourceBudgets, request.resourceBudgetOverrides)
217
+ ? resolveResourceBudgets(configuredPolicy.budgets, request.resourceBudgetOverrides)
174
218
  : disabledResourceBudgets();
175
219
  assertResourceBudgetOverridesAllowed(measureResourceUsage, request.resourceBudgetOverrides);
176
220
  return {
177
- measureResourceUsage,
178
- resourceBudgets,
179
- resourceUsageSamplingIntervalMilliseconds
221
+ budgets: resourceBudgets,
222
+ measure: measureResourceUsage,
223
+ samplingIntervalMilliseconds: resourceUsageSamplingIntervalMilliseconds
180
224
  };
181
225
  }
182
226
  function createRunFacts(testPlan, request, config, dependencies) {
227
+ const profile = selectedProfile(request, config);
183
228
  return {
184
229
  cases: testPlan.cases.map(function toRunCaseFacts(testCase) {
185
230
  return runCaseFacts(testCase.metadata, testCase.id);
@@ -195,12 +240,14 @@ function createRunFacts(testPlan, request, config, dependencies) {
195
240
  execution: {
196
241
  baselineUpdateMode: request.baselineUpdateMode,
197
242
  capture: request.capture,
198
- coverage: request.coverage,
199
243
  debug: request.debug,
200
- mode: request.execution.mode,
201
244
  order: request.order,
245
+ processModel: profile.execution.processModel,
202
246
  profile: request.profile,
203
- resourceUsagePolicy: resolveResourceUsagePolicy(request, config),
247
+ resourceUsagePolicy: resolveResourceUsagePolicy(request, profile),
248
+ scheduling: profile.execution.scheduling,
249
+ testFamily: profile.testFamily,
250
+ timeoutPolicy: profile.timeouts,
204
251
  verbose: request.verbose
205
252
  },
206
253
  loader: config.loader,
@@ -246,25 +293,25 @@ async function createResolvedRun(command, dependencies) {
246
293
  const config = freezeValue(copyRunConfig(command.config));
247
294
  const testPlan = await createTestPlan(command, dependencies);
248
295
  const facts = freezeValue(createRunFacts(testPlan, request, config, dependencies));
296
+ const profile = selectedProfile(request, config);
249
297
  return freezeValue({
250
298
  config,
299
+ cwd: command.cwd,
251
300
  facts,
252
- reporters: config.reporters,
301
+ reporters: profile.reporters ?? config.reporters,
253
302
  request,
254
303
  testPlan
255
304
  });
256
305
  }
257
306
  function assertRunnableResourceUsagePolicy(policy) {
258
- if (hasResourceBudgets(policy.resourceBudgets)) {
259
- unsupportedRequest('Resource budget enforcement is not implemented yet.');
260
- }
307
+ validateRunResourceUsagePolicy(policy);
261
308
  }
262
309
  function createExecutionResourceUsageTracker(policy, dependencies) {
263
- if (!policy.measureResourceUsage) {
310
+ if (!policy.measure) {
264
311
  return null;
265
312
  }
266
313
  return dependencies.createResourceUsageTracker({
267
- samplingIntervalMilliseconds: policy.resourceUsageSamplingIntervalMilliseconds
314
+ samplingIntervalMilliseconds: policy.samplingIntervalMilliseconds
268
315
  });
269
316
  }
270
317
  function createCollectionErrorRunResult(error) {
@@ -276,12 +323,14 @@ function createCollectionErrorRunResult(error) {
276
323
  resourceUsage: null,
277
324
  runnerErrors: [error.runnerError()],
278
325
  summary: {
326
+ crashed: 0,
279
327
  defined: 0,
280
328
  discovered: 0,
281
329
  failed: 0,
282
330
  inconclusive: 0,
283
331
  passed: 0,
284
332
  planned: 0,
333
+ resourceExhausted: 0,
285
334
  skipped: 0
286
335
  },
287
336
  wallTimeMs: 0
@@ -313,13 +362,21 @@ export function createRunOrchestrator(dependencies) {
313
362
  }
314
363
  const { resourceUsagePolicy } = resolvedRun.facts.execution;
315
364
  assertRunnableResourceUsagePolicy(resourceUsagePolicy);
365
+ if (resolvedRun.facts.execution.processModel === 'supervised-process') {
366
+ return await executeSupervisedRun(resolvedRun, dependencies);
367
+ }
316
368
  return await dependencies.execute(resolvedRun.testPlan, {
317
- execution: { mode: 'concurrent-in-process' },
369
+ execution: { mode: resolveEngineExecutionMode(resolvedRun.facts.execution) },
318
370
  outputRenderer: resolvedRun.config.outputRenderer,
319
371
  reporters: resolvedRun.reporters,
372
+ resourceBudgets: resourceUsagePolicy.budgets,
320
373
  resourceUsageTracker: createExecutionResourceUsageTracker(resourceUsagePolicy, dependencies),
321
374
  runFacts: resolvedRun.facts,
322
- startedAt: dependencies.readStartedAt()
375
+ startedAt: dependencies.readStartedAt(),
376
+ timeoutPolicy: {
377
+ hardTimeoutMilliseconds: resolvedRun.facts.execution.timeoutPolicy.hardMilliseconds,
378
+ timeoutMilliseconds: resolvedRun.facts.execution.timeoutPolicy.softMilliseconds
379
+ }
323
380
  });
324
381
  }
325
382
  };
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":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACH,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAoB3D,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,SAAS,gBAAgB,CAAC,OAAmB;IACzC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACzD,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB;IACxC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACvE,cAAc,CAAC,wCAAwC,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAoB,EAAE,KAAa;IACpE,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;QACjE,cAAc,CAAC,GAAG,KAAK,mCAAmC,CAAC,CAAC;IAChE,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,eAAmC;IAChE,2BAA2B,CAAC,eAAe,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,CAAC;IACjG,2BAA2B,CAAC,eAAe,CAAC,yBAAyB,EAAE,+BAA+B,CAAC,CAAC;IACxG,2BAA2B,CAAC,eAAe,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;IACrF,2BAA2B,CAAC,eAAe,CAAC,+BAA+B,EAAE,4BAA4B,CAAC,CAAC;AAC/G,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAoB;IAClD,2BAA2B,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAwB;IACnD,2BAA2B,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACrE,2BAA2B,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAErE,IAAI,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACpD,cAAc,CAAC,4CAA4C,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,eAAmC;IAC3D,OAAO,eAAe,CAAC,mBAAmB,KAAK,IAAI;QAC/C,eAAe,CAAC,yBAAyB,KAAK,IAAI;QAClD,eAAe,CAAC,gBAAgB,KAAK,IAAI;QACzC,eAAe,CAAC,+BAA+B,KAAK,IAAI,CAAC;AACjE,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAmB;IACxD,IAAI,OAAO,CAAC,uBAAuB,KAAK,IAAI,EAAE,CAAC;QAC3C,uBAAuB,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;IAED,wBAAwB,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;IAE5E,IACI,OAAO,CAAC,oBAAoB,KAAK,KAAK;QACtC,OAAO,CAAC,uBAAuB,KAAK,IAAI;QACxC,kBAAkB,CAAC,OAAO,CAAC,uBAAuB,CAAC,EACrD,CAAC;QACC,cAAc,CAAC,+DAA+D,CAAC,CAAC;IACpF,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAmB;IAC3C,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,8BAA8B,CAAC,MAA8B;IAClE,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,wBAAwB,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAE9D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,cAAc,CAAC,sDAAsD,CAAC,CAAC;IAC3E,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAkC;IAC1D,8BAA8B,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACtD,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAiB;IACxC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,OAAmB,EAAE,YAAyC;IAChF,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAuB;IAC7C,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC9B,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,KAAe;IACjC,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;KACrB,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,eAAmC;IAC5D,OAAO;QACH,mBAAmB,EAAE,eAAe,CAAC,mBAAmB;QACxD,yBAAyB,EAAE,eAAe,CAAC,yBAAyB;QACpE,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;QAClD,+BAA+B,EAAE,eAAe,CAAC,+BAA+B;KACnF,CAAC;AACN,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAoC;IACrE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA8B;IAC3D,OAAO;QACH,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;KACpE,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAwB;IAC/C,OAAO;QACH,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC5C,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,SAAgC;IACnD,OAAO;QACH,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,UAAU,EAAE,SAAS,CAAC,UAAU;KACnC,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAkC;IACzD,OAAO;QACH,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC;QAC3C,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5E,aAAa,EAAE,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7D,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;KAChD,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA2B;IACtD,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,gBAAgB,CAAC,CAAE,IAAI,EAAE,OAAO,CAAE;QACpE,OAAO,CAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAE,CAAC;IAChD,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,OAAmB;IACvC,OAAO;QACH,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE;YACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;YACxB,SAAS,EAAE,EAAE;SAChB;QACD,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;QAC3C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,uBAAuB,EAAE,2BAA2B,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACrF,yCAAyC,EAAE,OAAO,CAAC,yCAAyC;QAC5F,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;QACnC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;QAC3C,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB;IACpC,OAAO;QACH,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChD,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACvC,eAAe,EAAE,MAAM,CAAC,eAAe;KAC1C,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB,EAAE,EAAmC;IACzE,OAAO;QACH,EAAE;QACF,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;KACrC,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB;IAC5B,OAAO;QACH,mBAAmB,EAAE,IAAI;QACzB,yBAAyB,EAAE,IAAI;QAC/B,gBAAgB,EAAE,IAAI;QACtB,+BAA+B,EAAE,IAAI;KACxC,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CAAC,WAA0B,EAAE,YAA2B;IAC/E,OAAO,YAAY,IAAI,WAAW,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAC3B,aAAiC,EACjC,gBAA2C;IAE3C,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACH,mBAAmB,EAAE,kBAAkB,CACnC,aAAa,CAAC,mBAAmB,EACjC,gBAAgB,CAAC,mBAAmB,CACvC;QACD,yBAAyB,EAAE,kBAAkB,CACzC,aAAa,CAAC,yBAAyB,EACvC,gBAAgB,CAAC,yBAAyB,CAC7C;QACD,gBAAgB,EAAE,kBAAkB,CAAC,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;QACvG,+BAA+B,EAAE,kBAAkB,CAC/C,aAAa,CAAC,+BAA+B,EAC7C,gBAAgB,CAAC,+BAA+B,CACnD;KACJ,CAAC;AACN,CAAC;AAED,SAAS,oCAAoC,CACzC,oBAA6B,EAC7B,gBAA2C;IAE3C,IAAI,CAAC,oBAAoB,IAAI,gBAAgB,KAAK,IAAI,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7F,cAAc,CAAC,+DAA+D,CAAC,CAAC;IACpF,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB,EAAE,MAAiB;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,cAAc,CAAC,wBAAwB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,0BAA0B,CAAC,SAAgC;IAChE,OAAO,SAAS,CAAC,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACjG,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAmB,EAAE,OAAkC;IACvF,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAC/C,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,OAAO,CAAC;IACtF,MAAM,yCAAyC,GAAG,OAAO,CAAC,yCAAyC;QAC/F,gBAAgB,CAAC,4BAA4B,CAAC;IAClD,MAAM,eAAe,GAAG,oBAAoB;QACxC,CAAC,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC;QACnF,CAAC,CAAC,uBAAuB,EAAE,CAAC;IAEhC,oCAAoC,CAAC,oBAAoB,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE5F,OAAO;QACH,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,oBAAoB;QAC7B,4BAA4B,EAAE,yCAAyC;KAC1E,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CACnB,QAAkB,EAClB,OAAmB,EACnB,MAAiB,EACjB,YAAyC;IAEzC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEjD,OAAO;QACH,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,cAAc,CAAC,QAAQ;YACtD,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC;QACF,WAAW,EAAE;YACT,IAAI,EAAE;gBACF,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI;gBAC5B,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ;gBACpC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO;aACrC;YACD,eAAe,EAAE,MAAM,CAAC,eAAe;SAC1C;QACD,SAAS,EAAE;YACP,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,mBAAmB,EAAE,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC;YACjE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU;YACxC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,aAAa,EAAE,OAAO,CAAC,QAAQ;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;SAC3B;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE;YACb,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE;YACpD,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB;KACJ,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAQ,KAAY;IACpC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,WAAW,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAmB,EAAE,YAAyC;IACpF,OAAO,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,aAAa,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAmB,EAAE,YAAyC;IACxF,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE1D,IAAI,CAAC;QACD,OAAO,MAAM,CAAC,2BAA2B,CAAC;YACtC,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE;gBACF,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,OAAO,CAAC,GAAG;aACpB;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,mDAAmD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClH,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAmB,EAAE,YAAyC;IAC3F,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEjD,OAAO,WAAW,CAAC;QACf,MAAM;QACN,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;QAChD,OAAO;QACP,QAAQ;KACX,CAAC,CAAC;AACP,CAAC;AAED,SAAS,iCAAiC,CAAC,MAA8B;IACrE,8BAA8B,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,mCAAmC,CACxC,MAA8B,EAC9B,YAAyC;IAEzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,YAAY,CAAC,0BAA0B,CAAC;QAC3C,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;KACpE,CAAC,CAAC;AACP,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAyB;IAC7D,OAAO;QACH,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,CAAE,KAAK,CAAC,WAAW,EAAE,CAAE;QACrC,OAAO,EAAE;YACL,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,iBAAiB,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;SACb;QACD,UAAU,EAAE,CAAC;KAChB,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,wCAAwC,CACnD,OAAmB,EACnB,YAAyC;IAEzC,IAAI,CAAC;QACD,OAAO,MAAM,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACtC,OAAO,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAyC;IAC3E,OAAO;QACH,KAAK,CAAC,OAAO,CAAC,OAAO;YACjB,OAAO,MAAM,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,OAAO;YACb,MAAM,WAAW,GAAG,MAAM,wCAAwC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAE1F,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,OAAO,WAAW,CAAC;YACvB,CAAC;YAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;YAE5D,iCAAiC,CAAC,mBAAmB,CAAC,CAAC;YAEvD,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,KAAK,oBAAoB,EAAE,CAAC;gBACpE,OAAO,MAAM,oBAAoB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACjE,CAAC;YAED,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACpD,SAAS,EAAE,EAAE,IAAI,EAAE,0BAA0B,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBAC5E,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc;gBACjD,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,eAAe,EAAE,mBAAmB,CAAC,OAAO;gBAC5C,oBAAoB,EAAE,mCAAmC,CAAC,mBAAmB,EAAE,YAAY,CAAC;gBAC5F,QAAQ,EAAE,WAAW,CAAC,KAAK;gBAC3B,SAAS,EAAE,YAAY,CAAC,aAAa,EAAE;gBACvC,aAAa,EAAE;oBACX,uBAAuB,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB;oBACnF,mBAAmB,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB;iBAClF;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,359 @@
1
+ import { fork } from 'node:child_process';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { createRunResult } from "../engine/execution-result.js";
4
+ import { caseIdentityKey, formatCaseId } from "../engine/identity.js";
5
+ const childEntryPoint = fileURLToPath(new URL('./supervised-child.ts', import.meta.url));
6
+ const millisecondsPerSecond = 1000;
7
+ const resourceBudgetMetrics = [
8
+ 'activeResourceCount',
9
+ 'javaScriptEngineHeapBytes',
10
+ 'residentSetBytes',
11
+ 'residentSetGrowthBytesPerSecond'
12
+ ];
13
+ function terminalResult(testCase, verdict) {
14
+ return {
15
+ id: testCase.id,
16
+ outcome: null,
17
+ verdict
18
+ };
19
+ }
20
+ function createStoredRunValue(initialValue) {
21
+ let currentValue = initialValue;
22
+ return {
23
+ read() {
24
+ return currentValue;
25
+ },
26
+ write(value) {
27
+ currentValue = value;
28
+ }
29
+ };
30
+ }
31
+ function createSupervisedRunState() {
32
+ const activeCases = new Map();
33
+ const perTest = new Map();
34
+ const runnerErrors = [];
35
+ return {
36
+ activeCases,
37
+ addActiveCase(key, testCase) {
38
+ activeCases.set(key, testCase);
39
+ },
40
+ perTestResults() {
41
+ return Array.from(perTest.values());
42
+ },
43
+ recordPerTestResult(key, result) {
44
+ perTest.set(key, result);
45
+ },
46
+ recordRunnerError(error) {
47
+ runnerErrors.push(error);
48
+ },
49
+ recordRunnerErrors(errors) {
50
+ runnerErrors.push(...errors);
51
+ },
52
+ recordTerminalActiveCases(verdict) {
53
+ for (const [key, testCase] of activeCases) {
54
+ perTest.set(key, terminalResult(testCase, verdict));
55
+ }
56
+ activeCases.clear();
57
+ },
58
+ removeActiveCase(key) {
59
+ activeCases.delete(key);
60
+ },
61
+ runnerErrors() {
62
+ return runnerErrors;
63
+ }
64
+ };
65
+ }
66
+ function createReporterEventQueue() {
67
+ const eventReports = [];
68
+ return {
69
+ add(eventReport) {
70
+ eventReports.push(eventReport);
71
+ },
72
+ async wait() {
73
+ await Promise.all(eventReports);
74
+ }
75
+ };
76
+ }
77
+ function observedResidentSetGrowth(sample, previousSample) {
78
+ if (previousSample === null) {
79
+ return 0;
80
+ }
81
+ const elapsedMilliseconds = sample.capturedAtMilliseconds - previousSample.capturedAtMilliseconds;
82
+ if (elapsedMilliseconds <= 0) {
83
+ return 0;
84
+ }
85
+ return Math.max(0, (sample.residentSetBytes - previousSample.residentSetBytes) * millisecondsPerSecond / elapsedMilliseconds);
86
+ }
87
+ const budgetValueReaders = {
88
+ activeResourceCount(sample) {
89
+ return sample.activeResourceCount;
90
+ },
91
+ javaScriptEngineHeapBytes(sample) {
92
+ return sample.javaScriptEngineHeapBytes;
93
+ },
94
+ residentSetBytes(sample) {
95
+ return sample.residentSetBytes;
96
+ },
97
+ residentSetGrowthBytesPerSecond: observedResidentSetGrowth
98
+ };
99
+ function observedBudgetValue(metric, sample, previousSample) {
100
+ return budgetValueReaders[metric](sample, previousSample);
101
+ }
102
+ function findResourceBudgetBreach(budgets, sample, previousSample) {
103
+ for (const metric of resourceBudgetMetrics) {
104
+ const budget = budgets[metric];
105
+ if (budget !== null) {
106
+ const observed = observedBudgetValue(metric, sample, previousSample);
107
+ if (observed > budget) {
108
+ return { budget, metric, observed, sample };
109
+ }
110
+ }
111
+ }
112
+ return null;
113
+ }
114
+ function activeCaseIds(state) {
115
+ return Array.from(state.activeCases.values(), function toCaseId(testCase) {
116
+ return testCase.id;
117
+ });
118
+ }
119
+ function resourceExhaustionError(breach, state) {
120
+ const activeCases = activeCaseIds(state);
121
+ const [activeCase = null] = activeCases;
122
+ return {
123
+ attributedTo: activeCases.length === 1 ? activeCase : null,
124
+ cause: {
125
+ ...breach,
126
+ activeCases,
127
+ enforcement: activeCases.length === 0 ? 'post-test-diagnostic' : 'sampled'
128
+ },
129
+ message: `Resource budget exceeded: ${breach.metric} observed ${breach.observed}, budget ${breach.budget}.`,
130
+ subtype: 'resource-exhaustion'
131
+ };
132
+ }
133
+ function crashError(state, reason) {
134
+ const activeCases = activeCaseIds(state);
135
+ const [activeCase = null] = activeCases;
136
+ return {
137
+ attributedTo: activeCases.length === 1 ? activeCase : null,
138
+ cause: { activeCases, reason },
139
+ message: reason,
140
+ subtype: 'crash'
141
+ };
142
+ }
143
+ async function recordReporterEventErrors(event, state, context, dependencies) {
144
+ const errors = await dependencies.reporterDispatcher.reportEvent(context.reporters, event, context.outputRenderer);
145
+ if (errors.length > 0) {
146
+ state.recordRunnerErrors(errors);
147
+ }
148
+ }
149
+ function caseByKey(testPlan) {
150
+ return new Map(testPlan.cases.map(function toEntry(testCase) {
151
+ return [caseIdentityKey(testCase.id), testCase];
152
+ }));
153
+ }
154
+ function applyEvent(event, state, cases) {
155
+ if (event.kind === 'test-start') {
156
+ const testCase = cases.get(caseIdentityKey(event.case));
157
+ if (testCase !== undefined) {
158
+ state.addActiveCase(caseIdentityKey(event.case), testCase);
159
+ }
160
+ }
161
+ else if (event.kind === 'test-end') {
162
+ const key = caseIdentityKey(event.case);
163
+ state.removeActiveCase(key);
164
+ state.recordPerTestResult(key, {
165
+ id: event.case,
166
+ outcome: event.outcome,
167
+ verdict: event.verdict
168
+ });
169
+ }
170
+ else if (event.kind === 'runner-error') {
171
+ state.recordRunnerError(event.error);
172
+ }
173
+ }
174
+ function createPartialRunResult(resolvedRun, state, dependencies, startedAtMs) {
175
+ return createRunResult(resolvedRun.testPlan, state.perTestResults(), state.runnerErrors(), {
176
+ resourceUsage: null,
177
+ startedAtMs,
178
+ wallClock: dependencies.wallClock
179
+ });
180
+ }
181
+ function kill(child) {
182
+ if (child.pid !== undefined && child.exitCode === null && child.signalCode === null) {
183
+ child.kill('SIGKILL');
184
+ }
185
+ }
186
+ function createReporterContext(resolvedRun) {
187
+ return {
188
+ outputRenderer: resolvedRun.config.outputRenderer,
189
+ reporters: resolvedRun.reporters
190
+ };
191
+ }
192
+ function startSupervisedChild(resolvedRun) {
193
+ return fork(childEntryPoint, [], {
194
+ cwd: resolvedRun.cwd,
195
+ stdio: ['inherit', 'inherit', 'inherit', 'ipc']
196
+ });
197
+ }
198
+ function createHardTimeout(runtime) {
199
+ let hardTimeout = null;
200
+ return {
201
+ clear() {
202
+ if (hardTimeout !== null) {
203
+ runtime.dependencies.wallClock.clearTimeout(hardTimeout);
204
+ hardTimeout = null;
205
+ }
206
+ },
207
+ start() {
208
+ if (hardTimeout !== null || runtime.state.activeCases.size === 0) {
209
+ return;
210
+ }
211
+ hardTimeout = runtime.dependencies.wallClock.setTimeout(function killHardTimedOutChild() {
212
+ runtime.terminalFailure.write(true);
213
+ runtime.state.recordRunnerError(crashError(runtime.state, 'Supervised child exceeded hard timeout.'));
214
+ runtime.state.recordTerminalActiveCases('crashed');
215
+ kill(runtime.child);
216
+ }, runtime.resolvedRun.facts.execution.timeoutPolicy.hardMilliseconds);
217
+ }
218
+ };
219
+ }
220
+ function createRunCommand(resolvedRun) {
221
+ return {
222
+ assignedCaseKeys: resolvedRun.testPlan.cases.map(function toCaseKey(testCase) {
223
+ return formatCaseId(testCase.id);
224
+ }),
225
+ cwd: resolvedRun.cwd,
226
+ hardTimeoutMilliseconds: resolvedRun.facts.execution.timeoutPolicy.hardMilliseconds,
227
+ kind: 'run',
228
+ paths: resolvedRun.request.paths,
229
+ resourceBudgets: resolvedRun.facts.execution.resourceUsagePolicy.budgets,
230
+ resourceUsageSamplingIntervalMilliseconds: resolvedRun
231
+ .facts
232
+ .execution
233
+ .resourceUsagePolicy
234
+ .samplingIntervalMilliseconds,
235
+ scheduling: resolvedRun.facts.execution.scheduling,
236
+ timeoutMilliseconds: resolvedRun.facts.execution.timeoutPolicy.softMilliseconds
237
+ };
238
+ }
239
+ function sendRunCommand(runtime) {
240
+ runtime.child.send(createRunCommand(runtime.resolvedRun));
241
+ }
242
+ function handleChildEvent(event, runtime) {
243
+ applyEvent(event, runtime.state, runtime.cases);
244
+ if (event.kind === 'test-start') {
245
+ runtime.timeout.start();
246
+ }
247
+ else if (event.kind === 'test-end' && runtime.state.activeCases.size === 0) {
248
+ runtime.timeout.clear();
249
+ }
250
+ runtime.reporterEvents.add(recordReporterEventErrors(event, runtime.state, runtime.reporterContext, runtime.dependencies));
251
+ }
252
+ function handleResourceBudgetBreach(breach, runtime) {
253
+ runtime.terminalFailure.write(true);
254
+ const error = resourceExhaustionError(breach, runtime.state);
255
+ runtime.state.recordRunnerError(error);
256
+ runtime.reporterEvents.add(recordReporterEventErrors({ error, kind: 'runner-error' }, runtime.state, runtime.reporterContext, runtime.dependencies));
257
+ runtime.state.recordTerminalActiveCases('resource-exhausted');
258
+ runtime.timeout.clear();
259
+ kill(runtime.child);
260
+ }
261
+ function handleChildSample(sample, runtime) {
262
+ if (runtime.terminalFailure.read()) {
263
+ return;
264
+ }
265
+ const breach = findResourceBudgetBreach(runtime.resolvedRun.facts.execution.resourceUsagePolicy.budgets, sample, runtime.previousSample.read());
266
+ runtime.previousSample.write(sample);
267
+ if (breach !== null) {
268
+ handleResourceBudgetBreach(breach, runtime);
269
+ }
270
+ }
271
+ function handleCompletedResult(result, runtime) {
272
+ runtime.completedResult.write({
273
+ ...result,
274
+ runnerErrors: [...runtime.state.runnerErrors(), ...result.runnerErrors]
275
+ });
276
+ }
277
+ function handleChildMessage(message, runtime) {
278
+ if (message.kind === 'event') {
279
+ handleChildEvent(message.event, runtime);
280
+ }
281
+ else if (message.kind === 'sample') {
282
+ handleChildSample(message.sample, runtime);
283
+ }
284
+ else {
285
+ handleCompletedResult(message.result, runtime);
286
+ }
287
+ }
288
+ async function observeChild(runtime) {
289
+ return new Promise(function waitForChild(resolve) {
290
+ runtime.child.on('message', function receiveMessage(message) {
291
+ handleChildMessage(message, runtime);
292
+ });
293
+ runtime.child.on('error', function recordChildError(error) {
294
+ if (!runtime.terminalFailure.read()) {
295
+ runtime.terminalFailure.write(true);
296
+ runtime.state.recordRunnerError(crashError(runtime.state, error.message));
297
+ runtime.state.recordTerminalActiveCases('crashed');
298
+ }
299
+ });
300
+ runtime.child.on('exit', function resolveExit() {
301
+ resolve();
302
+ });
303
+ });
304
+ }
305
+ function selectRunResult(runtime, startedAtMs) {
306
+ const completedResult = runtime.completedResult.read();
307
+ if (completedResult === null) {
308
+ return createPartialRunResult(runtime.resolvedRun, runtime.state, runtime.dependencies, startedAtMs);
309
+ }
310
+ return completedResult;
311
+ }
312
+ async function reportFinalResult(result, runtime) {
313
+ const runEndErrors = await runtime.dependencies.reporterDispatcher.reportEvent(runtime.reporterContext.reporters, { kind: 'run-end', result }, runtime.reporterContext.outputRenderer);
314
+ const resultForFinalReporting = {
315
+ ...result,
316
+ runnerErrors: [...result.runnerErrors, ...runEndErrors]
317
+ };
318
+ const finalReporterErrors = await runtime.dependencies.reporterDispatcher.reportResult(runtime.reporterContext.reporters, resultForFinalReporting, runtime.reporterContext.outputRenderer);
319
+ const disposeErrors = await runtime.dependencies.reporterDispatcher.disposeReporters(runtime.reporterContext.reporters);
320
+ return {
321
+ ...resultForFinalReporting,
322
+ runnerErrors: [...resultForFinalReporting.runnerErrors, ...finalReporterErrors, ...disposeErrors]
323
+ };
324
+ }
325
+ function createRuntime(resolvedRun, dependencies) {
326
+ const runtimeWithoutTimeout = {
327
+ cases: caseByKey(resolvedRun.testPlan),
328
+ child: startSupervisedChild(resolvedRun),
329
+ completedResult: createStoredRunValue(null),
330
+ dependencies,
331
+ previousSample: createStoredRunValue(null),
332
+ reporterContext: createReporterContext(resolvedRun),
333
+ reporterEvents: createReporterEventQueue(),
334
+ resolvedRun,
335
+ state: createSupervisedRunState(),
336
+ terminalFailure: createStoredRunValue(false)
337
+ };
338
+ return {
339
+ ...runtimeWithoutTimeout,
340
+ timeout: createHardTimeout(runtimeWithoutTimeout)
341
+ };
342
+ }
343
+ export async function executeSupervisedRun(resolvedRun, dependencies) {
344
+ const runtime = createRuntime(resolvedRun, dependencies);
345
+ const startedAtMs = dependencies.wallClock.currentTimestampInMilliseconds;
346
+ await recordReporterEventErrors({
347
+ facts: resolvedRun.facts,
348
+ kind: 'run-start',
349
+ root: resolvedRun.testPlan.root,
350
+ startedAt: dependencies.readStartedAt()
351
+ }, runtime.state, runtime.reporterContext, dependencies);
352
+ const childFinished = observeChild(runtime);
353
+ sendRunCommand(runtime);
354
+ await childFinished;
355
+ runtime.timeout.clear();
356
+ await runtime.reporterEvents.wait();
357
+ return reportFinalResult(selectRunResult(runtime, startedAtMs), runtime);
358
+ }
359
+ //# sourceMappingURL=supervised-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervised-run.js","sourceRoot":"","sources":["../../../../source/run/supervised-run.ts"],"names":[],"mappings":"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"}