@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.
- package/assertion-protocol/source-location-forwarding.d.ts +4 -0
- package/assertion-protocol/source-location-forwarding.d.ts.map +1 -0
- package/engine/case-execution.d.ts +1 -0
- package/engine/case-execution.d.ts.map +1 -1
- package/engine/case-execution.js +112 -27
- package/engine/case-execution.js.map +1 -1
- package/engine/execution-async-leak-policy.d.ts.map +1 -1
- package/engine/execution-async-leak-policy.js +1 -0
- package/engine/execution-async-leak-policy.js.map +1 -1
- package/engine/execution-supervision.d.ts +1 -0
- package/engine/execution-supervision.d.ts.map +1 -1
- package/engine/execution-supervision.js +8 -1
- package/engine/execution-supervision.js.map +1 -1
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +37 -4
- package/engine/execution.js.map +1 -1
- package/engine/run-result.d.ts +11 -0
- package/engine/run-result.d.ts.map +1 -1
- package/engine/run-result.js +32 -0
- package/engine/run-result.js.map +1 -1
- package/engine/test-body-resource-attachment.d.ts +36 -0
- package/engine/test-body-resource-attachment.d.ts.map +1 -0
- package/engine/test-body-resource-attachment.js +81 -5
- package/engine/test-body-resource-attachment.js.map +1 -1
- package/engine/test-plan.d.ts +2 -0
- package/engine/test-plan.d.ts.map +1 -1
- package/engine/test-plan.js +9 -0
- package/engine/test-plan.js.map +1 -1
- package/package.json +5 -3
- package/packages/engine/engine.entry-point.d.ts +54 -0
- package/packages/engine/engine.entry-point.d.ts.map +1 -0
- package/packages/engine/engine.entry-point.js +2 -1
- package/packages/engine/engine.entry-point.js.map +1 -1
- package/packages/run/command-line.entry-point.d.ts.map +1 -1
- package/packages/run/command-line.entry-point.js +3 -2
- package/packages/run/command-line.entry-point.js.map +1 -1
- package/packages/run/run.entry-point.d.ts +1 -1
- package/packages/run/run.entry-point.d.ts.map +1 -1
- package/readme.md +19 -7
- package/run/child-process-protocol.js +30 -0
- package/run/child-process-protocol.js.map +1 -0
- package/run/child-process-roles.js +13 -0
- package/run/child-process-roles.js.map +1 -0
- package/run/child-process.entry-point.js +15 -0
- package/run/child-process.entry-point.js.map +1 -0
- package/run/collected-run-plan.js +1 -0
- package/run/collected-run-plan.js.map +1 -1
- package/run/current-process-run-orchestrator.d.ts +1 -0
- package/run/current-process-run-orchestrator.d.ts.map +1 -1
- package/run/current-process-run-orchestrator.js +1 -0
- package/run/current-process-run-orchestrator.js.map +1 -1
- package/run/node-command-line-runner.d.ts +2 -0
- package/run/node-command-line-runner.d.ts.map +1 -1
- package/run/node-command-line-runner.js +2 -1
- package/run/node-command-line-runner.js.map +1 -1
- package/run/node-worker-pool-factory.js +13 -0
- package/run/node-worker-pool-factory.js.map +1 -0
- package/run/resource-usage.d.ts +3 -1
- package/run/resource-usage.d.ts.map +1 -1
- package/run/resource-usage.js +2 -2
- package/run/resource-usage.js.map +1 -1
- package/run/run-collected-resolution.js +18 -2
- package/run/run-collected-resolution.js.map +1 -1
- package/run/run-config-schema.d.ts +45 -162
- package/run/run-config-schema.d.ts.map +1 -1
- package/run/run-config-schema.js +26 -0
- package/run/run-config-schema.js.map +1 -1
- package/run/run-config.d.ts +29 -14
- package/run/run-config.d.ts.map +1 -1
- package/run/run-config.js +20 -10
- package/run/run-config.js.map +1 -1
- package/run/run-facts.js +4 -0
- package/run/run-facts.js.map +1 -1
- package/run/run-host-process.js +86 -0
- package/run/run-host-process.js.map +1 -0
- package/run/run-if-main-facts.js +1 -0
- package/run/run-if-main-facts.js.map +1 -1
- package/run/run-isolated-command.js +7 -1
- package/run/run-isolated-command.js.map +1 -1
- package/run/run-local-resolution.js +3 -2
- package/run/run-local-resolution.js.map +1 -1
- package/run/run-orchestrator-dependencies.d.ts +20 -6
- package/run/run-orchestrator-dependencies.d.ts.map +1 -1
- package/run/run-orchestrator.d.ts +3 -3
- package/run/run-orchestrator.d.ts.map +1 -1
- package/run/run-orchestrator.entry-point.d.ts +1 -0
- package/run/run-orchestrator.entry-point.d.ts.map +1 -1
- package/run/run-orchestrator.entry-point.js +47 -40
- package/run/run-orchestrator.entry-point.js.map +1 -1
- package/run/run-orchestrator.js +7 -2
- package/run/run-orchestrator.js.map +1 -1
- package/run/run-selection.js +17 -10
- package/run/run-selection.js.map +1 -1
- package/run/run-support.js +30 -0
- package/run/run-support.js.map +1 -1
- package/run/run-types.d.ts +120 -0
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run-validation.js +4 -0
- package/run/run-validation.js.map +1 -1
- package/run/supervised-child-process.d.ts +3 -3
- package/run/supervised-child-process.d.ts.map +1 -1
- package/run/supervised-child-process.js +4 -4
- package/run/supervised-child-process.js.map +1 -1
- package/run/supervised-child.entry-point.js +14 -7
- package/run/supervised-child.entry-point.js.map +1 -1
- package/run/supervised-protocol.js +9 -0
- package/run/supervised-protocol.js.map +1 -0
- package/run/supervised-run-runtime.js +8 -4
- package/run/supervised-run-runtime.js.map +1 -1
- package/run/supervised-run.js +17 -6
- package/run/supervised-run.js.map +1 -1
- package/run/tinypool-node-compatibility.js.map +1 -1
- package/run/work-distribution-config.js +81 -0
- package/run/work-distribution-config.js.map +1 -0
- package/run/work-unit-planning.js +212 -0
- package/run/work-unit-planning.js.map +1 -0
- package/run/worker-pool-collection.js +18 -6
- package/run/worker-pool-collection.js.map +1 -1
- package/run/worker-pool-execution.js +58 -29
- package/run/worker-pool-execution.js.map +1 -1
- package/run/worker-pool-host-process.js +328 -0
- package/run/worker-pool-host-process.js.map +1 -0
- package/run/worker-pool-host-protocol.js +50 -0
- package/run/worker-pool-host-protocol.js.map +1 -0
- package/run/worker-pool-host.entry-point.js +164 -0
- package/run/worker-pool-host.entry-point.js.map +1 -0
- package/run/worker-pool-run.js +38 -11
- package/run/worker-pool-run.js.map +1 -1
- package/run/worker-pool-runtime.js +38 -35
- package/run/worker-pool-runtime.js.map +1 -1
- package/run/worker-pool-worker-plan.js +5 -0
- package/run/worker-pool-worker-plan.js.map +1 -1
- package/run/worker-pool-worker.js +3 -3
- package/run/worker-pool-worker.js.map +1 -1
- package/sbom.cdx.json +4 -4
- package/run/supervised-child-process.entry-point.js +0 -6
- package/run/supervised-child-process.entry-point.js.map +0 -1
- package/run/supervised-protocol.d.ts +0 -49
- package/run/supervised-protocol.d.ts.map +0 -1
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import os from 'node:os';
|
|
2
|
-
import { createCaseId } from "../engine/identity.js";
|
|
3
1
|
import { createReporterDelivery, createReporterEventQueue } from "./supervised-run-runtime.js";
|
|
4
2
|
import { createStoredRunValue } from "./supervised-run-state.js";
|
|
5
3
|
import { loadTinypoolConstructor } from "./tinypool-node-compatibility.js";
|
|
6
4
|
import { runTask as workerPoolWorkerEntryPoint } from "./worker-pool-worker.js";
|
|
7
5
|
const Tinypool = loadTinypoolConstructor();
|
|
8
|
-
const maximumWorkerCount = 8;
|
|
9
6
|
function workerPoolEntryPointHref(entryPoint) {
|
|
10
7
|
const entryPointWorkerName = entryPoint.worker.name;
|
|
11
8
|
const workerPoolEntryPointUrl = new URL('./worker-pool-worker.ts', import.meta.url);
|
|
12
9
|
return workerPoolEntryPointUrl.href + entryPointWorkerName.slice(0, 0);
|
|
13
10
|
}
|
|
14
|
-
const workerPoolEntryPoint = workerPoolEntryPointHref({
|
|
11
|
+
export const workerPoolEntryPoint = workerPoolEntryPointHref({
|
|
15
12
|
compatibility: null,
|
|
16
13
|
worker: workerPoolWorkerEntryPoint
|
|
17
14
|
});
|
|
@@ -19,12 +16,6 @@ export function runStartTimeFromMilliseconds(milliseconds) {
|
|
|
19
16
|
const startedAt = new Date(milliseconds);
|
|
20
17
|
return startedAt.toISOString();
|
|
21
18
|
}
|
|
22
|
-
function defaultWorkerCount(unitCount) {
|
|
23
|
-
if (unitCount === 0) {
|
|
24
|
-
return 0;
|
|
25
|
-
}
|
|
26
|
-
return Math.min(Math.max(os.availableParallelism() - 1, 1), maximumWorkerCount, unitCount);
|
|
27
|
-
}
|
|
28
19
|
function isolateWorkers(options) {
|
|
29
20
|
return options.workerLifecycle === 'fresh-worker-per-unit';
|
|
30
21
|
}
|
|
@@ -50,50 +41,62 @@ export function workerPoolCollectedPlan(resolvedRun) {
|
|
|
50
41
|
}
|
|
51
42
|
return resolvedRun.plan.collectedPlan;
|
|
52
43
|
}
|
|
53
|
-
function
|
|
54
|
-
return file.cases.map(function toCaseId(testCase) {
|
|
55
|
-
return createCaseId(file.file, testCase.suitePath.map(function toSuiteTitle(entry) {
|
|
56
|
-
return entry.title;
|
|
57
|
-
}), testCase.title, testCase.params);
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
export function fileUnits(collectedPlan) {
|
|
61
|
-
return collectedPlan.files.map(function toFileUnit(file) {
|
|
62
|
-
return {
|
|
63
|
-
assignedCases: collectFileCaseIds(file),
|
|
64
|
-
file: file.file
|
|
65
|
-
};
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
function createPoolResourceUsageTracker(resolvedRun, dependencies) {
|
|
44
|
+
function createPoolResourceUsageTracker(pool, resolvedRun, dependencies) {
|
|
69
45
|
if (!resolvedRun.facts.execution.resourceUsagePolicy.measure) {
|
|
70
46
|
return null;
|
|
71
47
|
}
|
|
48
|
+
if (pool.createResourceUsageTracker !== undefined) {
|
|
49
|
+
return pool.createResourceUsageTracker({
|
|
50
|
+
samplingIntervalMilliseconds: resolvedRun.facts.execution.resourceUsagePolicy.samplingIntervalMilliseconds
|
|
51
|
+
});
|
|
52
|
+
}
|
|
72
53
|
return dependencies.createResourceUsageTracker({
|
|
73
54
|
samplingIntervalMilliseconds: resolvedRun.facts.execution.resourceUsagePolicy.samplingIntervalMilliseconds
|
|
74
55
|
});
|
|
75
56
|
}
|
|
76
|
-
function workerPoolExecutionFacts(resolvedRun) {
|
|
57
|
+
export function workerPoolExecutionFacts(resolvedRun) {
|
|
77
58
|
if (resolvedRun.facts.execution.processModel !== 'worker-pool') {
|
|
78
59
|
throw new Error('Worker-pool execution requires worker-pool execution facts.');
|
|
79
60
|
}
|
|
80
61
|
return resolvedRun.facts.execution;
|
|
81
62
|
}
|
|
82
|
-
export
|
|
83
|
-
const
|
|
84
|
-
|
|
63
|
+
export function workerPoolPlacementPlan(resolvedRun) {
|
|
64
|
+
const { placementPlan } = workerPoolExecutionFacts(resolvedRun);
|
|
65
|
+
if (placementPlan === null) {
|
|
66
|
+
throw new Error('Worker-pool execution requires a placement plan.');
|
|
67
|
+
}
|
|
68
|
+
return placementPlan;
|
|
69
|
+
}
|
|
70
|
+
export async function createWorkerPoolRuntime(input) {
|
|
71
|
+
const { collectionRunnerErrors, createdPool, dependencies, resolvedRun, runState } = input;
|
|
72
|
+
const placementPlan = workerPoolPlacementPlan(resolvedRun);
|
|
85
73
|
const execution = workerPoolExecutionFacts(resolvedRun);
|
|
86
74
|
const taskResults = [];
|
|
75
|
+
const pool = createdPool ?? dependencies.createWorkerPool({
|
|
76
|
+
cwd: resolvedRun.cwd,
|
|
77
|
+
hostProcess: execution.hostProcess.kind === 'direct'
|
|
78
|
+
? { kind: 'direct' }
|
|
79
|
+
: {
|
|
80
|
+
kind: 'child',
|
|
81
|
+
nodeArguments: Array.from(execution.hostProcess.nodeArguments)
|
|
82
|
+
},
|
|
83
|
+
workerCount: placementPlan.lanes.length,
|
|
84
|
+
workerLifecycle: execution.workerLifecycle
|
|
85
|
+
});
|
|
86
|
+
pool.setHostOutputSink?.(function recordHostOutput(stream, chunk) {
|
|
87
|
+
if (execution.capture === 'live') {
|
|
88
|
+
dependencies.liveOutput[stream].write(chunk);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
runState.recordCapturedOutput(stream, chunk, dependencies.wallClock.currentTimestampInMilliseconds);
|
|
92
|
+
});
|
|
87
93
|
return {
|
|
88
94
|
activeTasks: new Set(),
|
|
89
95
|
collectedPlan: workerPoolCollectedPlan(resolvedRun),
|
|
90
96
|
collectionRunnerErrors,
|
|
91
97
|
dependencies,
|
|
92
|
-
pool
|
|
93
|
-
|
|
94
|
-
workerLifecycle: execution.workerLifecycle
|
|
95
|
-
}),
|
|
96
|
-
poolResourceUsageTracker: createPoolResourceUsageTracker(resolvedRun, dependencies),
|
|
98
|
+
pool,
|
|
99
|
+
poolResourceUsageTracker: createPoolResourceUsageTracker(pool, resolvedRun, dependencies),
|
|
97
100
|
previousPoolSample: createStoredRunValue(null),
|
|
98
101
|
reporterDelivery: await createReporterDelivery(resolvedRun, dependencies),
|
|
99
102
|
reporterEvents: createReporterEventQueue(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool-runtime.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-pool-runtime.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,11 @@ export function selectedAssignedCases(testPlan, assignedCases) {
|
|
|
42
42
|
cases: [firstCase, ...cases.slice(1)]
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
+
export function selectedAssignedWork(testPlan, assignedWork) {
|
|
46
|
+
return selectedAssignedCases(testPlan, assignedWork.map(function toCaseId(work) {
|
|
47
|
+
return work.case;
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
45
50
|
export function createEmptyAssignmentResult(testPlan, wallClock, startedAtMilliseconds) {
|
|
46
51
|
return {
|
|
47
52
|
result: createRunResultFromCollectedPlan(collectedRunPlanFromTestPlan(testPlan), [], [], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool-worker-plan.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-worker-plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAe,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EACH,4BAA4B,EAC5B,gCAAgC,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACf,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-pool-worker-plan.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-worker-plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAe,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EACH,4BAA4B,EAC5B,gCAAgC,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACf,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAgBvD,KAAK,UAAU,cAAc,CAAC,OAA0B;IACpD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC3G,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,OAA0B;IAC9D,OAAO,MAAM,iBAAiB,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,MAAM,EAAE,MAAM,cAAc,CAAC,OAAO,CAAC;QACrC,kBAAkB;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;KACjC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA0B;IAC5D,OAAO;QACH,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,MAAM,wBAAwB,CAAC,OAAO,CAAC;KACpD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,aAA0C;IACxE,OAAO;QACH,aAAa,EAAE,4BAA4B,CAAC,aAAa,CAAC,QAAQ,CAAC;QACnE,YAAY,EAAE,aAAa,CAAC,YAAY;KAC3C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAkB,EAAE,aAAgC;IACtF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,YAAY,CAAC,QAAQ;QAC9D,OAAO,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACrF,CAAC;IAED,OAAO;QACH,GAAG,QAAQ;QACX,KAAK,EAAE,CAAE,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE;KAC1C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,YAA0B;IAC/E,OAAO,qBAAqB,CACxB,QAAQ,EACR,YAAY,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,IAAI;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,2BAA2B,CACvC,QAAkB,EAClB,SAA6C,EAC7C,qBAA6B;IAE7B,OAAO;QACH,MAAM,EAAE,gCAAgC,CACpC,4BAA4B,CAAC,QAAQ,CAAC,EACtC,EAAE,EACF,EAAE,EACF;YACI,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,qBAAqB;YAClC,SAAS;SACZ,CACJ;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { createReporterDispatcher } from "../engine/reporter-dispatcher.js";
|
|
|
4
4
|
import { createPlainOutputRenderer } from "../packages/engine/engine.entry-point.js";
|
|
5
5
|
import { createNodeResourceUsageTracker } from "./resource-usage.js";
|
|
6
6
|
import { captureOutput, createWorkerPoolReporter, silentOutputSinks, suppressOutput } from "./worker-pool-output.js";
|
|
7
|
-
import { collectTestPlan, createEmptyAssignmentResult,
|
|
7
|
+
import { collectTestPlan, createEmptyAssignmentResult, selectedAssignedWork, sendCollectedPlan } from "./worker-pool-worker-plan.js";
|
|
8
8
|
function executionMode(command) {
|
|
9
9
|
return command.scheduling === 'concurrent' ? 'concurrent-in-process' : 'serial-in-process';
|
|
10
10
|
}
|
|
@@ -39,7 +39,7 @@ async function collectAssignmentTestPlan(task) {
|
|
|
39
39
|
}
|
|
40
40
|
async function runAssignment(task, wallClock) {
|
|
41
41
|
const collectedPlan = await collectAssignmentTestPlan(task);
|
|
42
|
-
if (task.
|
|
42
|
+
if (task.assignedWork.length === 0) {
|
|
43
43
|
return createEmptyAssignmentResult(collectedPlan.testPlan, wallClock, task.startedAtMilliseconds);
|
|
44
44
|
}
|
|
45
45
|
const outputCapture = captureOutput(task, wallClock);
|
|
@@ -53,7 +53,7 @@ async function runAssignment(task, wallClock) {
|
|
|
53
53
|
wallClock
|
|
54
54
|
});
|
|
55
55
|
try {
|
|
56
|
-
const result = await execute(
|
|
56
|
+
const result = await execute(selectedAssignedWork(collectedPlan.testPlan, task.assignedWork), {
|
|
57
57
|
execution: { mode: executionMode(task.command) },
|
|
58
58
|
outputRenderer: createPlainOutputRenderer(),
|
|
59
59
|
reporters: [createWorkerPoolReporter(task)],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool-worker.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EACH,yBAAyB,EAE5B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACH,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACjB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EACH,eAAe,EACf,2BAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"worker-pool-worker.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-worker.ts"],"names":[],"mappings":"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"}
|
package/sbom.cdx.json
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "@overkill-dev/run",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/@overkill-dev/run@0.0.
|
|
21
|
-
"purl": "pkg:npm/@overkill-dev/run@0.0.
|
|
19
|
+
"version": "0.0.43",
|
|
20
|
+
"bom-ref": "pkg:npm/@overkill-dev/run@0.0.43",
|
|
21
|
+
"purl": "pkg:npm/@overkill-dev/run@0.0.43"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"ref": "pkg:npm/@enormora/wall-clock@0.0.3"
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
|
-
"ref": "pkg:npm/@overkill-dev/run@0.0.
|
|
161
|
+
"ref": "pkg:npm/@overkill-dev/run@0.0.43",
|
|
162
162
|
"dependsOn": [
|
|
163
163
|
"pkg:npm/@enormora/wall-clock@0.0.3",
|
|
164
164
|
"pkg:npm/@schema-hub/zod-error-formatter@0.0.16",
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { runSupervisedChildProcessEntryPoint } from "./supervised-child-process.js";
|
|
2
|
-
export const supervisedChildProcessEntryPointUrl = import.meta.url;
|
|
3
|
-
await runSupervisedChildProcessEntryPoint(process.argv, async function loadSupervisedChild() {
|
|
4
|
-
return await import("./supervised-child.entry-point.js");
|
|
5
|
-
});
|
|
6
|
-
//# sourceMappingURL=supervised-child-process.entry-point.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"supervised-child-process.entry-point.js","sourceRoot":"","sources":["../../../../source/run/supervised-child-process.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mCAAmC,EACtC,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAEnE,MAAM,mCAAmC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,UAAU,mBAAmB;IACtF,OAAO,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { CaseId } from '../engine/identity.ts';
|
|
2
|
-
import type { ReporterEvent } from '../engine/reporter.ts';
|
|
3
|
-
import type { ResourceUsageSnapshot, RunResult } from '../engine/run-result.ts';
|
|
4
|
-
import type { CollectedRunPlan, RunRequest, RunEngineSelection, RunResourceBudgets, RunScheduling, RunTestFamily } from './run-types.ts';
|
|
5
|
-
type SupervisedCommandBase = {
|
|
6
|
-
readonly capabilityRestrictions: {
|
|
7
|
-
readonly mode: 'disabled' | 'enabled';
|
|
8
|
-
};
|
|
9
|
-
readonly capture: RunRequest['capture'];
|
|
10
|
-
readonly collectionTimeoutMilliseconds: number;
|
|
11
|
-
readonly cwd: string;
|
|
12
|
-
readonly engine: Exclude<RunEngineSelection, {
|
|
13
|
-
readonly kind: 'instance';
|
|
14
|
-
}>;
|
|
15
|
-
readonly paths: readonly string[];
|
|
16
|
-
readonly hardTimeoutMilliseconds: number;
|
|
17
|
-
readonly resourceBudgets: RunResourceBudgets;
|
|
18
|
-
readonly resourceUsageSamplingIntervalMilliseconds: number;
|
|
19
|
-
readonly scheduling: RunScheduling;
|
|
20
|
-
readonly testFamily: RunTestFamily;
|
|
21
|
-
readonly timeoutMilliseconds: number;
|
|
22
|
-
};
|
|
23
|
-
export type SupervisedCollectCommand = SupervisedCommandBase & {
|
|
24
|
-
readonly kind: 'collect';
|
|
25
|
-
};
|
|
26
|
-
export type SupervisedRunCommand = SupervisedCommandBase & {
|
|
27
|
-
readonly kind: 'run';
|
|
28
|
-
};
|
|
29
|
-
export type SupervisedChildCommand = SupervisedCollectCommand | SupervisedRunCommand;
|
|
30
|
-
export type SupervisedAssignmentCommand = {
|
|
31
|
-
readonly assignedCases: readonly CaseId[];
|
|
32
|
-
readonly kind: 'assign';
|
|
33
|
-
};
|
|
34
|
-
export type SupervisedChildMessage = {
|
|
35
|
-
readonly collectedPlan: CollectedRunPlan;
|
|
36
|
-
readonly kind: 'collected';
|
|
37
|
-
readonly runnerErrors: readonly RunResult['runnerErrors'][number][];
|
|
38
|
-
} | {
|
|
39
|
-
readonly event: ReporterEvent;
|
|
40
|
-
readonly kind: 'event';
|
|
41
|
-
} | {
|
|
42
|
-
readonly kind: 'result';
|
|
43
|
-
readonly result: RunResult;
|
|
44
|
-
} | {
|
|
45
|
-
readonly kind: 'sample';
|
|
46
|
-
readonly sample: ResourceUsageSnapshot;
|
|
47
|
-
};
|
|
48
|
-
export {};
|
|
49
|
-
//# sourceMappingURL=supervised-protocol.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"supervised-protocol.d.ts","sourceRoot":"","sources":["../../../../source/run/supervised-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EACR,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,aAAa,EAChB,MAAM,gBAAgB,CAAC;AAExB,KAAK,qBAAqB,GAAG;IACzB,QAAQ,CAAC,sBAAsB,EAAE;QAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;KACzC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;KAAE,CAAC,CAAC;IAC7E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,CAAC,yCAAyC,EAAE,MAAM,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,qBAAqB,GAAG;IAC3D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG;IACvD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AAErF,MAAM,MAAM,2BAA2B,GAAG;IACtC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,SAAS,SAAS,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;CACvE,GAAG;IACA,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CAC1B,GAAG;IACA,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC9B,GAAG;IACA,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CAC1C,CAAC"}
|