@overkill-dev/run 0.0.66 → 0.0.67
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/config/benchmark-execution.js +30 -0
- package/config/benchmark-execution.js.map +1 -0
- package/config/config-error.d.ts +4 -0
- package/config/config-error.d.ts.map +1 -0
- package/config/config-error.js +7 -0
- package/config/config-error.js.map +1 -0
- package/config/config.d.ts +57 -0
- package/config/config.d.ts.map +1 -0
- package/{run/run-config.js → config/config.js} +54 -19
- package/config/config.js.map +1 -0
- package/{run/coverage-config-schema.d.ts → config/coverage-schema.d.ts} +7 -7
- package/config/coverage-schema.d.ts.map +1 -0
- package/{run/coverage-config-schema.js → config/coverage-schema.js} +1 -1
- package/config/coverage-schema.js.map +1 -0
- package/{run/run-config-defaults.js → config/defaults.js} +6 -1
- package/config/defaults.js.map +1 -0
- package/{run/run-execution-config.d.ts → config/execution.d.ts} +5 -7
- package/config/execution.d.ts.map +1 -0
- package/config/host-process.js +41 -0
- package/config/host-process.js.map +1 -0
- package/config/profile-file-discovery.js +88 -0
- package/config/profile-file-discovery.js.map +1 -0
- package/{run/profile-config-normalization.js → config/profile-normalization.js} +13 -13
- package/config/profile-normalization.js.map +1 -0
- package/{run/profile-file-glob.js → config/profile-patterns.js} +6 -10
- package/config/profile-patterns.js.map +1 -0
- package/{run/run-config-schema.d.ts → config/schema.d.ts} +208 -28
- package/config/schema.d.ts.map +1 -0
- package/{run/run-config-schema.js → config/schema.js} +38 -12
- package/config/schema.js.map +1 -0
- package/config/snapshot.js +204 -0
- package/config/snapshot.js.map +1 -0
- package/config/types.d.ts +157 -0
- package/config/types.d.ts.map +1 -0
- package/config/validation.js +91 -0
- package/config/validation.js.map +1 -0
- package/{run/work-distribution-config.js → config/work-distribution.js} +3 -3
- package/config/work-distribution.js.map +1 -0
- package/package.json +10 -7
- package/packages/run/command-line.entry-point.d.ts +5 -3
- package/packages/run/command-line.entry-point.d.ts.map +1 -1
- package/packages/run/command-line.entry-point.js +28 -7
- package/packages/run/command-line.entry-point.js.map +1 -1
- package/packages/run/config.entry-point.d.ts +8 -6
- package/packages/run/config.entry-point.d.ts.map +1 -1
- package/packages/run/config.entry-point.js +4 -4
- package/packages/run/config.entry-point.js.map +1 -1
- package/packages/run/run.entry-point.d.ts +6 -4
- package/packages/run/run.entry-point.d.ts.map +1 -1
- package/packages/run/run.entry-point.js +3 -3
- package/packages/run/run.entry-point.js.map +1 -1
- package/readme.md +43 -13
- package/run/attachment-eligibility.js +1 -1
- package/run/attachment-eligibility.js.map +1 -1
- package/run/attachment-record.js +2 -2
- package/run/attachment-record.js.map +1 -1
- package/run/attachment-results.js.map +1 -1
- package/run/benchmark-commands.d.ts +10 -0
- package/run/benchmark-commands.d.ts.map +1 -0
- package/run/benchmark-commands.js +82 -0
- package/run/benchmark-commands.js.map +1 -0
- package/run/child-process-outbox.js +36 -0
- package/run/child-process-outbox.js.map +1 -0
- package/run/command-line-command-namespace.d.ts.map +1 -1
- package/run/command-line-command-namespace.js.map +1 -1
- package/run/command-line-command.d.ts +26 -18
- package/run/command-line-command.d.ts.map +1 -1
- package/run/command-line-command.js +3 -2
- package/run/command-line-command.js.map +1 -1
- package/run/command-line-config.d.ts +5 -0
- package/run/command-line-config.d.ts.map +1 -0
- package/run/command-line-config.js +51 -0
- package/run/command-line-config.js.map +1 -0
- package/run/command-line-execution.js +82 -0
- package/run/command-line-execution.js.map +1 -0
- package/run/command-line-runner.d.ts +4 -5
- package/run/command-line-runner.d.ts.map +1 -1
- package/run/command-line-runner.js +6 -124
- package/run/command-line-runner.js.map +1 -1
- package/run/command-line-unimplemented-commands.js +1 -8
- package/run/command-line-unimplemented-commands.js.map +1 -1
- package/run/coverage-loaded-sources.js +8 -9
- package/run/coverage-loaded-sources.js.map +1 -1
- package/run/coverage-method-ranges.js +100 -0
- package/run/coverage-method-ranges.js.map +1 -0
- package/run/coverage-paths.js.map +1 -1
- package/run/coverage-reporting.js.map +1 -1
- package/run/coverage-runtime-source.js +66 -28
- package/run/coverage-runtime-source.js.map +1 -1
- package/run/coverage-session.js.map +1 -1
- package/run/coverage-source-map.js +2 -3
- package/run/coverage-source-map.js.map +1 -1
- package/run/coverage-source-selection.js +9 -7
- package/run/coverage-source-selection.js.map +1 -1
- package/run/coverage-tokens.js +26 -0
- package/run/coverage-tokens.js.map +1 -0
- package/run/duration-history-schema.js +1 -1
- package/run/duration-history-schema.js.map +1 -1
- package/run/node-command-line-runner.d.ts +1 -1
- package/run/node-command-line-runner.d.ts.map +1 -1
- package/run/node-command-line-runner.js +18 -10
- package/run/node-command-line-runner.js.map +1 -1
- package/run/request-snapshot.js +40 -0
- package/run/request-snapshot.js.map +1 -0
- package/run/run-collected-planning.js +9 -0
- package/run/run-collected-planning.js.map +1 -1
- package/run/run-collected-resolution.js.map +1 -1
- package/run/run-collection-error-result.js +3 -2
- package/run/run-collection-error-result.js.map +1 -1
- package/run/run-command-schema.js +1 -1
- package/run/run-command-schema.js.map +1 -1
- package/run/run-coverage.js.map +1 -1
- package/run/run-discovery-types.d.ts +2 -2
- package/run/run-discovery-types.d.ts.map +1 -1
- package/run/run-discovery.js +14 -96
- package/run/run-discovery.js.map +1 -1
- package/run/run-engine-primitives.d.ts.map +1 -1
- package/run/run-errors.d.ts +5 -7
- package/run/run-errors.d.ts.map +1 -1
- package/run/run-errors.js +0 -6
- package/run/run-errors.js.map +1 -1
- package/run/run-facts.js +5 -70
- package/run/run-facts.js.map +1 -1
- package/run/run-host-process.js +1 -40
- package/run/run-host-process.js.map +1 -1
- package/run/run-if-main-options.js.map +1 -1
- package/run/run-if-main-profile.d.ts +8 -10
- package/run/run-if-main-profile.d.ts.map +1 -1
- package/run/run-if-main-profile.js +25 -112
- package/run/run-if-main-profile.js.map +1 -1
- package/run/run-if-main.d.ts.map +1 -1
- package/run/run-if-main.js.map +1 -1
- package/run/run-in-process-execution.js +2 -0
- package/run/run-in-process-execution.js.map +1 -1
- package/run/run-input-resolution.js +11 -6
- package/run/run-input-resolution.js.map +1 -1
- package/run/run-isolated-command.js +2 -2
- package/run/run-isolated-command.js.map +1 -1
- package/run/run-isolated-process.js +12 -7
- package/run/run-isolated-process.js.map +1 -1
- package/run/run-local-command.js +7 -10
- package/run/run-local-command.js.map +1 -1
- package/run/run-local-execution.js.map +1 -1
- package/run/run-local-resolution.js +1 -3
- package/run/run-local-resolution.js.map +1 -1
- package/run/run-local-test-plan.js.map +1 -1
- package/run/run-orchestrator-dependencies.d.ts +4 -4
- package/run/run-orchestrator-dependencies.d.ts.map +1 -1
- package/run/run-ordering.js.map +1 -1
- package/run/run-process-engine.js.map +1 -1
- package/run/run-profile-facts.js +62 -0
- package/run/run-profile-facts.js.map +1 -0
- package/run/run-record-types.d.ts +5 -4
- package/run/run-record-types.d.ts.map +1 -1
- package/run/run-reporter-resolution.js +4 -1
- package/run/run-reporter-resolution.js.map +1 -1
- package/run/run-result-reporting.js.map +1 -1
- package/run/run-selection.js.map +1 -1
- package/run/run-supervised-process.js +3 -4
- package/run/run-supervised-process.js.map +1 -1
- package/run/run-support.js +1 -222
- package/run/run-support.js.map +1 -1
- package/run/run-types.d.ts +40 -166
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run-validation.js +4 -63
- package/run/run-validation.js.map +1 -1
- package/run/run.d.ts.map +1 -1
- package/run/run.js +32 -16
- package/run/run.js.map +1 -1
- package/run/supervised-child-process.js +1 -1
- package/run/supervised-child-process.js.map +1 -1
- package/run/supervised-child.entry-point.js +9 -6
- package/run/supervised-child.entry-point.js.map +1 -1
- package/run/supervised-child.js +1 -1
- package/run/supervised-child.js.map +1 -1
- package/run/supervised-protocol.js.map +1 -1
- package/run/supervised-run-resource-policy.js.map +1 -1
- package/run/supervised-run-state.js.map +1 -1
- package/run/test-profile.js +21 -0
- package/run/test-profile.js.map +1 -0
- package/run/work-unit-identity.js.map +1 -1
- package/run/work-unit-planning.js +6 -6
- package/run/work-unit-planning.js.map +1 -1
- package/run/work-unit-resource-constraints.js +1 -1
- package/run/work-unit-resource-constraints.js.map +1 -1
- package/run/worker-pool-host-protocol-schema.js +1 -1
- package/run/worker-pool-host-protocol-schema.js.map +1 -1
- package/run/worker-pool-host.entry-point.js +7 -4
- package/run/worker-pool-host.entry-point.js.map +1 -1
- package/run/worker-pool-lanes.js.map +1 -1
- package/run/worker-pool-lifecycle-lanes.js.map +1 -1
- package/run/worker-pool-placement-planning.js.map +1 -1
- package/run/worker-pool-protocol.js.map +1 -1
- package/run/worker-pool-routing.js.map +1 -1
- package/run/worker-pool-runtime.js.map +1 -1
- package/sbom.cdx.json +26 -43
- package/run/coverage-config-schema.d.ts.map +0 -1
- package/run/coverage-config-schema.js.map +0 -1
- package/run/profile-config-normalization.js.map +0 -1
- package/run/profile-file-glob.js.map +0 -1
- package/run/run-config-defaults.js.map +0 -1
- package/run/run-config-schema.d.ts.map +0 -1
- package/run/run-config-schema.js.map +0 -1
- package/run/run-config.d.ts +0 -62
- package/run/run-config.d.ts.map +0 -1
- package/run/run-config.js.map +0 -1
- package/run/run-execution-config.d.ts.map +0 -1
- package/run/work-distribution-config.js.map +0 -1
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { createCommandLineCommandNamespace } from "../../run/command-line-command-namespace.js";
|
|
2
|
-
import { createUnimplementedCommand, loadUnimplementedBaselineCommands
|
|
3
|
-
import {
|
|
2
|
+
import { createUnimplementedCommand, loadUnimplementedBaselineCommands } from "../../run/command-line-unimplemented-commands.js";
|
|
3
|
+
import { loadConfig } from "./config.entry-point.js";
|
|
4
4
|
export { commandLineExitCodes } from "../../run/command-line-command.js";
|
|
5
|
-
export { defineConfig,
|
|
5
|
+
export { defineConfig, normalizeConfig, loadConfig, ConfigError } from "./config.entry-point.js";
|
|
6
6
|
const commandLoaders = {
|
|
7
7
|
loadBaselineCommands: loadUnimplementedBaselineCommands,
|
|
8
|
-
loadBenchmarkCommands
|
|
8
|
+
async loadBenchmarkCommands() {
|
|
9
|
+
const { createBenchmarkCommands } = await import("../../run/benchmark-commands.js");
|
|
10
|
+
const [runnerModule, orchestratorModule] = await Promise.all([
|
|
11
|
+
import("../../run/command-line-runner.js"),
|
|
12
|
+
import("../../run/run-orchestrator.entry-point.js")
|
|
13
|
+
]);
|
|
14
|
+
return createBenchmarkCommands({
|
|
15
|
+
createDefaultReporter: runnerModule.loadDefaultLineReporter,
|
|
16
|
+
loadConfig,
|
|
17
|
+
orchestrator: orchestratorModule.orchestrator
|
|
18
|
+
});
|
|
19
|
+
}
|
|
9
20
|
};
|
|
10
21
|
export function createNodeCommandLineRunner(options) {
|
|
11
22
|
const nodeCommandNamespace = createCommandLineCommandNamespace(commandLoaders);
|
|
@@ -24,7 +35,7 @@ export function createNodeCommandLineRunner(options) {
|
|
|
24
35
|
discoverRunFilesWithProjectRoot: runDependencies.runDiscovery.discoverRunFilesWithProjectRoot,
|
|
25
36
|
loadRunEngineModule: runDependencies.loadRunEngineModule,
|
|
26
37
|
loadRunTestModules: runDependencies.loadRunTestModules,
|
|
27
|
-
|
|
38
|
+
loadConfig,
|
|
28
39
|
startSupervisedChild: childProcessStarters.startSupervisedChild,
|
|
29
40
|
startWorkerPoolHost: childProcessStarters.startWorkerPoolHost
|
|
30
41
|
}
|
|
@@ -35,7 +46,17 @@ export function createNodeCommandLineRunner(options) {
|
|
|
35
46
|
};
|
|
36
47
|
return {
|
|
37
48
|
baseline: nodeCommandNamespace.baseline,
|
|
38
|
-
bench:
|
|
49
|
+
bench: {
|
|
50
|
+
baseline: nodeCommandNamespace.bench.baseline,
|
|
51
|
+
async listBenchmarks(request) {
|
|
52
|
+
const loadedRunner = await loadRunner();
|
|
53
|
+
return await loadedRunner.bench.listBenchmarks(request);
|
|
54
|
+
},
|
|
55
|
+
async runBenchmarks(request) {
|
|
56
|
+
const loadedRunner = await loadRunner();
|
|
57
|
+
return await loadedRunner.bench.runBenchmarks(request);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
39
60
|
async listTests(request) {
|
|
40
61
|
const loadedRunner = await loadRunner();
|
|
41
62
|
return await loadedRunner.listTests(request);
|
|
@@ -61,7 +82,7 @@ async function loadDefaultRunner() {
|
|
|
61
82
|
discoverRunFilesWithProjectRoot: dependenciesModule.runDiscovery.discoverRunFilesWithProjectRoot,
|
|
62
83
|
loadRunEngineModule: dependenciesModule.loadRunEngineModule,
|
|
63
84
|
loadRunTestModules: dependenciesModule.loadRunTestModules,
|
|
64
|
-
|
|
85
|
+
loadConfig,
|
|
65
86
|
startSupervisedChild: childProcessStarters.startSupervisedChild,
|
|
66
87
|
startWorkerPoolHost: childProcessStarters.startWorkerPoolHost
|
|
67
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-line.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/command-line.entry-point.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EACH,0BAA0B,EAC1B,iCAAiC,
|
|
1
|
+
{"version":3,"file":"command-line.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/command-line.entry-point.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export { defineConfig } from '../../
|
|
3
|
-
export {
|
|
4
|
-
export type { IntegrationRetryPolicy, RetryArtifactPolicy } from '../../
|
|
5
|
-
export type {
|
|
6
|
-
export type {
|
|
1
|
+
export declare const loadConfig: import("../../config/config.ts").ConfigLoader;
|
|
2
|
+
export { defineConfig, normalizeConfig } from '../../config/config.ts';
|
|
3
|
+
export { ConfigError } from '../../config/config-error.ts';
|
|
4
|
+
export type { IntegrationRetryPolicy, RetryArtifactPolicy } from '../../config/execution.ts';
|
|
5
|
+
export type { ProjectIntegrationRetryPolicy } from '../../config/schema.ts';
|
|
6
|
+
export type { LoadedConfig, ConfigLoader, ConfigLoaderDependencies, ConfigLoadRequest, ProjectCoverageOutput, ProjectCoveragePolicy, ProjectCoverageSources, ProjectCoverageThresholds, ProjectAttachmentLimits, Config, ProjectIntegrationExecution, ProjectIntegrationProfileConfig, ProjectMeasuredResourceUsage, ProjectMicrotestExecution, ProjectMicrotestProfileConfig, ProjectProfileConfig, ProjectProfileFiles, ProjectProfilesConfig, ProjectResourceBudgets, ProjectResourceUsageConfig, ProjectTimingProfilePolicy, ProjectTimeoutConfig, ProjectUnmeasuredResourceUsage } from '../../config/config.ts';
|
|
7
|
+
export type { NormalizedConfig, ProfileConfig, BenchmarkProfileConfig, TestProfileConfig } from '../../config/types.ts';
|
|
8
|
+
export type { ProjectBenchmarkProfileConfig } from '../../config/schema.ts';
|
|
7
9
|
//# sourceMappingURL=config.entry-point.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/config.entry-point.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"config.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/config.entry-point.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,UAAU,+CAGrB,CAAC;AAEH,OAAO,EACH,YAAY,EACZ,eAAe,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,YAAY,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EACR,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,MAAM,EACN,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EACjC,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAExH,YAAY,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -8,7 +8,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
8
8
|
};
|
|
9
9
|
import fs from 'node:fs/promises';
|
|
10
10
|
import { pathToFileURL } from 'node:url';
|
|
11
|
-
import {
|
|
11
|
+
import { createConfigLoader } from "../../config/config.js";
|
|
12
12
|
async function fileExists(filePath) {
|
|
13
13
|
try {
|
|
14
14
|
await fs.access(filePath);
|
|
@@ -21,10 +21,10 @@ async function fileExists(filePath) {
|
|
|
21
21
|
async function importModule(configPath) {
|
|
22
22
|
return await import(__rewriteRelativeImportExtension(pathToFileURL(configPath).href));
|
|
23
23
|
}
|
|
24
|
-
export const
|
|
24
|
+
export const loadConfig = createConfigLoader({
|
|
25
25
|
fileExists,
|
|
26
26
|
importModule
|
|
27
27
|
});
|
|
28
|
-
export { defineConfig } from "../../
|
|
29
|
-
export {
|
|
28
|
+
export { defineConfig, normalizeConfig } from "../../config/config.js";
|
|
29
|
+
export { ConfigError } from "../../config/config-error.js";
|
|
30
30
|
//# sourceMappingURL=config.entry-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/config.entry-point.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/config.entry-point.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,KAAK,UAAU,UAAU,CAAC,QAAgB;IACtC,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,UAAkB;IAC1C,OAAO,MAAM,MAAM,kCAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAY,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC;IACzC,UAAU;IACV,YAAY;CACf,CAAC,CAAC;AAEH,OAAO,EACH,YAAY,EACZ,eAAe,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const runIfMain: import("../../run/run-if-main.ts").RunIfMain;
|
|
2
2
|
export { orchestrator } from '../../run/run-orchestrator.entry-point.ts';
|
|
3
|
-
export { defineConfig,
|
|
3
|
+
export { defineConfig, normalizeConfig, loadConfig, ConfigError } from './config.entry-point.ts';
|
|
4
4
|
export { RunExecutionPlanError, RunResolutionError } from '../../run/run-errors.ts';
|
|
5
|
-
export type { IntegrationRetryPolicy, RetryArtifactPolicy,
|
|
5
|
+
export type { IntegrationRetryPolicy, RetryArtifactPolicy, ProjectIntegrationRetryPolicy } from './config.entry-point.ts';
|
|
6
6
|
export type { PlannedResourceOwner, ResourceOwnerPlacement, ResourceOwnershipPlan } from '../../run/resource-ownership-plan.ts';
|
|
7
|
-
export type {
|
|
7
|
+
export type { LoadedConfig, ConfigLoader, ConfigLoaderDependencies, ConfigLoadRequest, ProjectCoverageOutput, ProjectCoveragePolicy, ProjectCoverageSources, ProjectCoverageThresholds, ProjectAttachmentLimits, Config, ProjectIntegrationExecution, ProjectIntegrationProfileConfig, ProjectMeasuredResourceUsage, ProjectMicrotestExecution, ProjectMicrotestProfileConfig, ProjectProfileFiles, ProjectProfileConfig, ProjectProfilesConfig, ProjectResourceBudgets, ProjectResourceUsageConfig, ProjectTimingProfilePolicy, ProjectTimeoutConfig, ProjectUnmeasuredResourceUsage } from '../../config/config.ts';
|
|
8
8
|
export type { RunIfMain, RunIfMainDependencies } from '../../run/run-if-main.ts';
|
|
9
9
|
export type { RunIfMainProfileResolver, RunIfMainProfileResolverDependencies } from '../../run/run-if-main-profile.ts';
|
|
10
10
|
export type { RunIfMainOptions, RunIfMainRootOptions } from '../../run/run-if-main-options.ts';
|
|
@@ -12,8 +12,10 @@ export type { ExecutionPlanResourceFacts, RunExecutionPlanConflict, RunResolutio
|
|
|
12
12
|
export type { RunInvocationTimingOptions } from '../../run/run-timing-collection.ts';
|
|
13
13
|
export type { RuntimeDimensions, RuntimeId, RuntimeScenarioBindings, WorkId, WorkloadId } from '../../engine/identity.ts';
|
|
14
14
|
export type { DynamicWorkUnitId, PlacementAttemptId, PlacementAttemptInterruptionCause, PlacementAttemptReason, PlacementRecoveryDecision, PlacementTrace, PlacementTraceEntry, PlacementWorkerId, TraceWorkUnitId } from '../../run/placement-trace.ts';
|
|
15
|
-
export type {
|
|
15
|
+
export type { CollectedRunCase, CollectedRunFile, CollectedRunPlan, ExecutorDescriptor, PlacementAssignment, PlacementLane, PlacementPlan, ResolvedRun, ResolvedRunPlan, RunCaseFacts, RunCommand, RunDebugRequest, RunEngineFacts, RunEnvironmentFacts, RunExecutionRequest, RunFacts, RunExecutionFacts, RunHostProcessFacts, RunHostProcessReason, BenchmarkOrchestrator, RunReporterDeliveryResult, RunOrchestrator, RunReproducibilityFacts, RunRequest, RunSeed, RunShard, RunTestFamily, RunWorkerCountFacts, SerializedValue, DuplicateExecutionSafety, WorkUnitId, WorkUnit, WorkUnitMode } from '../../run/run-types.ts';
|
|
16
|
+
export type { CoverageOutput, NormalizedConfig, CoveragePolicy, CoverageSourcePolicy, CoverageThresholds, HostProcess, IntegrationExecution, IntegrationProfileConfig, LoaderConfig, MaxConcurrency, MicrotestExecution, MicrotestProfileConfig, RunOrder, ProcessModel, ProfileConfig, BenchmarkExecution, BenchmarkProfileConfig, TestProfileConfig, ProfileFiles, ProfilesConfig, ResourceBudgets, ResourceUsagePolicy, Scheduling, TimeoutPolicy, TimingCollectionMode, TimingCollectionOverride, TimingProfilePolicy, WorkDistribution, WorkGroup, WorkGroupGranularity, WorkGroupOrder, WorkGroupScheduling, WorkGroupWorkerLifecycle, WorkerPoolAssignmentPolicy, WorkerPoolDispatchPolicy, WorkerPoolHedgingPolicy, WorkerLifecycle } from '../../config/types.ts';
|
|
16
17
|
export type { RunEngineSelection } from '../../run/run-request-types.ts';
|
|
17
18
|
export type { RunFilter, RunRuntimeDimensionFilter, RunRuntimeFilter, RunRuntimeScenarioFilter, RunRuntimeVariantFilter, RunSelection, RunStringFilterField } from '../../run/run-request-types.ts';
|
|
18
19
|
export type { ResolvedRuntime, RunRecord, RunRecordCoverage, RunRecordRequest, RunRecordResult, RunRecordVersions } from '../../run/run-record-types.ts';
|
|
20
|
+
export type { ProjectBenchmarkProfileConfig } from '../../config/schema.ts';
|
|
19
21
|
//# sourceMappingURL=run.entry-point.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,SAAS,8CAapB,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EACH,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"run.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@ import { fileURLToPath } from 'node:url';
|
|
|
3
3
|
import { createRunIfMain } from "../../run/run-if-main.js";
|
|
4
4
|
import { createDirectProfileResolver } from "../../run/run-if-main-profile.js";
|
|
5
5
|
import { runDirectEntrypoint } from "../../run/run-orchestrator.entry-point.js";
|
|
6
|
-
import {
|
|
6
|
+
import { loadConfig } from "./config.entry-point.js";
|
|
7
7
|
const resolveDirectProfile = createDirectProfileResolver({
|
|
8
8
|
fileURLToPath,
|
|
9
9
|
glob,
|
|
10
|
-
|
|
10
|
+
loadConfig,
|
|
11
11
|
realpath,
|
|
12
12
|
stat
|
|
13
13
|
});
|
|
@@ -26,6 +26,6 @@ export const runIfMain = createRunIfMain({
|
|
|
26
26
|
stderr: process.stderr
|
|
27
27
|
});
|
|
28
28
|
export { orchestrator } from "../../run/run-orchestrator.entry-point.js";
|
|
29
|
-
export { defineConfig,
|
|
29
|
+
export { defineConfig, normalizeConfig, loadConfig, ConfigError } from "./config.entry-point.js";
|
|
30
30
|
export { RunExecutionPlanError, RunResolutionError } from "../../run/run-errors.js";
|
|
31
31
|
//# sourceMappingURL=run.entry-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"run.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;IACrD,aAAa;IACb,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,IAAI;CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;IACrC,uBAAuB;QACnB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;IACD,YAAY;QACR,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5B,CAAC;IACD,oBAAoB;IACpB,mBAAmB;IACnB,WAAW,CAAC,QAAQ;QAChB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAChC,CAAC;IACD,MAAM,EAAE,OAAO,CAAC,MAAM;CACzB,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EACH,YAAY,EACZ,eAAe,EACf,UAAU,EACV,WAAW,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/readme.md
CHANGED
|
@@ -7,16 +7,22 @@ Top-level API:
|
|
|
7
7
|
- `RunCommand`
|
|
8
8
|
- `RunRequest`
|
|
9
9
|
- `RunFacts`
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
10
|
+
- `ResourceBudgets`
|
|
11
|
+
- `ResourceUsagePolicy`
|
|
12
12
|
- `ResolvedRun`
|
|
13
13
|
- `defineConfig(config)`
|
|
14
|
-
- `
|
|
14
|
+
- `normalizeConfig(config)`
|
|
15
|
+
- `loadConfig({ cwd, configPath })`
|
|
15
16
|
- `runIfMain(import.meta, testNode, options?)`
|
|
16
17
|
- `orchestrator.resolve(command)`
|
|
17
18
|
- `orchestrator.run(command)`
|
|
18
19
|
- `orchestrator.runWithReporterDelivery(command)`
|
|
19
20
|
|
|
21
|
+
`Config` describes authored policy. `normalizeConfig` produces a
|
|
22
|
+
command-independent `NormalizedConfig` without reading files; `loadConfig`
|
|
23
|
+
returns that policy plus `configPath` as `LoadedConfig`. Programmatic commands
|
|
24
|
+
accept normalized policy. The old run-prefixed config names are removed.
|
|
25
|
+
|
|
20
26
|
Configuration loading and authoring are also exposed through
|
|
21
27
|
`@overkill-dev/run/config` for packages that need the config-owned surface
|
|
22
28
|
without importing orchestration.
|
|
@@ -51,14 +57,36 @@ Command-line business logic is exposed through `@overkill-dev/run/command-line`:
|
|
|
51
57
|
- `commandLineRunner.bench.baseline.list(context)`
|
|
52
58
|
- `commandLineRunner.bench.baseline.diff(context)`
|
|
53
59
|
- `defineConfig(config)`
|
|
54
|
-
- `
|
|
60
|
+
- `normalizeConfig(config)`
|
|
61
|
+
- `loadConfig({ cwd, configPath })`
|
|
55
62
|
|
|
56
63
|
The binary recognizes `overkill bench run [paths...]` and
|
|
57
|
-
`overkill bench list [paths...]
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
`overkill bench list [paths...]`. Run accepts `CommandLineBenchmarkRunRequest`
|
|
65
|
+
with `{ cwd, configPath, runRequest }`; list accepts
|
|
66
|
+
`CommandLineBenchmarkListRequest` with `{ cwd, configPath, listRequest }`.
|
|
67
|
+
Nested requests share the ordinary selection and execution fields, with
|
|
68
|
+
`profile: string | null`. An omitted profile selects the sole benchmark profile.
|
|
69
|
+
Unknown, missing, ambiguous, or ordinary-family selections return argument error
|
|
70
|
+
`3`. Ordinary run/list and direct-file execution reject the benchmark family.
|
|
71
|
+
|
|
72
|
+
Benchmark profiles use `testFamily: 'benchmark'` in the same registry and support
|
|
73
|
+
`execution`, `reporters`, `attachments`, `resourceUsage`, `timings`, and
|
|
74
|
+
`timeouts`. `orchestrator.bench.list(command, { timing: null })` returns a
|
|
75
|
+
`ResolvedRun`; `bench.run` and `bench.runWithReporterDelivery` return the regular
|
|
76
|
+
result and reporter-delivery shapes. These methods require an explicit profile
|
|
77
|
+
in `RunCommand` and explicit invocation timing options. Ordinary methods reject
|
|
78
|
+
benchmark profiles before discovery. CLI benchmark commands infer the sole
|
|
79
|
+
benchmark profile when `--profile` is omitted.
|
|
80
|
+
|
|
81
|
+
Benchmark execution supports worker pools and supervised processes. It defaults
|
|
82
|
+
to reused workers, file work units, serial scheduling, `maxConcurrency: 1`, and
|
|
83
|
+
hedging off. Placement resolves one lane across all work units even when more
|
|
84
|
+
workers are requested. Concurrent groups and hedging are rejected. Timeout
|
|
85
|
+
defaults are collection 5000 ms, soft 40000 ms, and hard 60000 ms; hard overrides
|
|
86
|
+
cannot exceed 60000 ms. Resources, runtime descriptors, artifacts, assertion
|
|
87
|
+
outcomes, and reporter selection follow the regular runner flow. Listing imports
|
|
88
|
+
definitions without executing bodies or acquiring resources. Measurement,
|
|
89
|
+
calibration, and benchmark budgets are not provided by this integration.
|
|
62
90
|
|
|
63
91
|
Programmatic selection helpers are exposed through `@overkill-dev/run/filters`:
|
|
64
92
|
|
|
@@ -147,6 +175,8 @@ coverage. Known test sources are excluded automatically. Mixed test bundles
|
|
|
147
175
|
use `coverage.sources.exclude` to exclude their test originals.
|
|
148
176
|
|
|
149
177
|
All-files reporting emits 0% when selected runtime sources were never loaded.
|
|
178
|
+
Native TypeScript coverage uses Node's type stripping and preserves source
|
|
179
|
+
offsets. Never-loaded TypeScript files need no generated source maps.
|
|
150
180
|
A scope containing no executable sources fails, including scopes matching only
|
|
151
181
|
types or no files. Native data is retained on reporting failures. Replay and
|
|
152
182
|
automatic coverage cleanup await the replay and record-retention workflows.
|
|
@@ -212,9 +242,9 @@ Runner profile names are project-owned. Names such as `microtest`,
|
|
|
212
242
|
`backend-http`, `ui-browser`, `ui.browser`, and `unit_fast` select profile
|
|
213
243
|
entries exactly. Behavior comes from the selected profile config, not from the
|
|
214
244
|
name. Profile names must be non-empty and contain only letters, numbers, dots,
|
|
215
|
-
underscores, and hyphens. The
|
|
216
|
-
|
|
217
|
-
|
|
245
|
+
underscores, and hyphens. The name `benchmark` is valid. Profiles declare
|
|
246
|
+
`testFamily: 'microtest'`, `'integration'`, or `'benchmark'`; ordinary commands
|
|
247
|
+
accept microtest and integration families. The selected
|
|
218
248
|
profile's test family is recorded in `RunFacts.execution.testFamily`.
|
|
219
249
|
|
|
220
250
|
Configured microtest profiles may set `files.include` and `files.exclude`.
|
|
@@ -315,7 +345,7 @@ dependency scopes, mixed worker lifecycles for one hard constraint, and worker
|
|
|
315
345
|
capacity that cannot satisfy the resolved lifecycle lanes. These failures are
|
|
316
346
|
reported as `RunExecutionPlanError` with deterministic structured conflicts
|
|
317
347
|
before test execution begins.
|
|
318
|
-
Direct `
|
|
348
|
+
Direct `NormalizedConfig` values may set `execution.hostProcess` for worker-pool
|
|
319
349
|
profiles. `{ kind: 'direct' }` keeps the worker-thread pool in the coordinator
|
|
320
350
|
process. `{ kind: 'child', nodeArguments: [...] }` starts one supervised host
|
|
321
351
|
process around the worker-thread pool, applies validated Node/V8 arguments to
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { workIdentityKey } from "../engine/identity.js";
|
|
2
2
|
import { collectedRunCaseEntries } from "./collected-run-plan.js";
|
|
3
3
|
export function runHasAttachmentScopes(resolved) {
|
|
4
|
-
if (resolved.facts.execution.testFamily
|
|
4
|
+
if (resolved.facts.execution.testFamily === 'microtest' || resolved.facts.cases.length === 0) {
|
|
5
5
|
return false;
|
|
6
6
|
}
|
|
7
7
|
const selected = new Set(resolved.facts.cases.map(function selectedWork(entry) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-eligibility.js","sourceRoot":"","sources":["../../../../source/run/attachment-eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,MAAM,UAAU,sBAAsB,CAAC,QAAqB;IACxD,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,KAAK,
|
|
1
|
+
{"version":3,"file":"attachment-eligibility.js","sourceRoot":"","sources":["../../../../source/run/attachment-eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,MAAM,UAAU,sBAAsB,CAAC,QAAqB;IACxD,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,KAAK,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,KAAK;QACzE,OAAO,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;QACxC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,QAAQ;YAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjD,CAAC,CAAC;QACF,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,kBAAkB,CAAC,KAAK;QAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBACxD,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/run/attachment-record.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createStoredRunValue } from "./supervised-run-state.js";
|
|
|
3
3
|
import { collectedRunPlanFromTestPlan, createRunResultFromCollectedPlan } from "./collected-run-plan.js";
|
|
4
4
|
import { createRunRecordSession } from "./run-record.js";
|
|
5
5
|
import { runRecordVersions } from "./run-record-versions.js";
|
|
6
|
-
import {
|
|
6
|
+
import { selectProfile } from "./test-profile.js";
|
|
7
7
|
function createAttachmentRecordCheckpoint(record, resolved, dependencies) {
|
|
8
8
|
const pending = createStoredRunValue(Promise.resolve());
|
|
9
9
|
const startedAt = Number(dependencies.wallClock.currentMonotonicMicroseconds);
|
|
@@ -34,7 +34,7 @@ export async function createAttachmentRecord(resolved, dependencies) {
|
|
|
34
34
|
const record = createRunRecordSession(resolved.cwd, {
|
|
35
35
|
config: resolved.config,
|
|
36
36
|
engine: resolved.engine,
|
|
37
|
-
profile:
|
|
37
|
+
profile: selectProfile(resolved.request.profile, resolved.config),
|
|
38
38
|
projectRoot: resolved.facts.environment.projectRoot,
|
|
39
39
|
request: { ...resolved.request, seed: { value: BigInt(resolved.facts.reproducibility.seed) } }
|
|
40
40
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-record.js","sourceRoot":"","sources":["../../../../source/run/attachment-record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,sBAAsB,EAAyB,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"attachment-record.js","sourceRoot":"","sources":["../../../../source/run/attachment-record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-results.js","sourceRoot":"","sources":["../../../../source/run/attachment-results.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,eAAe,EAA+B,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAsD,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"attachment-results.js","sourceRoot":"","sources":["../../../../source/run/attachment-results.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ConfigLoader } from '../config/config.ts';
|
|
2
|
+
import { type CommandLineBenchmarkCommands } from './command-line-command.ts';
|
|
3
|
+
import type { RunOrchestrator } from './run-types.ts';
|
|
4
|
+
import type { CommandLineConfigDependencies } from './command-line-config.ts';
|
|
5
|
+
export type BenchmarkCommandDependencies = CommandLineConfigDependencies & {
|
|
6
|
+
readonly loadConfig: ConfigLoader;
|
|
7
|
+
readonly orchestrator: RunOrchestrator;
|
|
8
|
+
};
|
|
9
|
+
export declare function createBenchmarkCommands(dependencies: BenchmarkCommandDependencies): CommandLineBenchmarkCommands;
|
|
10
|
+
//# sourceMappingURL=benchmark-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-commands.d.ts","sourceRoot":"","sources":["../../../../source/run/benchmark-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAEH,KAAK,4BAA4B,EACpC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAuD9E,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,GAAG;IACvE,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;CAC1C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,4BAA4B,GAAG,4BAA4B,CAuDhH"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { createCommandLineErrorResultFromUnknown } from "./command-line-command.js";
|
|
2
|
+
import { createUnimplementedBaselineCommands } from "./command-line-unimplemented-commands.js";
|
|
3
|
+
import { invalidRequest } from "./run-errors.js";
|
|
4
|
+
import { listTestsWithLoadedConfig, runTestsWithLoadedConfig } from "./command-line-execution.js";
|
|
5
|
+
import { createSystemRunTimingMeasurement, emptyTimingSpanMetadata } from "./run-timing-collection.js";
|
|
6
|
+
function inferBenchmarkProfile(config) {
|
|
7
|
+
const names = Object
|
|
8
|
+
.entries(config.profiles)
|
|
9
|
+
.filter(function isBenchmarkProfile([, profile]) {
|
|
10
|
+
return profile.testFamily === 'benchmark';
|
|
11
|
+
})
|
|
12
|
+
.map(function profileName([name]) {
|
|
13
|
+
return name;
|
|
14
|
+
})
|
|
15
|
+
.toSorted(function compareProfileNames(first, second) {
|
|
16
|
+
return first.localeCompare(second);
|
|
17
|
+
});
|
|
18
|
+
const [name] = names;
|
|
19
|
+
if (name === undefined) {
|
|
20
|
+
return invalidRequest('No benchmark profiles are configured. Configure a benchmark profile and use --profile.');
|
|
21
|
+
}
|
|
22
|
+
if (names.length > 1) {
|
|
23
|
+
return invalidRequest(`Multiple benchmark profiles are configured: ${names.join(', ')}. Use --profile <name>.`);
|
|
24
|
+
}
|
|
25
|
+
return name;
|
|
26
|
+
}
|
|
27
|
+
function selectBenchmarkProfile(name, config) {
|
|
28
|
+
if (name === null) {
|
|
29
|
+
return inferBenchmarkProfile(config);
|
|
30
|
+
}
|
|
31
|
+
const profile = Object.hasOwn(config.profiles, name) ? config.profiles[name] : undefined;
|
|
32
|
+
if (profile === undefined) {
|
|
33
|
+
return invalidRequest(`Unknown benchmark profile: "${name}".`);
|
|
34
|
+
}
|
|
35
|
+
const { testFamily } = profile;
|
|
36
|
+
if (testFamily !== 'benchmark') {
|
|
37
|
+
return invalidRequest(`Profile "${name}" has testFamily "${testFamily}". Benchmark commands require testFamily "benchmark".`);
|
|
38
|
+
}
|
|
39
|
+
return name;
|
|
40
|
+
}
|
|
41
|
+
export function createBenchmarkCommands(dependencies) {
|
|
42
|
+
const execution = {
|
|
43
|
+
createDefaultReporter: dependencies.createDefaultReporter,
|
|
44
|
+
orchestrator: {
|
|
45
|
+
resolve: dependencies.orchestrator.bench.list,
|
|
46
|
+
runWithReporterDelivery: dependencies.orchestrator.bench.runWithReporterDelivery
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
baseline: createUnimplementedBaselineCommands('bench baseline'),
|
|
51
|
+
async listBenchmarks(request) {
|
|
52
|
+
try {
|
|
53
|
+
const config = await dependencies.loadConfig(request);
|
|
54
|
+
const profile = selectBenchmarkProfile(request.listRequest.profile, config);
|
|
55
|
+
return await listTestsWithLoadedConfig({
|
|
56
|
+
...request,
|
|
57
|
+
listRequest: { ...request.listRequest, profile }
|
|
58
|
+
}, execution, config);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return createCommandLineErrorResultFromUnknown(error);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
async runBenchmarks(request) {
|
|
65
|
+
const timing = createSystemRunTimingMeasurement();
|
|
66
|
+
try {
|
|
67
|
+
const config = await timing.measureAsync('config.load', emptyTimingSpanMetadata(), async function loadBenchmarkConfig() {
|
|
68
|
+
return await dependencies.loadConfig(request);
|
|
69
|
+
});
|
|
70
|
+
const profile = selectBenchmarkProfile(request.runRequest.profile, config);
|
|
71
|
+
return await runTestsWithLoadedConfig({
|
|
72
|
+
...request,
|
|
73
|
+
runRequest: { ...request.runRequest, profile }
|
|
74
|
+
}, execution, config, { timing });
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
return createCommandLineErrorResultFromUnknown(error);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=benchmark-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-commands.js","sourceRoot":"","sources":["../../../../source/run/benchmark-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { childProcessEnvelope } from "./child-process-protocol.js";
|
|
2
|
+
export function createChildProcessOutbox(correlationId, ipc) {
|
|
3
|
+
const pending = new Set();
|
|
4
|
+
let failure = null;
|
|
5
|
+
return {
|
|
6
|
+
send(message) {
|
|
7
|
+
const delivery = Promise.withResolvers();
|
|
8
|
+
pending.add(delivery.promise);
|
|
9
|
+
function complete(error) {
|
|
10
|
+
failure = failure ?? error;
|
|
11
|
+
pending.delete(delivery.promise);
|
|
12
|
+
delivery.resolve(null);
|
|
13
|
+
}
|
|
14
|
+
if (ipc.send === null) {
|
|
15
|
+
complete(null);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
ipc.send(childProcessEnvelope(correlationId, message), complete);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
complete(error instanceof Error ? error : new Error('Child IPC send failed.', { cause: error }));
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
async disconnect() {
|
|
26
|
+
while (pending.size > 0) {
|
|
27
|
+
await Promise.all(pending);
|
|
28
|
+
}
|
|
29
|
+
ipc.disconnect?.();
|
|
30
|
+
if (failure !== null) {
|
|
31
|
+
throw failure;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=child-process-outbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child-process-outbox.js","sourceRoot":"","sources":["../../../../source/run/child-process-outbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA6B,MAAM,6BAA6B,CAAC;AAgB9F,MAAM,UAAU,wBAAwB,CAAC,aAAqB,EAAE,GAAoB;IAChF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACzC,IAAI,OAAO,GAAiB,IAAI,CAAC;IAEjC,OAAO;QACH,IAAI,CAAC,OAAO;YACR,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAQ,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9B,SAAS,QAAQ,CAAC,KAAmB;gBACjC,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YACD,IAAI,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACrG,CAAC;QACL,CAAC;QACD,KAAK,CAAC,UAAU;YACZ,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YACD,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;YACnB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,OAAO,CAAC;YAClB,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-line-command-namespace.d.ts","sourceRoot":"","sources":["../../../../source/run/command-line-command-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,2BAA2B,EAC3B,4BAA4B,
|
|
1
|
+
{"version":3,"file":"command-line-command-namespace.d.ts","sourceRoot":"","sources":["../../../../source/run/command-line-command-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,2BAA2B,EAC3B,4BAA4B,EAG/B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,yBAAyB,GAAG;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC1E,QAAQ,CAAC,qBAAqB,EAAE,MAAM,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAC/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-line-command-namespace.js","sourceRoot":"","sources":["../../../../source/run/command-line-command-namespace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-line-command-namespace.js","sourceRoot":"","sources":["../../../../source/run/command-line-command-namespace.ts"],"names":[],"mappings":"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"}
|