@overkill-dev/run 0.0.18 → 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 (49) hide show
  1. package/engine/execution-supervision.d.ts.map +1 -1
  2. package/engine/execution-supervision.js +1 -11
  3. package/engine/execution-supervision.js.map +1 -1
  4. package/engine/resource-usage-growth.js +12 -0
  5. package/engine/resource-usage-growth.js.map +1 -0
  6. package/package.json +2 -1
  7. package/packages/run/run.entry-point.d.ts +1 -1
  8. package/packages/run/run.entry-point.d.ts.map +1 -1
  9. package/readme.md +10 -5
  10. package/run/collected-run-plan.js +100 -0
  11. package/run/collected-run-plan.js.map +1 -0
  12. package/run/command-line-runner.js +1 -1
  13. package/run/command-line-runner.js.map +1 -1
  14. package/run/run-config-schema.d.ts +5 -0
  15. package/run/run-config-schema.d.ts.map +1 -1
  16. package/run/run-config-schema.js +1 -0
  17. package/run/run-config-schema.js.map +1 -1
  18. package/run/run-config.d.ts.map +1 -1
  19. package/run/run-config.js +8 -2
  20. package/run/run-config.js.map +1 -1
  21. package/run/run-engine-selection.js +92 -0
  22. package/run/run-engine-selection.js.map +1 -0
  23. package/run/run-facts.js +103 -0
  24. package/run/run-facts.js.map +1 -0
  25. package/run/run-local-test-plan.js +25 -0
  26. package/run/run-local-test-plan.js.map +1 -0
  27. package/run/run-process-engine.js +40 -0
  28. package/run/run-process-engine.js.map +1 -0
  29. package/run/run-support.js +32 -0
  30. package/run/run-support.js.map +1 -1
  31. package/run/run-test-plan.js +20 -0
  32. package/run/run-test-plan.js.map +1 -0
  33. package/run/run-types.d.ts +54 -3
  34. package/run/run-types.d.ts.map +1 -1
  35. package/run/run-types.js.map +1 -1
  36. package/run/run-validation.js +122 -0
  37. package/run/run-validation.js.map +1 -0
  38. package/run/run.js +129 -227
  39. package/run/run.js.map +1 -1
  40. package/run/supervised-child-process.js +8 -8
  41. package/run/supervised-child-process.js.map +1 -1
  42. package/run/supervised-run-resource-policy.js +64 -0
  43. package/run/supervised-run-resource-policy.js.map +1 -0
  44. package/run/supervised-run-runtime.js +257 -0
  45. package/run/supervised-run-runtime.js.map +1 -0
  46. package/run/supervised-run-state.js.map +1 -1
  47. package/run/supervised-run.js +206 -246
  48. package/run/supervised-run.js.map +1 -1
  49. package/sbom.cdx.json +4 -4
package/run/run.js CHANGED
@@ -1,259 +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 { copyResourceBudgets, copyRunConfig, copyRunRequest, createRunRuntimePolicy } from "./run-support.js";
6
- import { executeSupervisedRun } from "./supervised-run.js";
7
- import { invalidRunProfileNameMessage } from "./run-types.js";
8
- const minimumSeedValue = 0n;
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";
9
8
  function currentRunStartTime(dependencies) {
10
9
  const startedAt = new Date(dependencies.wallClock.currentTimestampInMilliseconds);
11
10
  return startedAt.toISOString();
12
11
  }
13
- function validateRunShard(request) {
14
- if (request.shard.index !== 0 || request.shard.total !== 1) {
15
- unsupportedRequest('Sharding is not implemented yet.');
16
- }
17
- }
18
- function validateRunSeed(request) {
19
- if (request.seed.value !== null && request.seed.value < minimumSeedValue) {
20
- invalidRequest('Run seed must be a nonnegative bigint.');
21
- }
22
- }
23
- function validatePositiveSafeInteger(value, label) {
24
- if (value !== null && (!Number.isSafeInteger(value) || value <= 0)) {
25
- invalidRequest(`${label} must be a positive safe integer.`);
26
- }
27
- }
28
- function validateResourceBudgets(resourceBudgets) {
29
- validatePositiveSafeInteger(resourceBudgets.activeResourceCount, 'Active resource count budget');
30
- validatePositiveSafeInteger(resourceBudgets.javaScriptEngineHeapBytes, 'JavaScript engine heap budget');
31
- validatePositiveSafeInteger(resourceBudgets.residentSetBytes, 'Resident set budget');
32
- validatePositiveSafeInteger(resourceBudgets.residentSetGrowthBytesPerSecond, 'Resident set growth budget');
33
- }
34
- function validateSamplingInterval(value) {
35
- validatePositiveSafeInteger(value, 'Resource usage sampling interval');
36
- }
37
- function validateTimeoutPolicy(policy) {
38
- validatePositiveSafeInteger(policy.softMilliseconds, 'Soft timeout');
39
- validatePositiveSafeInteger(policy.hardMilliseconds, 'Hard timeout');
40
- if (policy.softMilliseconds > policy.hardMilliseconds) {
41
- invalidRequest('Soft timeout must not exceed hard timeout.');
42
- }
43
- }
44
- function hasResourceBudgets(resourceBudgets) {
45
- return resourceBudgets.activeResourceCount !== null ||
46
- resourceBudgets.javaScriptEngineHeapBytes !== null ||
47
- resourceBudgets.residentSetBytes !== null ||
48
- resourceBudgets.residentSetGrowthBytesPerSecond !== null;
49
- }
50
- function validateRunResourceUsageRequest(request) {
51
- if (request.resourceBudgetOverrides !== null) {
52
- validateResourceBudgets(request.resourceBudgetOverrides);
53
- }
54
- validateSamplingInterval(request.resourceUsageSamplingIntervalMilliseconds);
55
- if (request.measureResourceUsage === false &&
56
- request.resourceBudgetOverrides !== null &&
57
- hasResourceBudgets(request.resourceBudgetOverrides)) {
58
- invalidRequest('Resource budget overrides require resource usage measurement.');
59
- }
60
- }
61
- function assertValidRunProfileName(profileName) {
62
- const message = invalidRunProfileNameMessage(profileName);
63
- if (message !== null) {
64
- invalidRequest(message);
65
- }
66
- }
67
- function validateRunRequest(request) {
68
- assertValidRunProfileName(request.profile);
69
- validateRunShard(request);
70
- validateRunSeed(request);
71
- validateRunResourceUsageRequest(request);
72
- }
73
- function validateRunResourceUsagePolicy(policy) {
74
- validateResourceBudgets(policy.budgets);
75
- validateSamplingInterval(policy.samplingIntervalMilliseconds);
76
- if (!policy.measure && hasResourceBudgets(policy.budgets)) {
77
- invalidRequest('Resource budgets require resource usage measurement.');
78
- }
79
- }
80
- function validateRunMicrotestProfile(profile) {
81
- validateRunResourceUsagePolicy(profile.resourceUsage);
82
- validateTimeoutPolicy(profile.timeouts);
83
- }
84
- const runProfileValidators = {
85
- microtest: validateRunMicrotestProfile
86
- };
87
- function readProfileTestFamily(profile) {
88
- return profile.testFamily;
89
- }
90
- function isRunTestFamily(value) {
91
- return value === 'microtest';
12
+ function resolveEngineExecutionMode(execution) {
13
+ return execution.scheduling === 'concurrent' ? 'concurrent-in-process' : 'serial-in-process';
92
14
  }
93
- function validateRunProfile(profileName, profile) {
94
- const testFamily = readProfileTestFamily(profile);
95
- if (!isRunTestFamily(testFamily)) {
96
- invalidRequest(`Invalid run profile "${profileName}": testFamily must be "microtest".`);
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);
97
21
  }
98
- runProfileValidators[testFamily](profile);
22
+ return value;
99
23
  }
100
- function validateRunConfig(config) {
101
- for (const [profileName, profile] of Object.entries(config.profiles)) {
102
- assertValidRunProfileName(profileName);
103
- validateRunProfile(profileName, profile);
24
+ function supervisedEngine(command) {
25
+ if (command.engine.kind === 'instance') {
26
+ throw new Error('Instance engines cannot run in supervised children.');
104
27
  }
28
+ return command.engine;
105
29
  }
106
- function resolvedSeed(request, dependencies) {
107
- return request.seed.value ?? dependencies.createSeed();
108
- }
109
- function runCaseFacts(metadata, id) {
30
+ function createSupervisedCommandBase(command, profile) {
31
+ const resourceUsagePolicy = resolveResourceUsagePolicy(command.request, profile);
110
32
  return {
111
- id,
112
- metadata: serializeValue(metadata)
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
113
43
  };
114
44
  }
115
- function disabledResourceBudgets() {
45
+ function createSupervisedCollectCommand(command, profile) {
116
46
  return {
117
- activeResourceCount: null,
118
- javaScriptEngineHeapBytes: null,
119
- residentSetBytes: null,
120
- residentSetGrowthBytesPerSecond: null
47
+ ...createSupervisedCommandBase(command, profile),
48
+ kind: 'collect'
121
49
  };
122
50
  }
123
- function readBudgetOverride(configValue, requestValue) {
124
- return requestValue ?? configValue;
125
- }
126
- function resolveResourceBudgets(configBudgets, requestOverrides) {
127
- if (requestOverrides === null) {
128
- return copyResourceBudgets(configBudgets);
129
- }
51
+ function createSupervisedRunCommand(command, profile) {
130
52
  return {
131
- activeResourceCount: readBudgetOverride(configBudgets.activeResourceCount, requestOverrides.activeResourceCount),
132
- javaScriptEngineHeapBytes: readBudgetOverride(configBudgets.javaScriptEngineHeapBytes, requestOverrides.javaScriptEngineHeapBytes),
133
- residentSetBytes: readBudgetOverride(configBudgets.residentSetBytes, requestOverrides.residentSetBytes),
134
- residentSetGrowthBytesPerSecond: readBudgetOverride(configBudgets.residentSetGrowthBytesPerSecond, requestOverrides.residentSetGrowthBytesPerSecond)
53
+ ...createSupervisedCommandBase(command, profile),
54
+ kind: 'run'
135
55
  };
136
56
  }
137
- function assertResourceBudgetOverridesAllowed(measureResourceUsage, requestOverrides) {
138
- if (!measureResourceUsage && requestOverrides !== null && hasResourceBudgets(requestOverrides)) {
139
- invalidRequest('Resource budget overrides require resource usage measurement.');
140
- }
141
- }
142
- function selectedProfile(request, config) {
143
- const profile = config.profiles[request.profile];
144
- if (profile === undefined) {
145
- invalidRequest(`Unknown run profile: ${request.profile}`);
146
- }
147
- return profile;
148
- }
149
- function assertSupportedProcessEngine(command, profile) {
150
- if (profile.execution.processModel === 'supervised-process' && command.engine !== null) {
151
- invalidRequest([
152
- 'Custom engines are not supported with supervised-process execution yet.',
153
- 'Use in-process execution or the default engine.'
154
- ]
155
- .join(' '));
156
- }
157
- }
158
- function resolveEngineExecutionMode(execution) {
159
- return execution.scheduling === 'concurrent' ? 'concurrent-in-process' : 'serial-in-process';
160
- }
161
- function resolveResourceUsagePolicy(request, profile) {
162
- const configuredPolicy = profile.resourceUsage;
163
- const measureResourceUsage = request.measureResourceUsage ?? configuredPolicy.measure;
164
- const resourceUsageSamplingIntervalMilliseconds = request.resourceUsageSamplingIntervalMilliseconds ??
165
- configuredPolicy.samplingIntervalMilliseconds;
166
- const resourceBudgets = measureResourceUsage
167
- ? resolveResourceBudgets(configuredPolicy.budgets, request.resourceBudgetOverrides)
168
- : disabledResourceBudgets();
169
- assertResourceBudgetOverridesAllowed(measureResourceUsage, request.resourceBudgetOverrides);
170
- return {
171
- budgets: resourceBudgets,
172
- measure: measureResourceUsage,
173
- samplingIntervalMilliseconds: resourceUsageSamplingIntervalMilliseconds
174
- };
175
- }
176
- function createRunFacts(testPlan, request, config, dependencies) {
177
- const profile = selectedProfile(request, config);
178
- return {
179
- cases: testPlan.cases.map(function toRunCaseFacts(testCase) {
180
- return runCaseFacts(testCase.metadata, testCase.id);
181
- }),
182
- environment: {
183
- node: {
184
- arch: dependencies.node.arch,
185
- platform: dependencies.node.platform,
186
- version: dependencies.node.version
187
- },
188
- runtimeStateDir: config.runtimeStateDir
189
- },
190
- execution: {
191
- baselineUpdateMode: request.baselineUpdateMode,
192
- capture: request.capture,
193
- debug: request.debug,
194
- order: request.order,
195
- processModel: profile.execution.processModel,
196
- profile: request.profile,
197
- resourceUsagePolicy: resolveResourceUsagePolicy(request, profile),
198
- scheduling: profile.execution.scheduling,
199
- testFamily: profile.testFamily,
200
- timeoutPolicy: profile.timeouts,
201
- verbose: request.verbose
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
65
+ }));
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'
202
75
  },
203
- loader: config.loader,
204
- reproducibility: {
205
- seed: resolvedSeed(request, dependencies).toString(),
206
- shard: request.shard
207
- }
208
- };
209
- }
210
- function freezeValue(value) {
211
- if (value !== null && typeof value === 'object') {
212
- for (const propertyValue of Object.values(value)) {
213
- freezeValue(propertyValue);
214
- }
215
- Object.freeze(value);
216
- }
217
- return value;
218
- }
219
- function resolveRunEngine(command, dependencies) {
220
- return command.engine ?? dependencies.defaultEngine;
76
+ reporters: input.profile.reporters ?? input.config.reporters,
77
+ request: input.request
78
+ });
221
79
  }
222
- async function createTestPlan(command, dependencies) {
223
- const engine = resolveRunEngine(command, dependencies);
224
- const files = await discoverRunFiles({ cwd: command.cwd, paths: command.request.paths });
225
- const testFiles = await loadRunTestModules(files, engine);
226
- try {
227
- return engine.createTestPlanFromTestFiles({
228
- files: testFiles,
229
- root: {
230
- metadata: {},
231
- name: command.cwd
232
- }
233
- });
234
- }
235
- catch (error) {
236
- throw new RunCollectionError('Failed to collect tests from explicit run inputs.', { cause: error }, 'loader');
237
- }
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
+ });
238
90
  }
239
- async function createResolvedRun(command, dependencies) {
240
- validateRunRequest(command.request);
241
- validateRunConfig(command.config);
91
+ async function readResolvedRunInput(command) {
92
+ await validateRunInput(command);
242
93
  const request = freezeValue(copyRunRequest(command.request));
243
94
  const config = freezeValue(copyRunConfig(command.config));
244
95
  const profile = selectedProfile(request, config);
245
96
  assertSupportedProcessEngine(command, profile);
246
- const testPlan = await createTestPlan(command, dependencies);
247
- const facts = freezeValue(createRunFacts(testPlan, request, config, dependencies));
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
+ }));
248
113
  return freezeValue({
249
- config,
114
+ collectionRunnerErrors: [],
115
+ config: input.config,
250
116
  cwd: command.cwd,
117
+ engine: input.engine,
251
118
  facts,
252
- reporters: profile.reporters ?? config.reporters,
253
- request,
254
- testPlan
119
+ plan: {
120
+ kind: 'local',
121
+ testPlan
122
+ },
123
+ reporters: input.profile.reporters ?? input.config.reporters,
124
+ request: input.request
255
125
  });
256
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
+ }
257
134
  function assertRunnableResourceUsagePolicy(policy) {
258
135
  validateRunResourceUsagePolicy(policy);
259
136
  }
@@ -329,6 +206,24 @@ async function createResolvedRunResult(command, dependencies, runtimePolicy) {
329
206
  throw error;
330
207
  }
331
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
+ }
332
227
  async function executeResolvedRun(resolvedRun, dependencies, runtimePolicy) {
333
228
  const { resourceUsagePolicy } = resolvedRun.facts.execution;
334
229
  assertRunnableResourceUsagePolicy(resourceUsagePolicy);
@@ -336,7 +231,10 @@ async function executeResolvedRun(resolvedRun, dependencies, runtimePolicy) {
336
231
  const result = await executeSupervisedRun(resolvedRun, dependencies);
337
232
  return addRunnerErrors(result, runtimePolicy?.takeRunErrors() ?? []);
338
233
  }
339
- return await dependencies.execute(resolvedRun.testPlan, {
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, {
340
238
  execution: { mode: resolveEngineExecutionMode(resolvedRun.facts.execution) },
341
239
  outputRenderer: resolvedRun.config.outputRenderer,
342
240
  reporters: resolvedRun.reporters,
@@ -358,6 +256,10 @@ export function createRunOrchestrator(dependencies) {
358
256
  },
359
257
  async run(command) {
360
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
+ }
361
263
  const resolvedRun = await createResolvedRunResult(command, dependencies, runtimePolicy);
362
264
  if (isRunResult(resolvedRun)) {
363
265
  return resolvedRun;
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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"}
@@ -15,17 +15,17 @@ function sanitizedChildEnvironment(environmentVariables) {
15
15
  delete environment.NODE_UNIQUE_ID;
16
16
  return environment;
17
17
  }
18
- async function readPermissionRoots(resolvedRun) {
18
+ async function readPermissionRoots(options) {
19
19
  return Array.from(new Set([
20
- await realpath(resolvedRun.cwd),
20
+ await realpath(options.cwd),
21
21
  await realpath(childRuntimeRoot)
22
22
  ]));
23
23
  }
24
- async function supervisedChildExecArgv(resolvedRun) {
25
- if (resolvedRun.request.capabilityRestrictions.mode === 'disabled') {
24
+ async function supervisedChildExecArgv(options) {
25
+ if (options.capabilityRestrictions.mode === 'disabled') {
26
26
  return [];
27
27
  }
28
- const permissionRoots = await readPermissionRoots(resolvedRun);
28
+ const permissionRoots = await readPermissionRoots(options);
29
29
  return [
30
30
  '--permission',
31
31
  '--trace-env',
@@ -35,11 +35,11 @@ async function supervisedChildExecArgv(resolvedRun) {
35
35
  })
36
36
  ];
37
37
  }
38
- export async function startSupervisedChild(resolvedRun, dependencies) {
38
+ export async function startSupervisedChild(options, dependencies) {
39
39
  return fork(childEntryPoint, [], {
40
- cwd: resolvedRun.cwd,
40
+ cwd: options.cwd,
41
41
  env: sanitizedChildEnvironment(dependencies.runtimeCapabilityPolicy.readEnvironment()),
42
- execArgv: await supervisedChildExecArgv(resolvedRun),
42
+ execArgv: await supervisedChildExecArgv(options),
43
43
  stdio: ['ignore', 'pipe', 'pipe', 'ipc']
44
44
  });
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"supervised-child-process.js","sourceRoot":"","sources":["../../../../source/run/supervised-child-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supervised-child-process.js","sourceRoot":"","sources":["../../../../source/run/supervised-child-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { observedGrowthBytesPerSecond } from "../engine/resource-usage-growth.js";
2
+ const resourceBudgetMetrics = [
3
+ 'activeResourceCount',
4
+ 'javaScriptEngineHeapBytes',
5
+ 'residentSetBytes',
6
+ 'residentSetGrowthBytesPerSecond'
7
+ ];
8
+ const budgetValueReaders = {
9
+ activeResourceCount(sample) {
10
+ return sample.activeResourceCount;
11
+ },
12
+ javaScriptEngineHeapBytes(sample) {
13
+ return sample.javaScriptEngineHeapBytes;
14
+ },
15
+ residentSetBytes(sample) {
16
+ return sample.residentSetBytes;
17
+ },
18
+ residentSetGrowthBytesPerSecond: observedGrowthBytesPerSecond
19
+ };
20
+ function observedBudgetValue(metric, sample, previousSample) {
21
+ return budgetValueReaders[metric](sample, previousSample);
22
+ }
23
+ export function findResourceBudgetBreach(budgets, sample, previousSample) {
24
+ for (const metric of resourceBudgetMetrics) {
25
+ const budget = budgets[metric];
26
+ if (budget !== null) {
27
+ const observed = observedBudgetValue(metric, sample, previousSample);
28
+ if (observed > budget) {
29
+ return { budget, metric, observed, sample };
30
+ }
31
+ }
32
+ }
33
+ return null;
34
+ }
35
+ function activeCaseIds(state) {
36
+ return Array.from(state.activeCases.values(), function toCaseId(testCase) {
37
+ return testCase.id;
38
+ });
39
+ }
40
+ export function resourceExhaustionError(breach, state) {
41
+ const activeCases = activeCaseIds(state);
42
+ const [activeCase = null] = activeCases;
43
+ return {
44
+ attributedTo: activeCases.length === 1 ? activeCase : null,
45
+ cause: {
46
+ ...breach,
47
+ activeCases,
48
+ enforcement: activeCases.length === 0 ? 'post-test-diagnostic' : 'sampled'
49
+ },
50
+ message: `Resource budget exceeded: ${breach.metric} observed ${breach.observed}, budget ${breach.budget}.`,
51
+ subtype: 'resource-exhaustion'
52
+ };
53
+ }
54
+ export function crashError(state, reason) {
55
+ const activeCases = activeCaseIds(state);
56
+ const [activeCase = null] = activeCases;
57
+ return {
58
+ attributedTo: activeCases.length === 1 ? activeCase : null,
59
+ cause: { activeCases, reason },
60
+ message: reason,
61
+ subtype: 'crash'
62
+ };
63
+ }
64
+ //# sourceMappingURL=supervised-run-resource-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervised-run-resource-policy.js","sourceRoot":"","sources":["../../../../source/run/supervised-run-resource-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAsBlF,MAAM,qBAAqB,GAAoC;IAC3D,qBAAqB;IACrB,2BAA2B;IAC3B,kBAAkB;IAClB,iCAAiC;CACpC,CAAC;AAEF,MAAM,kBAAkB,GAA8D;IAClF,mBAAmB,CAAC,MAAM;QACtB,OAAO,MAAM,CAAC,mBAAmB,CAAC;IACtC,CAAC;IACD,yBAAyB,CAAC,MAAM;QAC5B,OAAO,MAAM,CAAC,yBAAyB,CAAC;IAC5C,CAAC;IACD,gBAAgB,CAAC,MAAM;QACnB,OAAO,MAAM,CAAC,gBAAgB,CAAC;IACnC,CAAC;IACD,+BAA+B,EAAE,4BAA4B;CAChE,CAAC;AAEF,SAAS,mBAAmB,CACxB,MAA4B,EAC5B,MAA6B,EAC7B,cAA4C;IAE5C,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,OAA2B,EAC3B,MAA6B,EAC7B,cAA4C;IAE5C,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YAErE,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC;gBACpB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,QAAQ,CAAC,QAAQ;QACpE,OAAO,QAAQ,CAAC,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA4B,EAAE,KAAyB;IAC3F,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAE,UAAU,GAAG,IAAI,CAAE,GAAG,WAAW,CAAC;IAE1C,OAAO;QACH,YAAY,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC1D,KAAK,EAAE;YACH,GAAG,MAAM;YACT,WAAW;YACX,WAAW,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;SAC7E;QACD,OAAO,EAAE,6BAA6B,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,MAAM,GAAG;QAC3G,OAAO,EAAE,qBAAqB;KACjC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAyB,EAAE,MAAc;IAChE,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAE,UAAU,GAAG,IAAI,CAAE,GAAG,WAAW,CAAC;IAE1C,OAAO;QACH,YAAY,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC1D,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;QAC9B,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,OAAO;KACnB,CAAC;AACN,CAAC"}