@overkill-dev/run 0.0.26 → 0.0.27
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.js +2 -1
- package/assertion-protocol/source-location.js.map +1 -1
- package/engine/engine.d.ts +2 -1
- package/engine/engine.d.ts.map +1 -1
- package/engine/engine.js +3 -3
- package/engine/engine.js.map +1 -1
- package/engine/run-result.d.ts +2 -1
- package/engine/run-result.d.ts.map +1 -1
- package/engine/run-result.js.map +1 -1
- package/engine/test-node.d.ts +8 -1
- package/engine/test-node.d.ts.map +1 -1
- package/engine/test-node.js +22 -4
- package/engine/test-node.js.map +1 -1
- package/engine/test-plan.d.ts +5 -3
- package/engine/test-plan.d.ts.map +1 -1
- package/engine/test-plan.js +41 -18
- package/engine/test-plan.js.map +1 -1
- package/package.json +5 -8
- package/packages/run/command-line.entry-point.d.ts +2 -0
- package/packages/run/command-line.entry-point.d.ts.map +1 -1
- package/packages/run/command-line.entry-point.js +1 -0
- package/packages/run/command-line.entry-point.js.map +1 -1
- package/run/collected-run-plan.js +3 -1
- package/run/collected-run-plan.js.map +1 -1
- package/run/command-line-command.d.ts +1 -0
- package/run/command-line-command.d.ts.map +1 -1
- package/run/command-line-command.js.map +1 -1
- package/run/command-line-runner.d.ts +2 -1
- package/run/command-line-runner.d.ts.map +1 -1
- package/run/command-line-runner.js +51 -10
- package/run/command-line-runner.js.map +1 -1
- package/run/current-process-run-orchestrator.js +34 -0
- package/run/current-process-run-orchestrator.js.map +1 -0
- package/run/default-run-engine.js +46 -11
- package/run/default-run-engine.js.map +1 -1
- package/run/node-command-line-runner.d.ts +7 -0
- package/run/node-command-line-runner.d.ts.map +1 -0
- package/run/node-command-line-runner.js +14 -0
- package/run/node-command-line-runner.js.map +1 -0
- package/run/run-list-renderer.js +50 -14
- package/run/run-list-renderer.js.map +1 -1
- package/run/run-orchestrator.entry-point.d.ts.map +1 -1
- package/run/run-orchestrator.entry-point.js +3 -30
- package/run/run-orchestrator.entry-point.js.map +1 -1
- package/run/run-orchestrator.js +1 -2
- package/run/run-orchestrator.js.map +1 -1
- package/run/run-test-plan.js +10 -2
- package/run/run-test-plan.js.map +1 -1
- package/run/run-types.d.ts +2 -0
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run.js +7 -7
- package/run/run.js.map +1 -1
- package/run/supervised-child-process.js +40 -5
- package/run/supervised-child-process.js.map +1 -1
- package/run/supervised-child-test-plan.js +16 -0
- package/run/supervised-child-test-plan.js.map +1 -0
- package/run/supervised-child.entry-point.js +85 -0
- package/run/supervised-child.entry-point.js.map +1 -0
- package/run/supervised-child.js +220 -0
- package/run/supervised-child.js.map +1 -0
- package/sbom.cdx.json +16 -67
- package/packages/engine/engine.entry-point.js +0 -67
- package/packages/engine/engine.entry-point.js.map +0 -1
- package/packages/reporter-line/reporter-line.entry-point.js +0 -2
- package/packages/reporter-line/reporter-line.entry-point.js.map +0 -1
- package/reporters/line-failure-rendering.js +0 -4
- package/reporters/line-failure-rendering.js.map +0 -1
- package/reporters/line-reporter.js +0 -131
- package/reporters/line-reporter.js.map +0 -1
- package/reporters/serialized-value-rendering.js +0 -1
- package/reporters/serialized-value-rendering.js.map +0 -1
- package/reporters/source-location-rendering.js +0 -1
- package/reporters/source-location-rendering.js.map +0 -1
- package/reporters/terminal.js +0 -3
- package/reporters/terminal.js.map +0 -1
package/run/run.js
CHANGED
|
@@ -194,7 +194,7 @@ async function createLocalRunResult(command, dependencies, runtimePolicy) {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
-
async function runSupervisedAndAttachPolicyErrors(command, dependencies,
|
|
197
|
+
async function runSupervisedAndAttachPolicyErrors(command, dependencies, input) {
|
|
198
198
|
const result = await runSupervisedCommand(createSupervisedRunCommand(command, input.profile, input.files), dependencies, function createResolvedRunAfterCollection(collection) {
|
|
199
199
|
return createResolvedRunFromSupervisedCollection({
|
|
200
200
|
allowEmptySelection: true,
|
|
@@ -204,18 +204,18 @@ async function runSupervisedAndAttachPolicyErrors(command, dependencies, runtime
|
|
|
204
204
|
input
|
|
205
205
|
});
|
|
206
206
|
});
|
|
207
|
-
return
|
|
207
|
+
return result;
|
|
208
208
|
}
|
|
209
|
-
async function createSupervisedRunResult(command, dependencies
|
|
209
|
+
async function createSupervisedRunResult(command, dependencies) {
|
|
210
210
|
const input = await readResolvedRunInput(command);
|
|
211
211
|
if (input.profile.execution.processModel !== 'supervised-process') {
|
|
212
212
|
throw new Error('Expected supervised-process profile.');
|
|
213
213
|
}
|
|
214
214
|
try {
|
|
215
|
-
return await runSupervisedAndAttachPolicyErrors(command, dependencies,
|
|
215
|
+
return await runSupervisedAndAttachPolicyErrors(command, dependencies, input);
|
|
216
216
|
}
|
|
217
217
|
catch (error) {
|
|
218
|
-
return await reportCollectionErrorResult(command, dependencies, createResultFromResolutionError(error,
|
|
218
|
+
return await reportCollectionErrorResult(command, dependencies, createResultFromResolutionError(error, null));
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
async function executeResolvedRun(resolvedRun, dependencies, runtimePolicy) {
|
|
@@ -244,11 +244,11 @@ async function executeResolvedRun(resolvedRun, dependencies, runtimePolicy) {
|
|
|
244
244
|
});
|
|
245
245
|
}
|
|
246
246
|
async function runCommand(command, dependencies) {
|
|
247
|
-
const runtimePolicy = createRunRuntimePolicy(command.request, dependencies);
|
|
248
247
|
const profile = command.config.profiles[command.request.profile];
|
|
249
248
|
if (profile?.execution.processModel === 'supervised-process') {
|
|
250
|
-
return await createSupervisedRunResult(command, dependencies
|
|
249
|
+
return await createSupervisedRunResult(command, dependencies);
|
|
251
250
|
}
|
|
251
|
+
const runtimePolicy = createRunRuntimePolicy(command.request, dependencies);
|
|
252
252
|
const resolvedRun = await createLocalRunResult(command, dependencies, runtimePolicy);
|
|
253
253
|
if (isRunResult(resolvedRun)) {
|
|
254
254
|
return await reportCollectionErrorResult(command, dependencies, 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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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { fork } from 'node:child_process';
|
|
2
2
|
import { realpath } from 'node:fs/promises';
|
|
3
|
-
import { dirname } from 'node:path';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const childProcessEntryPoint = fileURLToPath(import.meta.url);
|
|
6
|
+
export const supervisedChildProcessEntryPointArgument = '--overkill-supervised-child';
|
|
7
|
+
const childRuntimeRoot = dirname(childProcessEntryPoint);
|
|
8
|
+
const childPackageRoot = dirname(childRuntimeRoot);
|
|
7
9
|
function sanitizedChildEnvironment(environmentVariables) {
|
|
8
10
|
const environment = Object.fromEntries(Object.entries(environmentVariables).filter(function hasEnvironmentValue(entry) {
|
|
9
11
|
return entry[1] !== undefined;
|
|
@@ -15,10 +17,40 @@ function sanitizedChildEnvironment(environmentVariables) {
|
|
|
15
17
|
delete environment.NODE_UNIQUE_ID;
|
|
16
18
|
return environment;
|
|
17
19
|
}
|
|
20
|
+
function nodeModulesCandidates(startPath) {
|
|
21
|
+
const candidates = [];
|
|
22
|
+
let currentPath = startPath;
|
|
23
|
+
let parentPath = dirname(currentPath);
|
|
24
|
+
while (parentPath !== currentPath) {
|
|
25
|
+
candidates.push(join(currentPath, 'node_modules'));
|
|
26
|
+
currentPath = parentPath;
|
|
27
|
+
parentPath = dirname(currentPath);
|
|
28
|
+
}
|
|
29
|
+
return [...candidates, join(currentPath, 'node_modules')];
|
|
30
|
+
}
|
|
31
|
+
async function existingRealPath(path) {
|
|
32
|
+
try {
|
|
33
|
+
return await realpath(path);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function existingRealPaths(paths) {
|
|
40
|
+
const realPaths = await Promise.all(paths.map(existingRealPath));
|
|
41
|
+
return realPaths.filter(function existingPath(path) {
|
|
42
|
+
return path !== null;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
18
45
|
async function readPermissionRoots(options) {
|
|
46
|
+
const nodeModulesPaths = await existingRealPaths([
|
|
47
|
+
...nodeModulesCandidates(options.cwd),
|
|
48
|
+
...nodeModulesCandidates(childPackageRoot)
|
|
49
|
+
]);
|
|
19
50
|
return Array.from(new Set([
|
|
20
51
|
await realpath(options.cwd),
|
|
21
|
-
await realpath(
|
|
52
|
+
await realpath(childPackageRoot),
|
|
53
|
+
...nodeModulesPaths
|
|
22
54
|
]));
|
|
23
55
|
}
|
|
24
56
|
async function supervisedChildExecArgv(options) {
|
|
@@ -36,13 +68,16 @@ async function supervisedChildExecArgv(options) {
|
|
|
36
68
|
];
|
|
37
69
|
}
|
|
38
70
|
export async function startSupervisedChild(options, dependencies) {
|
|
39
|
-
return fork(
|
|
71
|
+
return fork(childProcessEntryPoint, [supervisedChildProcessEntryPointArgument], {
|
|
40
72
|
cwd: options.cwd,
|
|
41
73
|
env: sanitizedChildEnvironment(dependencies.runtimeCapabilityPolicy.readEnvironment()),
|
|
42
74
|
execArgv: await supervisedChildExecArgv(options),
|
|
43
75
|
stdio: ['ignore', 'pipe', 'pipe', 'ipc']
|
|
44
76
|
});
|
|
45
77
|
}
|
|
78
|
+
if (process.argv.includes(supervisedChildProcessEntryPointArgument)) {
|
|
79
|
+
await import("./supervised-child.entry-point.js");
|
|
80
|
+
}
|
|
46
81
|
function observeChildStdout(runtime) {
|
|
47
82
|
runtime.child.stdout?.on('data', function recordStdoutOutput(chunk) {
|
|
48
83
|
if (chunk.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervised-child-process.js","sourceRoot":"","sources":["../../../../source/run/supervised-child-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAqB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
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,16 @@
|
|
|
1
|
+
import { defaultRunEngine } from "./default-run-engine.js";
|
|
2
|
+
import { loadRunEngineModule } from "./run-engine-selection.js";
|
|
3
|
+
import { createRunTestPlan } from "./run-test-plan.js";
|
|
4
|
+
async function selectedEngine(command) {
|
|
5
|
+
return command.engine.kind === 'module' ? await loadRunEngineModule(command.engine) : defaultRunEngine;
|
|
6
|
+
}
|
|
7
|
+
export async function createSupervisedChildTestPlan(command) {
|
|
8
|
+
const engine = await selectedEngine(command);
|
|
9
|
+
return await createRunTestPlan({
|
|
10
|
+
cwd: command.cwd,
|
|
11
|
+
engine,
|
|
12
|
+
paths: command.paths,
|
|
13
|
+
testFamily: command.testFamily
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=supervised-child-test-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervised-child-test-plan.js","sourceRoot":"","sources":["../../../../source/run/supervised-child-test-plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,KAAK,UAAU,cAAc,CAAC,OAA+B;IACzD,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,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAA+B;IAC/E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO,MAAM,iBAAiB,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM;QACN,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;KACjC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { readProcessEnvironment, readWebStorage } from "./node-host-readers.js";
|
|
2
|
+
import { installIpcRestriction as installProcessIpcRestriction, installProcessExecutionRestriction as installNodeProcessExecutionRestriction } from "./node-process-capability-restrictions.js";
|
|
3
|
+
import { runSupervisedChild } from "./supervised-child.js";
|
|
4
|
+
const sendMessage = process.send?.bind(process);
|
|
5
|
+
const disconnectProcess = process.disconnect?.bind(process);
|
|
6
|
+
function send(message) {
|
|
7
|
+
sendMessage?.(message);
|
|
8
|
+
}
|
|
9
|
+
function disconnect() {
|
|
10
|
+
disconnectProcess?.();
|
|
11
|
+
}
|
|
12
|
+
function isRecord(value) {
|
|
13
|
+
return typeof value === 'object' && value !== null;
|
|
14
|
+
}
|
|
15
|
+
function isChildCommand(message) {
|
|
16
|
+
return isRecord(message) &&
|
|
17
|
+
Object.hasOwn(message, 'kind') &&
|
|
18
|
+
(message.kind === 'collect' || message.kind === 'run');
|
|
19
|
+
}
|
|
20
|
+
function isAssignmentCommand(message) {
|
|
21
|
+
return isRecord(message) &&
|
|
22
|
+
Object.hasOwn(message, 'kind') &&
|
|
23
|
+
message.kind === 'assign';
|
|
24
|
+
}
|
|
25
|
+
async function receiveCommand() {
|
|
26
|
+
return new Promise(function waitForCommand(resolve) {
|
|
27
|
+
process.once('message', function receiveChildCommand(message) {
|
|
28
|
+
if (isChildCommand(message)) {
|
|
29
|
+
resolve(message);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async function receiveAssignment() {
|
|
35
|
+
return new Promise(function waitForAssignment(resolve) {
|
|
36
|
+
process.once('message', function receiveAssignmentCommand(message) {
|
|
37
|
+
if (isAssignmentCommand(message)) {
|
|
38
|
+
resolve(message);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function validatePermissionHost(command) {
|
|
44
|
+
if (command.capabilityRestrictions.mode === 'disabled') {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (!process.execArgv.includes('--permission')) {
|
|
48
|
+
throw new Error('Restricted microtest child started without --permission.');
|
|
49
|
+
}
|
|
50
|
+
if (process.execArgv.includes('--permission-audit')) {
|
|
51
|
+
throw new Error('Restricted microtest child must not use --permission-audit.');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function dropBodyReadPermission(command) {
|
|
55
|
+
if (command.capabilityRestrictions.mode === 'enabled') {
|
|
56
|
+
const drop = Reflect.get(process.permission, 'drop');
|
|
57
|
+
if (typeof drop === 'function') {
|
|
58
|
+
Reflect.apply(drop, process.permission, ['fs.read']);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
await runSupervisedChild({
|
|
63
|
+
disconnect,
|
|
64
|
+
dropBodyReadPermission,
|
|
65
|
+
installIpcRestriction(record) {
|
|
66
|
+
return installProcessIpcRestriction(process, record);
|
|
67
|
+
},
|
|
68
|
+
installProcessExecutionRestriction(record) {
|
|
69
|
+
return installNodeProcessExecutionRestriction(process, record);
|
|
70
|
+
},
|
|
71
|
+
readEnvironment() {
|
|
72
|
+
return readProcessEnvironment(process);
|
|
73
|
+
},
|
|
74
|
+
readStorage(name) {
|
|
75
|
+
return readWebStorage(globalThis, name);
|
|
76
|
+
},
|
|
77
|
+
receiveAssignment,
|
|
78
|
+
receiveCommand,
|
|
79
|
+
send,
|
|
80
|
+
setExitCode(code) {
|
|
81
|
+
process.exitCode = code;
|
|
82
|
+
},
|
|
83
|
+
validatePermissionHost
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=supervised-child.entry-point.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervised-child.entry-point.js","sourceRoot":"","sources":["../../../../source/run/supervised-child.entry-point.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { createWallClock } from '@enormora/wall-clock';
|
|
2
|
+
import { caseIdentityKey } from "../engine/identity.js";
|
|
3
|
+
import { createExecute } from "../engine/execution.js";
|
|
4
|
+
import { createReporterDispatcher } from "../engine/reporter-dispatcher.js";
|
|
5
|
+
import { createNodeResourceUsageTracker } from "./resource-usage.js";
|
|
6
|
+
import { collectedRunPlanFromTestPlan, collectedRunPlanFromTestPlanCases, createRunResultFromCollectedPlan } from "./collected-run-plan.js";
|
|
7
|
+
import { createRuntimeCapabilityPolicy } from "./capability-policy.js";
|
|
8
|
+
import { createSupervisedChildTestPlan } from "./supervised-child-test-plan.js";
|
|
9
|
+
function ignoreLine() {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
function renderNothing() {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
function createIpcReporter(host) {
|
|
16
|
+
return {
|
|
17
|
+
dispose: null,
|
|
18
|
+
kind: 'real-time',
|
|
19
|
+
name: 'supervised-child-ipc',
|
|
20
|
+
onEvent(event) {
|
|
21
|
+
if (event.kind !== 'run-start' && event.kind !== 'run-end') {
|
|
22
|
+
host.send({ event, kind: 'event' });
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
onFinish: null,
|
|
26
|
+
sinks: [{ kind: 'memory' }]
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function selectAssignedCases(testPlan, assignedCases) {
|
|
30
|
+
const assigned = new Set(assignedCases.map(caseIdentityKey));
|
|
31
|
+
const cases = testPlan.cases.filter(function assignedCase(testCase) {
|
|
32
|
+
return assigned.has(caseIdentityKey(testCase.id));
|
|
33
|
+
});
|
|
34
|
+
const first = cases[0];
|
|
35
|
+
if (first === undefined || cases.length !== assigned.size) {
|
|
36
|
+
throw new Error('Supervised child test plan did not match assigned case identities.');
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
...testPlan,
|
|
40
|
+
cases: [first, ...cases.slice(1)]
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function createResourceUsageTracker(command, host) {
|
|
44
|
+
const tracker = createNodeResourceUsageTracker(createWallClock(), {
|
|
45
|
+
samplingIntervalMilliseconds: command.resourceUsageSamplingIntervalMilliseconds
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
finish: tracker.finish,
|
|
49
|
+
start(onSample) {
|
|
50
|
+
tracker.start(function forwardSample(sample) {
|
|
51
|
+
host.send({ kind: 'sample', sample });
|
|
52
|
+
onSample?.(sample);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function executionMode(command) {
|
|
58
|
+
return command.scheduling === 'concurrent' ? 'concurrent-in-process' : 'serial-in-process';
|
|
59
|
+
}
|
|
60
|
+
function createEmptyAssignmentResult(testPlan, wallClock, startedAtMs) {
|
|
61
|
+
return createRunResultFromCollectedPlan(collectedRunPlanFromTestPlanCases(testPlan, []), [], [], {
|
|
62
|
+
resourceUsage: null,
|
|
63
|
+
startedAtMs,
|
|
64
|
+
wallClock
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function createRuntimePolicy(command, host) {
|
|
68
|
+
return command.capabilityRestrictions.mode === 'enabled'
|
|
69
|
+
? createRuntimeCapabilityPolicy({
|
|
70
|
+
dependencies: {
|
|
71
|
+
installIpcRestriction: host.installIpcRestriction,
|
|
72
|
+
installProcessExecutionRestriction: host.installProcessExecutionRestriction,
|
|
73
|
+
readEnvironment: host.readEnvironment,
|
|
74
|
+
readStorage: host.readStorage
|
|
75
|
+
},
|
|
76
|
+
observedStderr: false,
|
|
77
|
+
observedStdout: false
|
|
78
|
+
})
|
|
79
|
+
: null;
|
|
80
|
+
}
|
|
81
|
+
async function createPolicyCheckedTestPlan(command, runtimePolicy) {
|
|
82
|
+
const createPlan = async function createTestPlanInsidePolicy() {
|
|
83
|
+
return await createSupervisedChildTestPlan(command);
|
|
84
|
+
};
|
|
85
|
+
return runtimePolicy === null ? await createPlan() : await runtimePolicy.runLoad(createPlan);
|
|
86
|
+
}
|
|
87
|
+
function sendRuntimePolicyErrors(host, runtimePolicy) {
|
|
88
|
+
const errors = runtimePolicy?.takeRunErrors() ?? [];
|
|
89
|
+
for (const runtimePolicyError of errors) {
|
|
90
|
+
host.send({
|
|
91
|
+
event: {
|
|
92
|
+
error: runtimePolicyError,
|
|
93
|
+
kind: 'runner-error'
|
|
94
|
+
},
|
|
95
|
+
kind: 'event'
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async function readCollectedTestPlan(command, runtimePolicy) {
|
|
100
|
+
const testPlan = await createPolicyCheckedTestPlan(command, runtimePolicy);
|
|
101
|
+
const runnerErrors = runtimePolicy?.takeRunErrors() ?? [];
|
|
102
|
+
return { runnerErrors, testPlan };
|
|
103
|
+
}
|
|
104
|
+
async function createCollectedTestPlan(command, host, runtimePolicy) {
|
|
105
|
+
try {
|
|
106
|
+
return await readCollectedTestPlan(command, runtimePolicy);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
sendRuntimePolicyErrors(host, runtimePolicy);
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function sendCollectedPlan(collectedPlan, host) {
|
|
114
|
+
host.send({
|
|
115
|
+
collectedPlan: collectedRunPlanFromTestPlan(collectedPlan.testPlan),
|
|
116
|
+
kind: 'collected',
|
|
117
|
+
runnerErrors: collectedPlan.runnerErrors
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
async function collect(command, host) {
|
|
121
|
+
host.validatePermissionHost(command);
|
|
122
|
+
const runtimePolicy = createRuntimePolicy(command, host);
|
|
123
|
+
const collectedPlan = await createCollectedTestPlan(command, host, runtimePolicy);
|
|
124
|
+
sendCollectedPlan(collectedPlan, host);
|
|
125
|
+
return collectedPlan;
|
|
126
|
+
}
|
|
127
|
+
function sendRunResult(host, result) {
|
|
128
|
+
host.send({
|
|
129
|
+
kind: 'result',
|
|
130
|
+
result
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
function startedAtIso(startedAtMs) {
|
|
134
|
+
const startedAt = new Date(startedAtMs);
|
|
135
|
+
return startedAt.toISOString();
|
|
136
|
+
}
|
|
137
|
+
async function executeAssignment(input) {
|
|
138
|
+
const runtimePolicy = createRuntimePolicy(input.command, input.host);
|
|
139
|
+
const execute = createExecute({
|
|
140
|
+
reporterDispatcher: createReporterDispatcher({
|
|
141
|
+
stderr: { writeLine: ignoreLine },
|
|
142
|
+
stdout: { writeLine: ignoreLine },
|
|
143
|
+
wallClock: input.wallClock
|
|
144
|
+
}),
|
|
145
|
+
wallClock: input.wallClock
|
|
146
|
+
});
|
|
147
|
+
input.host.dropBodyReadPermission(input.command);
|
|
148
|
+
const testPlan = selectAssignedCases(input.collectedPlan.testPlan, input.assignment.assignedCases);
|
|
149
|
+
return await execute(testPlan, {
|
|
150
|
+
execution: { mode: executionMode(input.command) },
|
|
151
|
+
outputRenderer: { render: renderNothing },
|
|
152
|
+
reporters: [createIpcReporter(input.host)],
|
|
153
|
+
resourceBudgets: input.command.resourceBudgets,
|
|
154
|
+
resourceUsageTracker: createResourceUsageTracker(input.command, input.host),
|
|
155
|
+
runtimePolicy,
|
|
156
|
+
runFacts: {},
|
|
157
|
+
startedAt: startedAtIso(input.startedAtMs),
|
|
158
|
+
timeoutPolicy: {
|
|
159
|
+
hardTimeoutMilliseconds: input.command.hardTimeoutMilliseconds,
|
|
160
|
+
timeoutMilliseconds: input.command.timeoutMilliseconds
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
async function run(command, host) {
|
|
165
|
+
const wallClock = createWallClock();
|
|
166
|
+
const startedAtMs = wallClock.currentTimestampInMilliseconds;
|
|
167
|
+
const collectedPlan = await collect(command, host);
|
|
168
|
+
const assignment = await host.receiveAssignment();
|
|
169
|
+
if (assignment.assignedCases.length === 0) {
|
|
170
|
+
sendRunResult(host, createEmptyAssignmentResult(collectedPlan.testPlan, wallClock, startedAtMs));
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
sendRunResult(host, await executeAssignment({
|
|
174
|
+
assignment,
|
|
175
|
+
collectedPlan,
|
|
176
|
+
command,
|
|
177
|
+
host,
|
|
178
|
+
startedAtMs,
|
|
179
|
+
wallClock
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
function sendFailure(error, host) {
|
|
183
|
+
host.send({
|
|
184
|
+
event: {
|
|
185
|
+
error: {
|
|
186
|
+
attributedTo: null,
|
|
187
|
+
cause: error,
|
|
188
|
+
message: error instanceof Error ? error.message : String(error),
|
|
189
|
+
subtype: 'loader'
|
|
190
|
+
},
|
|
191
|
+
kind: 'runner-error'
|
|
192
|
+
},
|
|
193
|
+
kind: 'event'
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
async function completeReceivedCommand(command, host) {
|
|
197
|
+
if (command.kind === 'collect') {
|
|
198
|
+
await collect(command, host);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
await run(command, host);
|
|
202
|
+
}
|
|
203
|
+
host.setExitCode(0);
|
|
204
|
+
}
|
|
205
|
+
async function runReceivedCommand(command, host) {
|
|
206
|
+
try {
|
|
207
|
+
await completeReceivedCommand(command, host);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
sendFailure(error, host);
|
|
211
|
+
host.setExitCode(1);
|
|
212
|
+
}
|
|
213
|
+
finally {
|
|
214
|
+
host.disconnect();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
export async function runSupervisedChild(host) {
|
|
218
|
+
await runReceivedCommand(await host.receiveCommand(), host);
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=supervised-child.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervised-child.js","sourceRoot":"","sources":["../../../../source/run/supervised-child.ts"],"names":[],"mappings":"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"}
|