@overkill-dev/run 0.0.41 → 0.0.43

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 (140) hide show
  1. package/assertion-protocol/source-location-forwarding.d.ts +4 -0
  2. package/assertion-protocol/source-location-forwarding.d.ts.map +1 -0
  3. package/engine/case-execution.d.ts +1 -0
  4. package/engine/case-execution.d.ts.map +1 -1
  5. package/engine/case-execution.js +112 -27
  6. package/engine/case-execution.js.map +1 -1
  7. package/engine/execution-async-leak-policy.d.ts.map +1 -1
  8. package/engine/execution-async-leak-policy.js +1 -0
  9. package/engine/execution-async-leak-policy.js.map +1 -1
  10. package/engine/execution-supervision.d.ts +1 -0
  11. package/engine/execution-supervision.d.ts.map +1 -1
  12. package/engine/execution-supervision.js +8 -1
  13. package/engine/execution-supervision.js.map +1 -1
  14. package/engine/execution.d.ts.map +1 -1
  15. package/engine/execution.js +37 -4
  16. package/engine/execution.js.map +1 -1
  17. package/engine/run-result.d.ts +11 -0
  18. package/engine/run-result.d.ts.map +1 -1
  19. package/engine/run-result.js +32 -0
  20. package/engine/run-result.js.map +1 -1
  21. package/engine/test-body-resource-attachment.d.ts +36 -0
  22. package/engine/test-body-resource-attachment.d.ts.map +1 -0
  23. package/engine/test-body-resource-attachment.js +81 -5
  24. package/engine/test-body-resource-attachment.js.map +1 -1
  25. package/engine/test-plan.d.ts +2 -0
  26. package/engine/test-plan.d.ts.map +1 -1
  27. package/engine/test-plan.js +9 -0
  28. package/engine/test-plan.js.map +1 -1
  29. package/package.json +5 -3
  30. package/packages/engine/engine.entry-point.d.ts +54 -0
  31. package/packages/engine/engine.entry-point.d.ts.map +1 -0
  32. package/packages/engine/engine.entry-point.js +2 -1
  33. package/packages/engine/engine.entry-point.js.map +1 -1
  34. package/packages/run/command-line.entry-point.d.ts.map +1 -1
  35. package/packages/run/command-line.entry-point.js +3 -2
  36. package/packages/run/command-line.entry-point.js.map +1 -1
  37. package/packages/run/run.entry-point.d.ts +1 -1
  38. package/packages/run/run.entry-point.d.ts.map +1 -1
  39. package/readme.md +19 -7
  40. package/run/child-process-protocol.js +30 -0
  41. package/run/child-process-protocol.js.map +1 -0
  42. package/run/child-process-roles.js +13 -0
  43. package/run/child-process-roles.js.map +1 -0
  44. package/run/child-process.entry-point.js +15 -0
  45. package/run/child-process.entry-point.js.map +1 -0
  46. package/run/collected-run-plan.js +1 -0
  47. package/run/collected-run-plan.js.map +1 -1
  48. package/run/current-process-run-orchestrator.d.ts +1 -0
  49. package/run/current-process-run-orchestrator.d.ts.map +1 -1
  50. package/run/current-process-run-orchestrator.js +1 -0
  51. package/run/current-process-run-orchestrator.js.map +1 -1
  52. package/run/node-command-line-runner.d.ts +2 -0
  53. package/run/node-command-line-runner.d.ts.map +1 -1
  54. package/run/node-command-line-runner.js +2 -1
  55. package/run/node-command-line-runner.js.map +1 -1
  56. package/run/node-worker-pool-factory.js +13 -0
  57. package/run/node-worker-pool-factory.js.map +1 -0
  58. package/run/resource-usage.d.ts +3 -1
  59. package/run/resource-usage.d.ts.map +1 -1
  60. package/run/resource-usage.js +2 -2
  61. package/run/resource-usage.js.map +1 -1
  62. package/run/run-collected-resolution.js +18 -2
  63. package/run/run-collected-resolution.js.map +1 -1
  64. package/run/run-config-schema.d.ts +45 -162
  65. package/run/run-config-schema.d.ts.map +1 -1
  66. package/run/run-config-schema.js +26 -0
  67. package/run/run-config-schema.js.map +1 -1
  68. package/run/run-config.d.ts +29 -14
  69. package/run/run-config.d.ts.map +1 -1
  70. package/run/run-config.js +20 -10
  71. package/run/run-config.js.map +1 -1
  72. package/run/run-facts.js +4 -0
  73. package/run/run-facts.js.map +1 -1
  74. package/run/run-host-process.js +86 -0
  75. package/run/run-host-process.js.map +1 -0
  76. package/run/run-if-main-facts.js +1 -0
  77. package/run/run-if-main-facts.js.map +1 -1
  78. package/run/run-isolated-command.js +7 -1
  79. package/run/run-isolated-command.js.map +1 -1
  80. package/run/run-local-resolution.js +3 -2
  81. package/run/run-local-resolution.js.map +1 -1
  82. package/run/run-orchestrator-dependencies.d.ts +20 -6
  83. package/run/run-orchestrator-dependencies.d.ts.map +1 -1
  84. package/run/run-orchestrator.d.ts +3 -3
  85. package/run/run-orchestrator.d.ts.map +1 -1
  86. package/run/run-orchestrator.entry-point.d.ts +1 -0
  87. package/run/run-orchestrator.entry-point.d.ts.map +1 -1
  88. package/run/run-orchestrator.entry-point.js +47 -40
  89. package/run/run-orchestrator.entry-point.js.map +1 -1
  90. package/run/run-orchestrator.js +7 -2
  91. package/run/run-orchestrator.js.map +1 -1
  92. package/run/run-selection.js +17 -10
  93. package/run/run-selection.js.map +1 -1
  94. package/run/run-support.js +30 -0
  95. package/run/run-support.js.map +1 -1
  96. package/run/run-types.d.ts +120 -0
  97. package/run/run-types.d.ts.map +1 -1
  98. package/run/run-types.js.map +1 -1
  99. package/run/run-validation.js +4 -0
  100. package/run/run-validation.js.map +1 -1
  101. package/run/supervised-child-process.d.ts +3 -3
  102. package/run/supervised-child-process.d.ts.map +1 -1
  103. package/run/supervised-child-process.js +4 -4
  104. package/run/supervised-child-process.js.map +1 -1
  105. package/run/supervised-child.entry-point.js +14 -7
  106. package/run/supervised-child.entry-point.js.map +1 -1
  107. package/run/supervised-protocol.js +9 -0
  108. package/run/supervised-protocol.js.map +1 -0
  109. package/run/supervised-run-runtime.js +8 -4
  110. package/run/supervised-run-runtime.js.map +1 -1
  111. package/run/supervised-run.js +17 -6
  112. package/run/supervised-run.js.map +1 -1
  113. package/run/tinypool-node-compatibility.js.map +1 -1
  114. package/run/work-distribution-config.js +81 -0
  115. package/run/work-distribution-config.js.map +1 -0
  116. package/run/work-unit-planning.js +212 -0
  117. package/run/work-unit-planning.js.map +1 -0
  118. package/run/worker-pool-collection.js +18 -6
  119. package/run/worker-pool-collection.js.map +1 -1
  120. package/run/worker-pool-execution.js +58 -29
  121. package/run/worker-pool-execution.js.map +1 -1
  122. package/run/worker-pool-host-process.js +328 -0
  123. package/run/worker-pool-host-process.js.map +1 -0
  124. package/run/worker-pool-host-protocol.js +50 -0
  125. package/run/worker-pool-host-protocol.js.map +1 -0
  126. package/run/worker-pool-host.entry-point.js +164 -0
  127. package/run/worker-pool-host.entry-point.js.map +1 -0
  128. package/run/worker-pool-run.js +38 -11
  129. package/run/worker-pool-run.js.map +1 -1
  130. package/run/worker-pool-runtime.js +38 -35
  131. package/run/worker-pool-runtime.js.map +1 -1
  132. package/run/worker-pool-worker-plan.js +5 -0
  133. package/run/worker-pool-worker-plan.js.map +1 -1
  134. package/run/worker-pool-worker.js +3 -3
  135. package/run/worker-pool-worker.js.map +1 -1
  136. package/sbom.cdx.json +4 -4
  137. package/run/supervised-child-process.entry-point.js +0 -6
  138. package/run/supervised-child-process.entry-point.js.map +0 -1
  139. package/run/supervised-protocol.d.ts +0 -49
  140. package/run/supervised-protocol.d.ts.map +0 -1
@@ -0,0 +1,212 @@
1
+ import { createCaseId, caseIdentityKey } from "../engine/identity.js";
2
+ import { collectedRunCaseEntries } from "./collected-run-plan.js";
3
+ import { invalidRequest } from "./run-errors.js";
4
+ import { orderedRunItems } from "./run-selection.js";
5
+ const maximumWorkerCount = 8;
6
+ function suiteTitles(suitePath) {
7
+ return suitePath.map(function toTitle(entry) {
8
+ return entry.title;
9
+ });
10
+ }
11
+ function workId(file, testCase) {
12
+ return {
13
+ case: createCaseId(file, suiteTitles(testCase.suitePath), testCase.title, testCase.params),
14
+ runtime: null,
15
+ workload: null
16
+ };
17
+ }
18
+ function fileWorkUnitId(file) {
19
+ return {
20
+ key: file,
21
+ mode: 'file',
22
+ runtime: null,
23
+ workload: null
24
+ };
25
+ }
26
+ function caseWorkUnitId(work) {
27
+ return {
28
+ key: caseIdentityKey(work.case),
29
+ mode: 'case',
30
+ runtime: work.runtime,
31
+ workload: work.workload
32
+ };
33
+ }
34
+ function groupWorkUnitId(group) {
35
+ return {
36
+ key: group.name,
37
+ mode: 'group',
38
+ runtime: null,
39
+ workload: null
40
+ };
41
+ }
42
+ function workFromCases(file) {
43
+ return file.cases.map(function toWork(testCase) {
44
+ return workId(file.file, testCase);
45
+ });
46
+ }
47
+ function nonEmptyWork(work) {
48
+ const firstWork = work[0];
49
+ return firstWork === undefined ? null : [firstWork, ...work.slice(1)];
50
+ }
51
+ function fileWorkUnit(file) {
52
+ const work = nonEmptyWork(workFromCases(file));
53
+ return work === null
54
+ ? null
55
+ : {
56
+ group: null,
57
+ id: fileWorkUnitId(file.file),
58
+ work
59
+ };
60
+ }
61
+ function caseWorkUnit(work) {
62
+ return {
63
+ group: null,
64
+ id: caseWorkUnitId(work),
65
+ work: [work]
66
+ };
67
+ }
68
+ function fileWorkUnitsFromCollectedPlan(plan) {
69
+ return plan.files.flatMap(function toWorkUnit(file) {
70
+ const unit = fileWorkUnit(file);
71
+ return unit === null ? [] : [unit];
72
+ });
73
+ }
74
+ function caseWorkUnitsFromCollectedPlan(plan) {
75
+ return plan.files.flatMap(function toWorkUnits(file) {
76
+ return workFromCases(file).map(caseWorkUnit);
77
+ });
78
+ }
79
+ function filesWithCases(plan) {
80
+ return plan.files.filter(function hasCollectedCases(file) {
81
+ return file.cases.length > 0;
82
+ });
83
+ }
84
+ function selectedFileSets(plan, fileSetForFile) {
85
+ const fileSets = new Map();
86
+ for (const file of filesWithCases(plan)) {
87
+ const fileSet = fileSetForFile(file.file);
88
+ if (fileSet === null) {
89
+ invalidRequest(`Grouped work distribution requires a file set for "${file.file}".`);
90
+ }
91
+ fileSets.set(file.file, fileSet);
92
+ }
93
+ return fileSets;
94
+ }
95
+ function assignedGroupFileSets(distribution) {
96
+ return new Set(distribution.groups.flatMap(function toFileSets(group) {
97
+ return group.fileSets;
98
+ }));
99
+ }
100
+ function assertNoUnmatchedSelectedFileSets(plan, distribution, fileSetForFile) {
101
+ const fileSets = selectedFileSets(plan, fileSetForFile);
102
+ const assignedFileSets = assignedGroupFileSets(distribution);
103
+ for (const [file, fileSet] of fileSets) {
104
+ if (!assignedFileSets.has(fileSet)) {
105
+ invalidRequest(`Grouped work distribution has no group for file set "${fileSet}" selected by "${file}".`);
106
+ }
107
+ }
108
+ return fileSets;
109
+ }
110
+ function groupedFiles(plan, group, fileSets) {
111
+ const groupFileSets = new Set(group.fileSets);
112
+ return plan.files.filter(function fileBelongsToGroup(file) {
113
+ const fileSet = fileSets.get(file.file);
114
+ return fileSet !== undefined && groupFileSets.has(fileSet);
115
+ });
116
+ }
117
+ function groupWorkUnit(plan, group, fileSets) {
118
+ const work = nonEmptyWork(groupedFiles(plan, group, fileSets).flatMap(workFromCases));
119
+ return work === null
120
+ ? null
121
+ : {
122
+ group: group.name,
123
+ id: groupWorkUnitId(group),
124
+ work
125
+ };
126
+ }
127
+ function groupWorkUnitsFromCollectedPlan(plan, distribution, fileSetForFile) {
128
+ const fileSets = assertNoUnmatchedSelectedFileSets(plan, distribution, fileSetForFile);
129
+ return distribution.groups.flatMap(function toGroupUnit(group) {
130
+ const unit = groupWorkUnit(plan, group, fileSets);
131
+ return unit === null ? [] : [unit];
132
+ });
133
+ }
134
+ export function workUnitsFromCollectedPlan(plan, distribution = { mode: 'file' }, fileSetForFile = function noFileSet() {
135
+ return null;
136
+ }) {
137
+ if (distribution.mode === 'case') {
138
+ return caseWorkUnitsFromCollectedPlan(plan);
139
+ }
140
+ if (distribution.mode === 'group') {
141
+ return groupWorkUnitsFromCollectedPlan(plan, distribution, fileSetForFile);
142
+ }
143
+ return fileWorkUnitsFromCollectedPlan(plan);
144
+ }
145
+ function defaultWorkerCount(availableParallelism, unitCount) {
146
+ if (!Number.isSafeInteger(availableParallelism) || availableParallelism <= 0) {
147
+ invalidRequest('Available parallelism must be a positive safe integer.');
148
+ }
149
+ if (unitCount === 0) {
150
+ return 0;
151
+ }
152
+ return Math.min(Math.max(availableParallelism - 1, 1), maximumWorkerCount, unitCount);
153
+ }
154
+ function placementLane(index) {
155
+ const id = `worker-${index + 1}`;
156
+ return {
157
+ executor: {
158
+ capabilities: [],
159
+ capacity: 1,
160
+ id,
161
+ kind: 'local-worker'
162
+ },
163
+ id
164
+ };
165
+ }
166
+ function placementLanes(workerCount) {
167
+ return Array.from({ length: workerCount }, function toLane(_value, index) {
168
+ return placementLane(index);
169
+ });
170
+ }
171
+ function assignedLane(lanes, unitIndex) {
172
+ const lane = lanes[unitIndex % lanes.length];
173
+ if (lane === undefined) {
174
+ throw new Error('Worker-pool placement requires at least one lane.');
175
+ }
176
+ return lane;
177
+ }
178
+ function placementAssignments(units, lanes) {
179
+ return units.map(function toAssignment(unit, index) {
180
+ return {
181
+ lane: assignedLane(lanes, index).id,
182
+ unit: unit.id
183
+ };
184
+ });
185
+ }
186
+ export function createWorkerPoolPlacementPlan(input) {
187
+ const units = orderedRunItems(workUnitsFromCollectedPlan(input.selectedPlan, input.workDistribution, input.fileSetForFile), input.order, input.seed);
188
+ const lanes = placementLanes(defaultWorkerCount(input.availableParallelism, units.length));
189
+ return {
190
+ assignments: placementAssignments(units, lanes),
191
+ lanes,
192
+ units
193
+ };
194
+ }
195
+ function collectedEntriesByCaseKey(collectedPlan) {
196
+ return new Map(collectedRunCaseEntries(collectedPlan).map(function toEntry(entry) {
197
+ return [caseIdentityKey(entry.id), entry];
198
+ }));
199
+ }
200
+ export function collectedRunCaseEntriesFromWorkUnits(collectedPlan, units) {
201
+ const entries = collectedEntriesByCaseKey(collectedPlan);
202
+ return units.flatMap(function toRunCaseEntries(unit) {
203
+ return unit.work.map(function toRunCaseEntry(work) {
204
+ const entry = entries.get(caseIdentityKey(work.case));
205
+ if (entry === undefined) {
206
+ throw new Error('Placement plan referenced an unknown collected case.');
207
+ }
208
+ return entry;
209
+ });
210
+ });
211
+ }
212
+ //# sourceMappingURL=work-unit-planning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-unit-planning.js","sourceRoot":"","sources":["../../../../source/run/work-unit-planning.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { MessageChannel as NodeMessageChannel } from 'node:worker_threads';
2
2
  import { RunCollectionError } from "./run-errors.js";
3
3
  import { createStoredRunValue } from "./supervised-run-state.js";
4
- import { createPool } from "./worker-pool-runtime.js";
5
4
  function portTransferList(port) {
6
5
  return [port];
7
6
  }
@@ -52,15 +51,25 @@ function observeCollectionOutput(port, runState) {
52
51
  recordCollectionOutput(message, runState);
53
52
  });
54
53
  }
55
- function createCollectionRuntime(command, dependencies, runState) {
54
+ function createCollectionRuntime(command, dependencies, runState, createdPool) {
56
55
  const { port1, port2 } = new NodeMessageChannel();
57
56
  const controller = new AbortController();
58
57
  const terminalFailure = createStoredRunValue(false);
59
58
  const timeout = startCollectionTimeout({ command, controller, dependencies, runState, terminalFailure });
60
59
  observeCollectionOutput(port2, runState);
60
+ const pool = createdPool ?? dependencies.createWorkerPool({
61
+ cwd: command.cwd,
62
+ hostProcess: command.hostProcess,
63
+ workerCount: 1,
64
+ workerLifecycle: 'fresh-worker-per-unit'
65
+ });
66
+ pool.setHostOutputSink?.(function recordHostOutput(stream, chunk) {
67
+ runState.recordCapturedOutput(stream, chunk, dependencies.wallClock.currentTimestampInMilliseconds);
68
+ });
61
69
  return {
62
70
  controller,
63
- pool: createPool({ workerCount: 1, workerLifecycle: 'fresh-worker-per-unit' }),
71
+ destroyPool: createdPool === null,
72
+ pool,
64
73
  port1,
65
74
  port2,
66
75
  terminalFailure,
@@ -79,8 +88,8 @@ function completeCollection(collection, runtime, runState) {
79
88
  }
80
89
  return collectionResult(collection, runState);
81
90
  }
82
- export async function collectInWorkerPool(command, dependencies, runState) {
83
- const runtime = createCollectionRuntime(command, dependencies, runState);
91
+ export async function collectInWorkerPool(command, dependencies, runState, createdPool = null) {
92
+ const runtime = createCollectionRuntime(command, dependencies, runState, createdPool);
84
93
  try {
85
94
  return completeCollection(await runCollectionTask(runtime.pool, command, runtime.port1, runtime.controller), runtime, runState);
86
95
  }
@@ -90,7 +99,10 @@ export async function collectInWorkerPool(command, dependencies, runState) {
90
99
  finally {
91
100
  dependencies.wallClock.clearTimeout(runtime.timeout);
92
101
  runtime.port2.close();
93
- await runtime.pool.destroy();
102
+ runtime.pool.setHostOutputSink?.(null);
103
+ if (runtime.destroyPool) {
104
+ await runtime.pool.destroy();
105
+ }
94
106
  }
95
107
  }
96
108
  //# sourceMappingURL=worker-pool-collection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-pool-collection.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-pool-collection.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-collection.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,16 @@
1
1
  import { MessageChannel as NodeMessageChannel } from 'node:worker_threads';
2
2
  import { caseIdentityKey } from "../engine/identity.js";
3
- import { collectedRunCaseEntries } from "./collected-run-plan.js";
4
3
  import { applyEvent } from "./supervised-run-runtime.js";
5
4
  import { createStoredRunValue, createSupervisedRunState } from "./supervised-run-state.js";
6
5
  import { crashError, findResourceBudgetBreach, resourceExhaustionError } from "./supervised-run-resource-policy.js";
7
- import { runStartTimeFromMilliseconds } from "./worker-pool-runtime.js";
6
+ import { runStartTimeFromMilliseconds, workerPoolExecutionFacts } from "./worker-pool-runtime.js";
8
7
  const maximumCrashCount = 3;
9
8
  function portTransferList(port) {
10
9
  return [port];
11
10
  }
12
- function casesByKey(assignedCases) {
13
- return new Map(assignedCases.map(function toCaseEntry(id) {
14
- return [caseIdentityKey(id), { capture: null, id }];
11
+ function casesByKey(unit) {
12
+ return new Map(unit.work.map(function toCaseEntry(work) {
13
+ return [caseIdentityKey(work.case), { capture: null, id: work.case }];
15
14
  }));
16
15
  }
17
16
  async function recordReporterEventErrors(event, runtime) {
@@ -34,7 +33,7 @@ function startTaskTimeout(taskRun, runtime) {
34
33
  taskRun.timeout.write(runtime.dependencies.wallClock.setTimeout(function abortTimedOutWorker() {
35
34
  taskRun.endedByParent.write(true);
36
35
  taskRun.requeuePendingCases.write(true);
37
- taskRun.state.recordRunnerError(crashError(taskRun.state, 'Worker-pool file task exceeded hard timeout.'));
36
+ taskRun.state.recordRunnerError(crashError(taskRun.state, 'Worker-pool work unit exceeded hard timeout.'));
38
37
  taskRun.state.recordTerminalActiveCases('crashed');
39
38
  taskRun.controller.abort();
40
39
  }, runtime.resolvedRun.facts.execution.timeoutPolicy.hardMilliseconds));
@@ -53,7 +52,7 @@ function handleWorkerEvent(event, taskRun, runtime) {
53
52
  ]
54
53
  }
55
54
  : event;
56
- applyEvent(reportedEvent, taskRun.state, casesByKey(taskRun.unit.assignedCases));
55
+ applyEvent(reportedEvent, taskRun.state, casesByKey(taskRun.unit));
57
56
  if (reportedEvent.kind === 'test-end' && taskRun.state.activeCases.size === 0) {
58
57
  clearTaskTimeout(taskRun, runtime.dependencies);
59
58
  }
@@ -85,13 +84,28 @@ function workerPoolEngine(runtime) {
85
84
  }
86
85
  return runtime.resolvedRun.engine;
87
86
  }
87
+ function unitPaths(unit) {
88
+ return Array.from(new Set(unit.work.map(function toFile(work) {
89
+ if (work.case.file === null) {
90
+ throw new Error('Worker-pool work units require file-backed cases.');
91
+ }
92
+ return work.case.file;
93
+ })));
94
+ }
88
95
  function createRunCommand(runtime, unit) {
96
+ const execution = workerPoolExecutionFacts(runtime.resolvedRun);
89
97
  return {
90
98
  collectionTimeoutMilliseconds: runtime.resolvedRun.facts.execution.timeoutPolicy.collectionMilliseconds,
91
99
  cwd: runtime.resolvedRun.cwd,
92
100
  engine: workerPoolEngine(runtime),
93
101
  hardTimeoutMilliseconds: runtime.resolvedRun.facts.execution.timeoutPolicy.hardMilliseconds,
94
- paths: [unit.file],
102
+ hostProcess: execution.hostProcess.kind === 'direct'
103
+ ? { kind: 'direct' }
104
+ : {
105
+ kind: 'child',
106
+ nodeArguments: Array.from(execution.hostProcess.nodeArguments)
107
+ },
108
+ paths: unitPaths(unit),
95
109
  resourceBudgets: runtime.resolvedRun.facts.execution.resourceUsagePolicy.budgets,
96
110
  resourceUsageSamplingIntervalMilliseconds: runtime
97
111
  .resolvedRun
@@ -101,7 +115,8 @@ function createRunCommand(runtime, unit) {
101
115
  .samplingIntervalMilliseconds,
102
116
  scheduling: runtime.resolvedRun.facts.execution.scheduling,
103
117
  testFamily: runtime.resolvedRun.facts.execution.testFamily,
104
- timeoutMilliseconds: runtime.resolvedRun.facts.execution.timeoutPolicy.softMilliseconds
118
+ timeoutMilliseconds: runtime.resolvedRun.facts.execution.timeoutPolicy.softMilliseconds,
119
+ workerLifecycle: execution.workerLifecycle
105
120
  };
106
121
  }
107
122
  function isWorkerPoolRunOutput(value) {
@@ -111,7 +126,7 @@ function isWorkerPoolRunOutput(value) {
111
126
  }
112
127
  async function runWorkerTask(taskRun, runtime, channel, startedAtMilliseconds) {
113
128
  const output = await runtime.pool.run({
114
- assignedCases: taskRun.unit.assignedCases,
129
+ assignedWork: taskRun.unit.work,
115
130
  command: createRunCommand(runtime, taskRun.unit),
116
131
  kind: 'run',
117
132
  port: channel.port,
@@ -146,18 +161,19 @@ function createTaskRun(unit) {
146
161
  unit
147
162
  };
148
163
  }
149
- function pendingCases(taskRun) {
150
- return taskRun.unit.assignedCases.filter(function caseHasNotStarted(testCase) {
151
- return !taskRun.startedCases.has(caseIdentityKey(testCase));
164
+ function pendingWork(taskRun) {
165
+ return taskRun.unit.work.filter(function caseHasNotStarted(work) {
166
+ return !taskRun.startedCases.has(caseIdentityKey(work.case));
152
167
  });
153
168
  }
154
- function pendingFileUnit(taskRun) {
155
- const cases = pendingCases(taskRun);
156
- return cases.length === 0
169
+ function pendingWorkUnit(taskRun) {
170
+ const work = pendingWork(taskRun);
171
+ const firstWork = work[0];
172
+ return firstWork === undefined
157
173
  ? null
158
174
  : {
159
- assignedCases: cases,
160
- file: taskRun.unit.file
175
+ ...taskRun.unit,
176
+ work: [firstWork, ...work.slice(1)]
161
177
  };
162
178
  }
163
179
  function crashReason(error) {
@@ -200,7 +216,7 @@ function handleParentEndedFailure(taskRun, context) {
200
216
  if (!taskRun.requeuePendingCases.read()) {
201
217
  return null;
202
218
  }
203
- return recordWorkerCrash(context.runtime, context.crashCount, context.queue) ? null : pendingFileUnit(taskRun);
219
+ return recordWorkerCrash(context.runtime, context.crashCount, context.queue) ? null : pendingWorkUnit(taskRun);
204
220
  }
205
221
  function handleTaskFailure(error, taskRun, context) {
206
222
  if (taskRun.endedByParent.read()) {
@@ -208,7 +224,7 @@ function handleTaskFailure(error, taskRun, context) {
208
224
  }
209
225
  taskRun.state.recordRunnerError(crashError(taskRun.state, crashReason(error)));
210
226
  taskRun.state.recordTerminalActiveCases('crashed');
211
- return recordWorkerCrash(context.runtime, context.crashCount, context.queue) ? null : pendingFileUnit(taskRun);
227
+ return recordWorkerCrash(context.runtime, context.crashCount, context.queue) ? null : pendingWorkUnit(taskRun);
212
228
  }
213
229
  function createUnitQueue(units) {
214
230
  const pendingUnits = Array.from(units);
@@ -256,20 +272,32 @@ async function runWorkerLoop(context) {
256
272
  context.completedTaskRuns.push(taskRun);
257
273
  }
258
274
  }
259
- function workerLoopIndexes(runtime) {
260
- return Array.from({ length: runtime.pool.options.maxThreads }, function toWorkerIndex(_value, index) {
261
- return index;
275
+ function unitByKey(units) {
276
+ return new Map(units.map(function toEntry(unit) {
277
+ return [JSON.stringify(unit.id), unit];
278
+ }));
279
+ }
280
+ function unitsAssignedToLane(plan, lane) {
281
+ const units = unitByKey(plan.units);
282
+ return plan.assignments.flatMap(function toUnit(assignment) {
283
+ const unit = units.get(JSON.stringify(assignment.unit));
284
+ if (assignment.lane !== lane.id) {
285
+ return [];
286
+ }
287
+ if (unit === undefined) {
288
+ throw new Error('Placement assignment referenced an unknown work unit.');
289
+ }
290
+ return [unit];
262
291
  });
263
292
  }
264
- export async function executeWorkerPoolUnits(runtime, units, startedAtMilliseconds) {
265
- const queue = createUnitQueue(units);
293
+ export async function executeWorkerPoolUnits(runtime, placementPlan, startedAtMilliseconds) {
266
294
  const completedTaskRuns = [];
267
295
  const crashCount = createStoredRunValue(0);
268
- await Promise.all(workerLoopIndexes(runtime).map(async function runLoop() {
296
+ await Promise.all(placementPlan.lanes.map(async function runLoop(lane) {
269
297
  await runWorkerLoop({
270
298
  completedTaskRuns,
271
299
  crashCount,
272
- queue,
300
+ queue: createUnitQueue(unitsAssignedToLane(placementPlan, lane)),
273
301
  runtime,
274
302
  startedAtMilliseconds
275
303
  });
@@ -318,15 +346,16 @@ function recordPoolResourceBreach(runtime, sample) {
318
346
  stopActiveTasksForResourceExhaustion(runtime);
319
347
  }
320
348
  }
321
- export function startPoolResourceTracking(runtime) {
349
+ export async function startPoolResourceTracking(runtime) {
322
350
  runtime.poolResourceUsageTracker?.start(function recordPoolSample(sample) {
323
351
  if (!runtime.terminalFailure.read()) {
324
352
  recordPoolResourceBreach(runtime, sample);
325
353
  }
326
354
  });
355
+ await runtime.poolResourceUsageTracker?.waitForStart?.();
327
356
  }
328
357
  export async function reportRunStart(runtime, startedAtMilliseconds) {
329
- if (collectedRunCaseEntries(runtime.collectedPlan).length === 0) {
358
+ if (runtime.resolvedRun.facts.execution.placementPlan?.units.length === 0) {
330
359
  return;
331
360
  }
332
361
  await recordReporterEventErrors({
@@ -1 +1 @@
1
- {"version":3,"file":"worker-pool-execution.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-pool-execution.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-execution.ts"],"names":[],"mappings":"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"}