@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.
- package/engine/execution-supervision.d.ts.map +1 -1
- package/engine/execution-supervision.js +1 -11
- package/engine/execution-supervision.js.map +1 -1
- package/engine/resource-usage-growth.js +12 -0
- package/engine/resource-usage-growth.js.map +1 -0
- package/package.json +2 -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 +10 -5
- package/run/collected-run-plan.js +100 -0
- package/run/collected-run-plan.js.map +1 -0
- package/run/command-line-runner.js +1 -1
- package/run/command-line-runner.js.map +1 -1
- package/run/run-config-schema.d.ts +5 -0
- package/run/run-config-schema.d.ts.map +1 -1
- package/run/run-config-schema.js +1 -0
- package/run/run-config-schema.js.map +1 -1
- package/run/run-config.d.ts.map +1 -1
- package/run/run-config.js +8 -2
- package/run/run-config.js.map +1 -1
- package/run/run-engine-selection.js +92 -0
- package/run/run-engine-selection.js.map +1 -0
- package/run/run-facts.js +103 -0
- package/run/run-facts.js.map +1 -0
- package/run/run-local-test-plan.js +25 -0
- package/run/run-local-test-plan.js.map +1 -0
- package/run/run-process-engine.js +40 -0
- package/run/run-process-engine.js.map +1 -0
- package/run/run-support.js +32 -0
- package/run/run-support.js.map +1 -1
- package/run/run-test-plan.js +20 -0
- package/run/run-test-plan.js.map +1 -0
- package/run/run-types.d.ts +54 -3
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run-validation.js +122 -0
- package/run/run-validation.js.map +1 -0
- package/run/run.js +129 -227
- package/run/run.js.map +1 -1
- package/run/supervised-child-process.js +8 -8
- package/run/supervised-child-process.js.map +1 -1
- package/run/supervised-run-resource-policy.js +64 -0
- package/run/supervised-run-resource-policy.js.map +1 -0
- package/run/supervised-run-runtime.js +257 -0
- package/run/supervised-run-runtime.js.map +1 -0
- package/run/supervised-run-state.js.map +1 -1
- package/run/supervised-run.js +206 -246
- package/run/supervised-run.js.map +1 -1
- package/sbom.cdx.json +4 -4
package/run/run-facts.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { serializeValue } from "../compare/serialized-value.js";
|
|
2
|
+
import { invalidRequest } from "./run-errors.js";
|
|
3
|
+
import { copyResourceBudgets, runEngineFacts } from "./run-support.js";
|
|
4
|
+
function disabledResourceBudgets() {
|
|
5
|
+
return {
|
|
6
|
+
activeResourceCount: null,
|
|
7
|
+
javaScriptEngineHeapBytes: null,
|
|
8
|
+
residentSetBytes: null,
|
|
9
|
+
residentSetGrowthBytesPerSecond: null
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function readBudgetOverride(configValue, requestValue) {
|
|
13
|
+
return requestValue ?? configValue;
|
|
14
|
+
}
|
|
15
|
+
function resolveResourceBudgets(configBudgets, requestOverrides) {
|
|
16
|
+
if (requestOverrides === null) {
|
|
17
|
+
return copyResourceBudgets(configBudgets);
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
activeResourceCount: readBudgetOverride(configBudgets.activeResourceCount, requestOverrides.activeResourceCount),
|
|
21
|
+
javaScriptEngineHeapBytes: readBudgetOverride(configBudgets.javaScriptEngineHeapBytes, requestOverrides.javaScriptEngineHeapBytes),
|
|
22
|
+
residentSetBytes: readBudgetOverride(configBudgets.residentSetBytes, requestOverrides.residentSetBytes),
|
|
23
|
+
residentSetGrowthBytesPerSecond: readBudgetOverride(configBudgets.residentSetGrowthBytesPerSecond, requestOverrides.residentSetGrowthBytesPerSecond)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function hasResourceBudgets(resourceBudgets) {
|
|
27
|
+
return resourceBudgets.activeResourceCount !== null ||
|
|
28
|
+
resourceBudgets.javaScriptEngineHeapBytes !== null ||
|
|
29
|
+
resourceBudgets.residentSetBytes !== null ||
|
|
30
|
+
resourceBudgets.residentSetGrowthBytesPerSecond !== null;
|
|
31
|
+
}
|
|
32
|
+
function assertResourceBudgetOverridesAllowed(measureResourceUsage, requestOverrides) {
|
|
33
|
+
if (!measureResourceUsage && requestOverrides !== null && hasResourceBudgets(requestOverrides)) {
|
|
34
|
+
invalidRequest('Resource budget overrides require resource usage measurement.');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function selectedProfile(request, config) {
|
|
38
|
+
const profile = config.profiles[request.profile];
|
|
39
|
+
if (profile === undefined) {
|
|
40
|
+
invalidRequest(`Unknown run profile: ${request.profile}`);
|
|
41
|
+
}
|
|
42
|
+
return profile;
|
|
43
|
+
}
|
|
44
|
+
export function resolveResourceUsagePolicy(request, profile) {
|
|
45
|
+
const configuredPolicy = profile.resourceUsage;
|
|
46
|
+
const measureResourceUsage = request.measureResourceUsage ?? configuredPolicy.measure;
|
|
47
|
+
const resourceUsageSamplingIntervalMilliseconds = request.resourceUsageSamplingIntervalMilliseconds ??
|
|
48
|
+
configuredPolicy.samplingIntervalMilliseconds;
|
|
49
|
+
const resourceBudgets = measureResourceUsage
|
|
50
|
+
? resolveResourceBudgets(configuredPolicy.budgets, request.resourceBudgetOverrides)
|
|
51
|
+
: disabledResourceBudgets();
|
|
52
|
+
assertResourceBudgetOverridesAllowed(measureResourceUsage, request.resourceBudgetOverrides);
|
|
53
|
+
return {
|
|
54
|
+
budgets: resourceBudgets,
|
|
55
|
+
measure: measureResourceUsage,
|
|
56
|
+
samplingIntervalMilliseconds: resourceUsageSamplingIntervalMilliseconds
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function resolvedSeed(request, dependencies) {
|
|
60
|
+
return request.seed.value ?? dependencies.createSeed();
|
|
61
|
+
}
|
|
62
|
+
function runCaseFacts(metadata, id) {
|
|
63
|
+
return { id, metadata };
|
|
64
|
+
}
|
|
65
|
+
export function runCaseFactsFromTestPlan(testPlan) {
|
|
66
|
+
return testPlan.cases.map(function toRunCaseFacts(testCase) {
|
|
67
|
+
return runCaseFacts(serializeValue(testCase.metadata), testCase.id);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
export function createRunFacts(input) {
|
|
71
|
+
const profile = selectedProfile(input.request, input.config);
|
|
72
|
+
return {
|
|
73
|
+
cases: input.cases,
|
|
74
|
+
environment: {
|
|
75
|
+
node: {
|
|
76
|
+
arch: input.dependencies.node.arch,
|
|
77
|
+
platform: input.dependencies.node.platform,
|
|
78
|
+
version: input.dependencies.node.version
|
|
79
|
+
},
|
|
80
|
+
runtimeStateDir: input.config.runtimeStateDir
|
|
81
|
+
},
|
|
82
|
+
execution: {
|
|
83
|
+
baselineUpdateMode: input.request.baselineUpdateMode,
|
|
84
|
+
capture: input.request.capture,
|
|
85
|
+
debug: input.request.debug,
|
|
86
|
+
engine: runEngineFacts(input.engine),
|
|
87
|
+
order: input.request.order,
|
|
88
|
+
processModel: profile.execution.processModel,
|
|
89
|
+
profile: input.request.profile,
|
|
90
|
+
resourceUsagePolicy: resolveResourceUsagePolicy(input.request, profile),
|
|
91
|
+
scheduling: profile.execution.scheduling,
|
|
92
|
+
testFamily: profile.testFamily,
|
|
93
|
+
timeoutPolicy: profile.timeouts,
|
|
94
|
+
verbose: input.request.verbose
|
|
95
|
+
},
|
|
96
|
+
loader: input.config.loader,
|
|
97
|
+
reproducibility: {
|
|
98
|
+
seed: resolvedSeed(input.request, input.dependencies).toString(),
|
|
99
|
+
shard: input.request.shard
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=run-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-facts.js","sourceRoot":"","sources":["../../../../source/run/run-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RunCollectionError } from "./run-errors.js";
|
|
2
|
+
import { resolveRunEngine } from "./run-engine-selection.js";
|
|
3
|
+
import { createRunTestPlan } from "./run-test-plan.js";
|
|
4
|
+
async function createTestPlan(command, dependencies) {
|
|
5
|
+
const engine = await resolveRunEngine(command.engine, dependencies);
|
|
6
|
+
return await createRunTestPlan({ cwd: command.cwd, engine, paths: command.request.paths });
|
|
7
|
+
}
|
|
8
|
+
export async function createLocalTestPlan(command, profile, dependencies) {
|
|
9
|
+
let rejectCollection = function ignoreReject() {
|
|
10
|
+
return undefined;
|
|
11
|
+
};
|
|
12
|
+
const collectionTimeout = new Promise(function rejectOnCollectionTimeout(_resolve, reject) {
|
|
13
|
+
rejectCollection = reject;
|
|
14
|
+
});
|
|
15
|
+
const timeout = dependencies.wallClock.setTimeout(function failTimedOutCollection() {
|
|
16
|
+
rejectCollection(new RunCollectionError('Collection exceeded collection timeout.', { cause: null }, 'loader'));
|
|
17
|
+
}, profile.timeouts.collectionMilliseconds);
|
|
18
|
+
try {
|
|
19
|
+
return await Promise.race([createTestPlan(command, dependencies), collectionTimeout]);
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
dependencies.wallClock.clearTimeout(timeout);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=run-local-test-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-local-test-plan.js","sourceRoot":"","sources":["../../../../source/run/run-local-test-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,KAAK,UAAU,cAAc,CAAC,OAAmB,EAAE,YAAyC;IACxF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEpE,OAAO,MAAM,iBAAiB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,OAAmB,EACnB,OAAkC,EAClC,YAAyC;IAEzC,IAAI,gBAAgB,GAAwC,SAAS,YAAY;QAC7E,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAQ,SAAS,yBAAyB,CAAC,QAAQ,EAAE,MAAM;QAC5F,gBAAgB,GAAG,MAAM,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,sBAAsB;QAC7E,gBAAgB,CACZ,IAAI,kBAAkB,CAClB,yCAAyC,EACzC,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,QAAQ,CACX,CACJ,CAAC;IACN,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAE5C,IAAI,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,iBAAiB,CAAE,CAAC,CAAC;IAC5F,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { invalidRequest } from "./run-errors.js";
|
|
4
|
+
function supervisedProcess(profile) {
|
|
5
|
+
return profile.execution.processModel === 'supervised-process';
|
|
6
|
+
}
|
|
7
|
+
function assertSupportedSupervisedEngine(command) {
|
|
8
|
+
if (command.engine.kind === 'instance') {
|
|
9
|
+
invalidRequest('Instance engines are not supported with supervised-process execution. Use a module engine.');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function modulePath(moduleUrl) {
|
|
13
|
+
try {
|
|
14
|
+
return fileURLToPath(moduleUrl);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
invalidRequest('Supervised custom engine moduleUrl must be a file URL under cwd.');
|
|
18
|
+
}
|
|
19
|
+
throw new Error('Unreachable module URL validation state.');
|
|
20
|
+
}
|
|
21
|
+
function insideCwd(cwd, filePath) {
|
|
22
|
+
const relativeModulePath = path.relative(cwd, filePath);
|
|
23
|
+
return !relativeModulePath.startsWith('..') && !path.isAbsolute(relativeModulePath);
|
|
24
|
+
}
|
|
25
|
+
function assertSupportedSupervisedModule(command) {
|
|
26
|
+
if (command.engine.kind !== 'module') {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (!insideCwd(command.cwd, modulePath(command.engine.moduleUrl))) {
|
|
30
|
+
invalidRequest('Supervised custom engine moduleUrl must be under cwd.');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function assertSupportedProcessEngine(command, profile) {
|
|
34
|
+
if (!supervisedProcess(profile)) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
assertSupportedSupervisedEngine(command);
|
|
38
|
+
assertSupportedSupervisedModule(command);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=run-process-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-process-engine.js","sourceRoot":"","sources":["../../../../source/run/run-process-engine.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,SAAS,iBAAiB,CAAC,OAAkC;IACzD,OAAO,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,oBAAoB,CAAC;AACnE,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAmB;IACxD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,cAAc,CAAC,4FAA4F,CAAC,CAAC;IACjH,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACjC,IAAI,CAAC;QACD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,cAAc,CAAC,kEAAkE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,QAAgB;IAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAmB;IACxD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO;IACX,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAChE,cAAc,CAAC,uDAAuD,CAAC,CAAC;IAC5E,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAmB,EAAE,OAAkC;IAChG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO;IACX,CAAC;IAED,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACzC,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC"}
|
package/run/run-support.js
CHANGED
|
@@ -34,6 +34,7 @@ function copyResourceUsagePolicy(policy) {
|
|
|
34
34
|
}
|
|
35
35
|
function copyTimeoutPolicy(policy) {
|
|
36
36
|
return {
|
|
37
|
+
collectionMilliseconds: policy.collectionMilliseconds,
|
|
37
38
|
hardMilliseconds: policy.hardMilliseconds,
|
|
38
39
|
softMilliseconds: policy.softMilliseconds
|
|
39
40
|
};
|
|
@@ -89,6 +90,37 @@ export function copyRunConfig(config) {
|
|
|
89
90
|
runtimeStateDir: config.runtimeStateDir
|
|
90
91
|
};
|
|
91
92
|
}
|
|
93
|
+
export function copyRunEngineSelection(engine) {
|
|
94
|
+
if (engine.kind === 'instance') {
|
|
95
|
+
return {
|
|
96
|
+
engine: engine.engine,
|
|
97
|
+
kind: 'instance'
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (engine.kind === 'module') {
|
|
101
|
+
return {
|
|
102
|
+
exportKind: engine.exportKind,
|
|
103
|
+
exportName: engine.exportName,
|
|
104
|
+
kind: 'module',
|
|
105
|
+
moduleUrl: engine.moduleUrl
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return { kind: 'default' };
|
|
109
|
+
}
|
|
110
|
+
export function runEngineFacts(engine) {
|
|
111
|
+
if (engine.kind === 'instance') {
|
|
112
|
+
return { kind: 'instance' };
|
|
113
|
+
}
|
|
114
|
+
if (engine.kind === 'module') {
|
|
115
|
+
return {
|
|
116
|
+
exportKind: engine.exportKind,
|
|
117
|
+
exportName: engine.exportName,
|
|
118
|
+
kind: 'module',
|
|
119
|
+
moduleUrl: engine.moduleUrl
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
return { kind: 'default' };
|
|
123
|
+
}
|
|
92
124
|
export function createRunRuntimePolicy(request, dependencies) {
|
|
93
125
|
return request.capabilityRestrictions.mode === 'enabled'
|
|
94
126
|
? createRuntimeCapabilityPolicy({
|
package/run/run-support.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-support.js","sourceRoot":"","sources":["../../../../source/run/run-support.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,6BAA6B,EAEhC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-support.js","sourceRoot":"","sources":["../../../../source/run/run-support.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { discoverRunFiles } from "./run-discovery.js";
|
|
2
|
+
import { RunCollectionError } from "./run-errors.js";
|
|
3
|
+
import { loadRunTestModules } from "./run-test-modules.js";
|
|
4
|
+
export async function createRunTestPlan(input) {
|
|
5
|
+
const files = await discoverRunFiles({ cwd: input.cwd, paths: input.paths });
|
|
6
|
+
const testFiles = await loadRunTestModules(files, input.engine);
|
|
7
|
+
try {
|
|
8
|
+
return input.engine.createTestPlanFromTestFiles({
|
|
9
|
+
files: testFiles,
|
|
10
|
+
root: {
|
|
11
|
+
metadata: {},
|
|
12
|
+
name: input.cwd
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
throw new RunCollectionError('Failed to collect tests from explicit run inputs.', { cause: error }, 'loader');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=run-test-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-test-plan.js","sourceRoot":"","sources":["../../../../source/run/run-test-plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAuB;IAC3D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEhE,IAAI,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC5C,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE;gBACF,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,GAAG;aAClB;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,mDAAmD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClH,CAAC;AACL,CAAC"}
|
package/run/run-types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { SerializedValue as SerializedValueShape } from '../compare/seriali
|
|
|
3
3
|
import type { Execute } from '../engine/execution.ts';
|
|
4
4
|
import type { Engine } from '../engine/engine.ts';
|
|
5
5
|
import type { ReporterDispatcher } from '../engine/reporter-dispatcher.ts';
|
|
6
|
-
import type { RunResourceUsageTracker, RunResult } from '../engine/run-result.ts';
|
|
6
|
+
import type { OrphanedNode, RunResourceUsageTracker, RunResult } from '../engine/run-result.ts';
|
|
7
7
|
import type { TestPlan } from '../engine/test-plan.ts';
|
|
8
8
|
import type { RuntimeCapabilityPolicyDependencies } from './capability-policy.ts';
|
|
9
9
|
import type { ResourceUsageTrackerOptions } from './resource-usage.ts';
|
|
@@ -11,6 +11,17 @@ export type SerializedValue = SerializedValueShape;
|
|
|
11
11
|
type RunExecuteOptions = NonNullable<Parameters<Execute>[1]>;
|
|
12
12
|
type RunOutputRenderer = NonNullable<RunExecuteOptions['outputRenderer']>;
|
|
13
13
|
type RunReporters = RunExecuteOptions['reporters'];
|
|
14
|
+
export type RunEngineSelection = {
|
|
15
|
+
readonly engine: Engine;
|
|
16
|
+
readonly kind: 'instance';
|
|
17
|
+
} | {
|
|
18
|
+
readonly exportKind: 'getter' | 'value';
|
|
19
|
+
readonly exportName: string;
|
|
20
|
+
readonly kind: 'module';
|
|
21
|
+
readonly moduleUrl: string;
|
|
22
|
+
} | {
|
|
23
|
+
readonly kind: 'default';
|
|
24
|
+
};
|
|
14
25
|
export type RunSelection = {
|
|
15
26
|
readonly kind: 'all';
|
|
16
27
|
};
|
|
@@ -54,6 +65,7 @@ export type RunResourceUsagePolicy = {
|
|
|
54
65
|
readonly samplingIntervalMilliseconds: number;
|
|
55
66
|
};
|
|
56
67
|
export type RunTimeoutPolicy = {
|
|
68
|
+
readonly collectionMilliseconds: number;
|
|
57
69
|
readonly hardMilliseconds: number;
|
|
58
70
|
readonly softMilliseconds: number;
|
|
59
71
|
};
|
|
@@ -95,7 +107,7 @@ export type RunRequest = {
|
|
|
95
107
|
export type RunCommand = {
|
|
96
108
|
readonly config: RunConfig;
|
|
97
109
|
readonly cwd: string;
|
|
98
|
-
readonly engine:
|
|
110
|
+
readonly engine: RunEngineSelection;
|
|
99
111
|
readonly request: RunRequest;
|
|
100
112
|
};
|
|
101
113
|
export type RunFacts = {
|
|
@@ -121,6 +133,7 @@ export type RunExecutionFacts = {
|
|
|
121
133
|
readonly baselineUpdateMode: 'none';
|
|
122
134
|
readonly capture: 'buffered' | 'live';
|
|
123
135
|
readonly debug: RunDebugRequest;
|
|
136
|
+
readonly engine: RunEngineFacts;
|
|
124
137
|
readonly order: 'plan';
|
|
125
138
|
readonly processModel: RunProcessModel;
|
|
126
139
|
readonly profile: string;
|
|
@@ -134,13 +147,51 @@ export type RunReproducibilityFacts = {
|
|
|
134
147
|
readonly seed: string;
|
|
135
148
|
readonly shard: RunShard;
|
|
136
149
|
};
|
|
150
|
+
export type RunEngineFacts = {
|
|
151
|
+
readonly exportKind: 'getter' | 'value';
|
|
152
|
+
readonly exportName: string;
|
|
153
|
+
readonly kind: 'module';
|
|
154
|
+
readonly moduleUrl: string;
|
|
155
|
+
} | {
|
|
156
|
+
readonly kind: 'default';
|
|
157
|
+
} | {
|
|
158
|
+
readonly kind: 'instance';
|
|
159
|
+
};
|
|
160
|
+
export type CollectedRunCase = {
|
|
161
|
+
readonly metadata: SerializedValue;
|
|
162
|
+
readonly name: string;
|
|
163
|
+
readonly params: string | null;
|
|
164
|
+
readonly suite: readonly string[];
|
|
165
|
+
};
|
|
166
|
+
export type CollectedRunFile = {
|
|
167
|
+
readonly cases: readonly CollectedRunCase[];
|
|
168
|
+
readonly file: string;
|
|
169
|
+
};
|
|
170
|
+
export type CollectedRunPlan = {
|
|
171
|
+
readonly defined: number;
|
|
172
|
+
readonly files: readonly CollectedRunFile[];
|
|
173
|
+
readonly orphans: readonly OrphanedNode[];
|
|
174
|
+
readonly root: {
|
|
175
|
+
readonly metadata: SerializedValue;
|
|
176
|
+
readonly name: string;
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
export type ResolvedRunPlan = {
|
|
180
|
+
readonly collectedPlan: CollectedRunPlan;
|
|
181
|
+
readonly kind: 'supervised';
|
|
182
|
+
} | {
|
|
183
|
+
readonly kind: 'local';
|
|
184
|
+
readonly testPlan: TestPlan;
|
|
185
|
+
};
|
|
137
186
|
export type ResolvedRun = {
|
|
187
|
+
readonly collectionRunnerErrors: readonly RunResult['runnerErrors'][number][];
|
|
138
188
|
readonly config: RunConfig;
|
|
139
189
|
readonly cwd: string;
|
|
190
|
+
readonly engine: RunEngineSelection;
|
|
140
191
|
readonly facts: RunFacts;
|
|
192
|
+
readonly plan: ResolvedRunPlan;
|
|
141
193
|
readonly reporters: RunReporters;
|
|
142
194
|
readonly request: RunRequest;
|
|
143
|
-
readonly testPlan: TestPlan;
|
|
144
195
|
};
|
|
145
196
|
export type RunOrchestratorDependencies = {
|
|
146
197
|
readonly createSeed: () => bigint;
|
package/run/run-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-types.d.ts","sourceRoot":"","sources":["../../../../source/run/run-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-types.d.ts","sourceRoot":"","sources":["../../../../source/run/run-types.ts"],"names":[],"mappings":"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"}
|
package/run/run-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-types.js","sourceRoot":"","sources":["../../../../source/run/run-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-types.js","sourceRoot":"","sources":["../../../../source/run/run-types.ts"],"names":[],"mappings":"AAiEA,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AACnD,MAAM,4BAA4B,GAAG,WAAW,CAAC;AA4LjD,MAAM,UAAU,4BAA4B,CAAC,WAAmB;IAC5D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,OAAO,yBAAyB,WAAW,KAAK;YAC5C,kFAAkF,CAAC;IAC3F,CAAC;IAED,IAAI,WAAW,KAAK,4BAA4B,EAAE,CAAC;QAC/C,OAAO,oGAAoG,CAAC;IAChH,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { discoverRunFiles } from "./run-discovery.js";
|
|
2
|
+
import { assertSupportedProcessEngine as assertSupportedProcessEngineSelection } from "./run-process-engine.js";
|
|
3
|
+
import { invalidRequest, noTestsCollected, unsupportedRequest } from "./run-errors.js";
|
|
4
|
+
import { validateRunEngineSelection } from "./run-engine-selection.js";
|
|
5
|
+
import { invalidRunProfileNameMessage } from "./run-types.js";
|
|
6
|
+
const minimumSeedValue = 0n;
|
|
7
|
+
function validateRunShard(request) {
|
|
8
|
+
if (request.shard.index !== 0 || request.shard.total !== 1) {
|
|
9
|
+
unsupportedRequest('Sharding is not implemented yet.');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function validateRunSeed(request) {
|
|
13
|
+
if (request.seed.value !== null && request.seed.value < minimumSeedValue) {
|
|
14
|
+
invalidRequest('Run seed must be a nonnegative bigint.');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function validatePositiveSafeInteger(value, label) {
|
|
18
|
+
if (value !== null && (!Number.isSafeInteger(value) || value <= 0)) {
|
|
19
|
+
invalidRequest(`${label} must be a positive safe integer.`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function validateResourceBudgets(resourceBudgets) {
|
|
23
|
+
validatePositiveSafeInteger(resourceBudgets.activeResourceCount, 'Active resource count budget');
|
|
24
|
+
validatePositiveSafeInteger(resourceBudgets.javaScriptEngineHeapBytes, 'JavaScript engine heap budget');
|
|
25
|
+
validatePositiveSafeInteger(resourceBudgets.residentSetBytes, 'Resident set budget');
|
|
26
|
+
validatePositiveSafeInteger(resourceBudgets.residentSetGrowthBytesPerSecond, 'Resident set growth budget');
|
|
27
|
+
}
|
|
28
|
+
function validateSamplingInterval(value) {
|
|
29
|
+
validatePositiveSafeInteger(value, 'Resource usage sampling interval');
|
|
30
|
+
}
|
|
31
|
+
function validateTimeoutPolicy(policy) {
|
|
32
|
+
validatePositiveSafeInteger(policy.collectionMilliseconds, 'Collection timeout');
|
|
33
|
+
validatePositiveSafeInteger(policy.softMilliseconds, 'Soft timeout');
|
|
34
|
+
validatePositiveSafeInteger(policy.hardMilliseconds, 'Hard timeout');
|
|
35
|
+
if (policy.softMilliseconds > policy.hardMilliseconds) {
|
|
36
|
+
invalidRequest('Soft timeout must not exceed hard timeout.');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function hasResourceBudgets(resourceBudgets) {
|
|
40
|
+
return resourceBudgets.activeResourceCount !== null ||
|
|
41
|
+
resourceBudgets.javaScriptEngineHeapBytes !== null ||
|
|
42
|
+
resourceBudgets.residentSetBytes !== null ||
|
|
43
|
+
resourceBudgets.residentSetGrowthBytesPerSecond !== null;
|
|
44
|
+
}
|
|
45
|
+
function validateRunResourceUsageRequest(request) {
|
|
46
|
+
if (request.resourceBudgetOverrides !== null) {
|
|
47
|
+
validateResourceBudgets(request.resourceBudgetOverrides);
|
|
48
|
+
}
|
|
49
|
+
validateSamplingInterval(request.resourceUsageSamplingIntervalMilliseconds);
|
|
50
|
+
if (request.measureResourceUsage === false &&
|
|
51
|
+
request.resourceBudgetOverrides !== null &&
|
|
52
|
+
hasResourceBudgets(request.resourceBudgetOverrides)) {
|
|
53
|
+
invalidRequest('Resource budget overrides require resource usage measurement.');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function assertValidRunProfileName(profileName) {
|
|
57
|
+
const message = invalidRunProfileNameMessage(profileName);
|
|
58
|
+
if (message !== null) {
|
|
59
|
+
invalidRequest(message);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function validateRunRequest(request) {
|
|
63
|
+
assertValidRunProfileName(request.profile);
|
|
64
|
+
if (request.paths.length === 0) {
|
|
65
|
+
noTestsCollected('No explicit run paths were provided.');
|
|
66
|
+
}
|
|
67
|
+
validateRunShard(request);
|
|
68
|
+
validateRunSeed(request);
|
|
69
|
+
validateRunResourceUsageRequest(request);
|
|
70
|
+
}
|
|
71
|
+
async function validateRunPaths(command) {
|
|
72
|
+
await discoverRunFiles({
|
|
73
|
+
cwd: command.cwd,
|
|
74
|
+
paths: command.request.paths
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function validateRunCommand(command) {
|
|
78
|
+
validateRunEngineSelection(command.engine);
|
|
79
|
+
}
|
|
80
|
+
export function validateRunResourceUsagePolicy(policy) {
|
|
81
|
+
validateResourceBudgets(policy.budgets);
|
|
82
|
+
validateSamplingInterval(policy.samplingIntervalMilliseconds);
|
|
83
|
+
if (!policy.measure && hasResourceBudgets(policy.budgets)) {
|
|
84
|
+
invalidRequest('Resource budgets require resource usage measurement.');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function validateRunMicrotestProfile(profile) {
|
|
88
|
+
validateRunResourceUsagePolicy(profile.resourceUsage);
|
|
89
|
+
validateTimeoutPolicy(profile.timeouts);
|
|
90
|
+
}
|
|
91
|
+
const runProfileValidators = {
|
|
92
|
+
microtest: validateRunMicrotestProfile
|
|
93
|
+
};
|
|
94
|
+
function readProfileTestFamily(profile) {
|
|
95
|
+
return profile.testFamily;
|
|
96
|
+
}
|
|
97
|
+
function isRunTestFamily(value) {
|
|
98
|
+
return value === 'microtest';
|
|
99
|
+
}
|
|
100
|
+
function validateRunProfile(profileName, profile) {
|
|
101
|
+
const testFamily = readProfileTestFamily(profile);
|
|
102
|
+
if (!isRunTestFamily(testFamily)) {
|
|
103
|
+
invalidRequest(`Invalid run profile "${profileName}": testFamily must be "microtest".`);
|
|
104
|
+
}
|
|
105
|
+
runProfileValidators[testFamily](profile);
|
|
106
|
+
}
|
|
107
|
+
function validateRunConfig(config) {
|
|
108
|
+
for (const [profileName, profile] of Object.entries(config.profiles)) {
|
|
109
|
+
assertValidRunProfileName(profileName);
|
|
110
|
+
validateRunProfile(profileName, profile);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export async function validateRunInput(command) {
|
|
114
|
+
validateRunCommand(command);
|
|
115
|
+
validateRunRequest(command.request);
|
|
116
|
+
validateRunConfig(command.config);
|
|
117
|
+
await validateRunPaths(command);
|
|
118
|
+
}
|
|
119
|
+
export function assertSupportedProcessEngine(command, profile) {
|
|
120
|
+
assertSupportedProcessEngineSelection(command, profile);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=run-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-validation.js","sourceRoot":"","sources":["../../../../source/run/run-validation.ts"],"names":[],"mappings":"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"}
|