@overkill-dev/run 0.0.65 → 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/attachments/attachment-context.js +10 -0
- package/attachments/attachment-context.js.map +1 -1
- package/attachments/failure-artifact-stream.js +53 -0
- package/attachments/failure-artifact-stream.js.map +1 -0
- package/attachments/resource-failure-context.js +41 -0
- package/attachments/resource-failure-context.js.map +1 -0
- 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} +5 -5
- 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} +206 -26
- 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/engine/case-execution.d.ts +1 -0
- package/engine/case-execution.d.ts.map +1 -1
- package/engine/case-execution.js +17 -29
- package/engine/case-execution.js.map +1 -1
- package/engine/recorded-assertion-failure.js +30 -0
- package/engine/recorded-assertion-failure.js.map +1 -0
- package/engine/run-artifact.d.ts +2 -2
- package/engine/run-artifact.d.ts.map +1 -1
- package/engine/runtime-attachment.d.ts +25 -5
- package/engine/runtime-attachment.d.ts.map +1 -1
- package/engine/runtime-attachment.js.map +1 -1
- package/package-version.js +31 -0
- package/package-version.js.map +1 -0
- package/package.json +30 -9
- package/packages/resources/attachment-context.entry-point.js +1 -1
- package/packages/resources/attachment-context.entry-point.js.map +1 -1
- 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/packages/simulation/transcript.entry-point.js +2 -0
- package/packages/simulation/transcript.entry-point.js.map +1 -1
- package/readme.md +56 -14
- package/reporters/human-reporter-rendering.js +52 -22
- package/reporters/human-reporter-rendering.js.map +1 -1
- package/resources/failure-artifacts.js +9 -0
- package/resources/failure-artifacts.js.map +1 -0
- package/run/assertion-result-schema.js +69 -0
- package/run/assertion-result-schema.js.map +1 -0
- package/run/attachment-coordinator-context.js.map +1 -1
- package/run/attachment-coordinator.js +8 -4
- package/run/attachment-coordinator.js.map +1 -1
- package/run/attachment-eligibility.js +1 -1
- package/run/attachment-eligibility.js.map +1 -1
- package/run/attachment-execution.js +53 -6
- package/run/attachment-execution.js.map +1 -1
- package/run/attachment-protocol.js +4 -0
- package/run/attachment-protocol.js.map +1 -1
- package/run/attachment-record.js +2 -2
- package/run/attachment-record.js.map +1 -1
- package/run/attachment-reporter.js +1 -0
- package/run/attachment-reporter.js.map +1 -1
- package/run/attachment-results.js +5 -9
- package/run/attachment-results.js.map +1 -1
- package/run/attachment-storage-session.js +1 -0
- package/run/attachment-storage-session.js.map +1 -1
- package/run/attachment-storage-writer.js +128 -0
- package/run/attachment-storage-writer.js.map +1 -0
- package/run/attachment-store.js +84 -127
- package/run/attachment-store.js.map +1 -1
- package/run/attachment-wire-schema.js +45 -9
- package/run/attachment-wire-schema.js.map +1 -1
- package/run/attachment-worker-context.js +1 -1
- package/run/attachment-worker-context.js.map +1 -1
- package/run/attachment-writer.js +5 -3
- package/run/attachment-writer.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/capability-policy-snapshots.d.ts +3 -2
- package/run/capability-policy-snapshots.d.ts.map +1 -1
- package/run/capability-policy-snapshots.js.map +1 -1
- package/run/capability-policy.js +48 -38
- package/run/capability-policy.js.map +1 -1
- package/run/child-process-outbox.js +36 -0
- package/run/child-process-outbox.js.map +1 -0
- package/run/child-process-protocol.js +17 -13
- package/run/child-process-protocol.js.map +1 -1
- package/run/child-process-shutdown.js +54 -0
- package/run/child-process-shutdown.js.map +1 -0
- package/run/collected-run-plan-schema.js +90 -0
- package/run/collected-run-plan-schema.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 +68 -25
- 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 +12 -6
- 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/current-process-run-orchestrator.js +7 -11
- package/run/current-process-run-orchestrator.js.map +1 -1
- package/run/diff-schema.js +78 -0
- package/run/diff-schema.js.map +1 -0
- package/run/duration-history-schema.js +1 -1
- package/run/duration-history-schema.js.map +1 -1
- package/run/failure-artifact-retention.js +76 -0
- package/run/failure-artifact-retention.js.map +1 -0
- package/run/node-child-process-starters.js +8 -1
- package/run/node-child-process-starters.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/node-process-policy-observation.js +43 -0
- package/run/node-process-policy-observation.js.map +1 -0
- package/run/permission-denial-runtime-policy.js +3 -0
- package/run/permission-denial-runtime-policy.js.map +1 -1
- package/run/reporter-event-schema.js +42 -0
- package/run/reporter-event-schema.js.map +1 -0
- package/run/request-snapshot.js +40 -0
- package/run/request-snapshot.js.map +1 -0
- package/run/resource-disposal-error.js +27 -0
- package/run/resource-disposal-error.js.map +1 -0
- package/run/resource-failure-preparation.js +86 -0
- package/run/resource-failure-preparation.js.map +1 -0
- package/run/resource-lifecycle-disposal.js +132 -0
- package/run/resource-lifecycle-disposal.js.map +1 -0
- package/run/resource-lifecycle-session-acquirer.js +31 -10
- package/run/resource-lifecycle-session-acquirer.js.map +1 -1
- package/run/resource-lifecycle-state.d.ts +2 -1
- package/run/resource-lifecycle-state.d.ts.map +1 -1
- package/run/resource-lifecycle-state.js +30 -1
- package/run/resource-lifecycle-state.js.map +1 -1
- package/run/resource-lifecycle.js +26 -104
- package/run/resource-lifecycle.js.map +1 -1
- package/run/run-artifact-id-schema.js +27 -0
- package/run/run-artifact-id-schema.js.map +1 -0
- package/run/run-artifact-schema.js +74 -0
- package/run/run-artifact-schema.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 +4 -3
- package/run/run-collection-error-result.js.map +1 -1
- package/run/run-command-schema.js +60 -0
- package/run/run-command-schema.js.map +1 -0
- 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 +7 -7
- package/run/run-errors.d.ts.map +1 -1
- package/run/run-errors.js +17 -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-identity-schema.js +38 -0
- package/run/run-identity-schema.js.map +1 -0
- 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 +23 -13
- package/run/run-local-command.js.map +1 -1
- package/run/run-local-coverage.js +16 -3
- package/run/run-local-coverage.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-orchestrator.d.ts +2 -2
- package/run/run-orchestrator.d.ts.map +1 -1
- package/run/run-orchestrator.js +2 -2
- package/run/run-orchestrator.js.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-record-versions.js +1 -30
- package/run/run-record-versions.js.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-result-schema.js +65 -0
- package/run/run-result-schema.js.map +1 -0
- package/run/run-runtime-schema.js +64 -0
- package/run/run-runtime-schema.js.map +1 -0
- 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 +5 -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/serialized-value-schema.js +76 -0
- package/run/serialized-value-schema.js.map +1 -0
- package/run/simulation-witness.js +38 -0
- package/run/simulation-witness.js.map +1 -0
- package/run/supervised-child-failure.js +26 -0
- package/run/supervised-child-failure.js.map +1 -0
- package/run/supervised-child-process.d.ts +3 -0
- package/run/supervised-child-process.d.ts.map +1 -1
- package/run/supervised-child-process.js +3 -1
- package/run/supervised-child-process.js.map +1 -1
- package/run/supervised-child-transport.js +125 -0
- package/run/supervised-child-transport.js.map +1 -0
- package/run/supervised-child.entry-point.js +47 -39
- package/run/supervised-child.entry-point.js.map +1 -1
- package/run/supervised-child.js +3 -3
- package/run/supervised-child.js.map +1 -1
- package/run/supervised-protocol-schema.js +42 -0
- package/run/supervised-protocol-schema.js.map +1 -0
- package/run/supervised-protocol.js.map +1 -1
- package/run/supervised-run-collection.js +33 -30
- package/run/supervised-run-collection.js.map +1 -1
- package/run/supervised-run-resource-policy.js.map +1 -1
- package/run/supervised-run-runtime.js +33 -15
- package/run/supervised-run-runtime.js.map +1 -1
- package/run/supervised-run-state.js +43 -22
- package/run/supervised-run-state.js.map +1 -1
- package/run/supervised-run.js +69 -36
- package/run/supervised-run.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-execution.js +2 -3
- package/run/worker-pool-execution.js.map +1 -1
- package/run/worker-pool-host-process.js +50 -20
- package/run/worker-pool-host-process.js.map +1 -1
- package/run/worker-pool-host-protocol-schema.js +80 -0
- package/run/worker-pool-host-protocol-schema.js.map +1 -0
- package/run/worker-pool-host-protocol.js.map +1 -1
- package/run/worker-pool-host-task.js +20 -11
- package/run/worker-pool-host-task.js.map +1 -1
- package/run/worker-pool-host-transport.js +96 -0
- package/run/worker-pool-host-transport.js.map +1 -0
- package/run/worker-pool-host.entry-point.js +43 -8
- 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 +3 -0
- package/run/worker-pool-protocol.js.map +1 -1
- package/run/worker-pool-resource-lifecycle-execution.js +66 -1
- package/run/worker-pool-resource-lifecycle-execution.js.map +1 -1
- package/run/worker-pool-routing.js +2 -1
- package/run/worker-pool-routing.js.map +1 -1
- package/run/worker-pool-runtime.js.map +1 -1
- package/run/worker-pool-task-events.js +18 -15
- package/run/worker-pool-task-events.js.map +1 -1
- package/run/worker-pool-task-schema.js +61 -0
- package/run/worker-pool-task-schema.js.map +1 -0
- package/run/worker-pool-task-validation.js +1 -0
- package/run/worker-pool-task-validation.js.map +1 -1
- package/run/worker-pool-worker-resources.js +68 -0
- package/run/worker-pool-worker-resources.js.map +1 -1
- package/run/worker-pool-worker.js +11 -4
- package/run/worker-pool-worker.js.map +1 -1
- package/sbom.cdx.json +27 -44
- package/stored-value.js +12 -0
- package/stored-value.js.map +1 -0
- package/transcript/http-transcript-artifact.js +2 -0
- package/transcript/http-transcript-artifact.js.map +1 -0
- package/transcript/transcript-store.d.ts +1 -1
- package/transcript/transcript-store.d.ts.map +1 -1
- package/transcript/transcript-store.js +29 -3
- package/transcript/transcript-store.js.map +1 -1
- package/run/coverage-config-schema.d.ts.map +0 -1
- package/run/coverage-config-schema.js.map +0 -1
- package/run/node-process-capability-restrictions.js +0 -92
- package/run/node-process-capability-restrictions.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
package/run/run-facts.js
CHANGED
|
@@ -1,80 +1,15 @@
|
|
|
1
1
|
import { serializeValue } from "../compare/serialized-value.js";
|
|
2
|
-
import {
|
|
2
|
+
import { resolveResourceUsagePolicy, resolveTimingCollection } from "./run-profile-facts.js";
|
|
3
|
+
import { selectProfile } from "./test-profile.js";
|
|
3
4
|
import { hostProcessFacts } from "./run-host-process.js";
|
|
4
5
|
import { runShardHashAlgorithm } from "./run-shard-hash-algorithm.js";
|
|
5
|
-
import {
|
|
6
|
-
function disabledResourceBudgets() {
|
|
7
|
-
return {
|
|
8
|
-
activeResourceCount: null,
|
|
9
|
-
javaScriptEngineHeapBytes: null,
|
|
10
|
-
residentSetBytes: null,
|
|
11
|
-
residentSetGrowthBytesPerSecond: null
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
function readBudgetOverride(configValue, requestValue) {
|
|
15
|
-
return requestValue ?? configValue;
|
|
16
|
-
}
|
|
17
|
-
function resolveResourceBudgets(configBudgets, requestOverrides) {
|
|
18
|
-
if (requestOverrides === null) {
|
|
19
|
-
return copyResourceBudgets(configBudgets);
|
|
20
|
-
}
|
|
21
|
-
return {
|
|
22
|
-
activeResourceCount: readBudgetOverride(configBudgets.activeResourceCount, requestOverrides.activeResourceCount),
|
|
23
|
-
javaScriptEngineHeapBytes: readBudgetOverride(configBudgets.javaScriptEngineHeapBytes, requestOverrides.javaScriptEngineHeapBytes),
|
|
24
|
-
residentSetBytes: readBudgetOverride(configBudgets.residentSetBytes, requestOverrides.residentSetBytes),
|
|
25
|
-
residentSetGrowthBytesPerSecond: readBudgetOverride(configBudgets.residentSetGrowthBytesPerSecond, requestOverrides.residentSetGrowthBytesPerSecond)
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function hasResourceBudgets(resourceBudgets) {
|
|
29
|
-
return resourceBudgets.activeResourceCount !== null ||
|
|
30
|
-
resourceBudgets.javaScriptEngineHeapBytes !== null ||
|
|
31
|
-
resourceBudgets.residentSetBytes !== null ||
|
|
32
|
-
resourceBudgets.residentSetGrowthBytesPerSecond !== null;
|
|
33
|
-
}
|
|
34
|
-
function assertResourceBudgetOverridesAllowed(measureResourceUsage, requestOverrides) {
|
|
35
|
-
if (!measureResourceUsage && requestOverrides !== null && hasResourceBudgets(requestOverrides)) {
|
|
36
|
-
invalidRequest('Resource budget overrides require resource usage measurement.');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
export function selectedProfile(request, config) {
|
|
40
|
-
const profile = config.profiles[request.profile];
|
|
41
|
-
if (profile === undefined) {
|
|
42
|
-
invalidRequest(`Unknown run profile: ${request.profile}`);
|
|
43
|
-
}
|
|
44
|
-
return profile;
|
|
45
|
-
}
|
|
46
|
-
export function resolveResourceUsagePolicy(request, profile) {
|
|
47
|
-
const configuredPolicy = profile.resourceUsage;
|
|
48
|
-
const measureResourceUsage = request.measureResourceUsage ?? configuredPolicy.measure;
|
|
49
|
-
const resourceUsageSamplingIntervalMilliseconds = request.resourceUsageSamplingIntervalMilliseconds ??
|
|
50
|
-
configuredPolicy.samplingIntervalMilliseconds;
|
|
51
|
-
const resourceBudgets = measureResourceUsage
|
|
52
|
-
? resolveResourceBudgets(configuredPolicy.budgets, request.resourceBudgetOverrides)
|
|
53
|
-
: disabledResourceBudgets();
|
|
54
|
-
assertResourceBudgetOverridesAllowed(measureResourceUsage, request.resourceBudgetOverrides);
|
|
55
|
-
return {
|
|
56
|
-
budgets: resourceBudgets,
|
|
57
|
-
measure: measureResourceUsage,
|
|
58
|
-
samplingIntervalMilliseconds: resourceUsageSamplingIntervalMilliseconds
|
|
59
|
-
};
|
|
60
|
-
}
|
|
6
|
+
import { runEngineFacts } from "./run-support.js";
|
|
61
7
|
function resolvedSeed(request, dependencies) {
|
|
62
8
|
return request.seed.value ?? dependencies.createSeed();
|
|
63
9
|
}
|
|
64
|
-
function strategyRequiresPreciseTiming(profile) {
|
|
65
|
-
return profile.execution.processModel === 'worker-pool' &&
|
|
66
|
-
(profile.execution.assignmentPolicy === 'duration-history-balanced' ||
|
|
67
|
-
profile.execution.hedging.mode === 'on');
|
|
68
|
-
}
|
|
69
|
-
export function resolveTimingCollection(request, profile) {
|
|
70
|
-
if (request.timingCollection === 'precise' || strategyRequiresPreciseTiming(profile)) {
|
|
71
|
-
return 'precise';
|
|
72
|
-
}
|
|
73
|
-
return profile.timings.collection;
|
|
74
|
-
}
|
|
75
10
|
function createRunExecutionFacts(input, profile) {
|
|
76
11
|
const facts = {
|
|
77
|
-
attachments: profile.testFamily === '
|
|
12
|
+
attachments: profile.testFamily === 'microtest' ? null : profile.attachments,
|
|
78
13
|
baselineUpdateMode: input.request.baselineUpdateMode,
|
|
79
14
|
capture: input.request.capture,
|
|
80
15
|
coverage: input.request.coverage,
|
|
@@ -125,7 +60,7 @@ export function runCaseFactsFromTestPlan(testPlan, fileSetForCase) {
|
|
|
125
60
|
});
|
|
126
61
|
}
|
|
127
62
|
export function createRunFacts(input) {
|
|
128
|
-
const profile =
|
|
63
|
+
const profile = selectProfile(input.request.profile, input.config);
|
|
129
64
|
return {
|
|
130
65
|
cases: input.cases,
|
|
131
66
|
coveragePolicy: input.request.coverage && profile.testFamily === 'microtest' ? profile.coverage : null,
|
package/run/run-facts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-facts.js","sourceRoot":"","sources":["../../../../source/run/run-facts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"run-facts.js","sourceRoot":"","sources":["../../../../source/run/run-facts.ts"],"names":[],"mappings":"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"}
|
package/run/run-host-process.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const deniedNodeArgumentNames = new Set([
|
|
3
|
-
'--env-file',
|
|
4
|
-
'--eval',
|
|
5
|
-
'--experimental-loader',
|
|
6
|
-
'--import',
|
|
7
|
-
'--loader',
|
|
8
|
-
'--print',
|
|
9
|
-
'--require',
|
|
10
|
-
'--run',
|
|
11
|
-
'--test',
|
|
12
|
-
'--watch'
|
|
13
|
-
]);
|
|
14
|
-
function nodeArgumentName(argument) {
|
|
15
|
-
const assignmentIndex = argument.indexOf('=');
|
|
16
|
-
return assignmentIndex === -1 ? argument : argument.slice(0, assignmentIndex);
|
|
17
|
-
}
|
|
1
|
+
import { validateHostProcess } from "../config/host-process.js";
|
|
18
2
|
function isInspectArgument(argument) {
|
|
19
3
|
return argument === '--inspect' ||
|
|
20
4
|
argument.startsWith('--inspect=') ||
|
|
@@ -49,29 +33,6 @@ function childHostReasons(nodeArguments) {
|
|
|
49
33
|
...nodeArguments.flatMap(nodeArgumentReasons)
|
|
50
34
|
]);
|
|
51
35
|
}
|
|
52
|
-
function validateNodeArgument(argument) {
|
|
53
|
-
if (argument.length === 0) {
|
|
54
|
-
invalidRequest('Host process Node argument must not be empty.');
|
|
55
|
-
}
|
|
56
|
-
if (argument.includes('\n') || argument.includes('\0')) {
|
|
57
|
-
invalidRequest('Host process Node argument must stay on one command-line token.');
|
|
58
|
-
}
|
|
59
|
-
if (!argument.startsWith('--')) {
|
|
60
|
-
invalidRequest(`Host process Node argument must use long-form syntax: ${argument}`);
|
|
61
|
-
}
|
|
62
|
-
const argumentName = nodeArgumentName(argument);
|
|
63
|
-
if (deniedNodeArgumentNames.has(argumentName)) {
|
|
64
|
-
invalidRequest(`Host process Node argument is not supported: ${argumentName}`);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
export function validateHostProcess(hostProcess) {
|
|
68
|
-
if (hostProcess.kind === 'direct') {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
for (const argument of hostProcess.nodeArguments) {
|
|
72
|
-
validateNodeArgument(argument);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
36
|
export function hostProcessFacts(hostProcess) {
|
|
76
37
|
validateHostProcess(hostProcess);
|
|
77
38
|
if (hostProcess.kind === 'direct') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-host-process.js","sourceRoot":"","sources":["../../../../source/run/run-host-process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"run-host-process.js","sourceRoot":"","sources":["../../../../source/run/run-host-process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,SAAS,iBAAiB,CAAC,QAAgB;IACvC,OAAO,QAAQ,KAAK,WAAW;QAC3B,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QACjC,QAAQ,KAAK,eAAe;QAC5B,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACrC,QAAQ,KAAK,gBAAgB;QAC7B,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IACzC,OAAO,QAAQ,KAAK,QAAQ;QACxB,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QAC9B,QAAQ,KAAK,YAAY;QACzB,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAClC,QAAQ,KAAK,aAAa;QAC1B,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAClB,OAAwC;IAExC,MAAM,CAAE,KAAK,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3E,OAAO,CAAE,KAAK,EAAE,GAAG,IAAI,CAAE,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IACzC,OAAO;QACH,GAAG,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAE,2BAAoC,CAAE,CAAC,CAAC,CAAC,EAAE;QAC7E,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,WAAoB,CAAE,CAAC,CAAC,CAAC,EAAE;QAC9D,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,WAAoB,CAAE,CAAC,CAAC,CAAC,EAAE;KACnE,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,aAAgC;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEpF,OAAO,aAAa,CAAC;QACjB,UAAU;QACV,GAAG,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC;KAChD,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAwB;IACrD,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEjC,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACH,IAAI,EAAE,OAAO;QACb,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QACpD,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC,aAAa,CAAC;KACvD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
export const caseIdSchema = z.strictObject({
|
|
3
|
+
file: z.string().nullable(),
|
|
4
|
+
params: z.string().nullable(),
|
|
5
|
+
suite: z.array(z.string()),
|
|
6
|
+
title: z.string()
|
|
7
|
+
});
|
|
8
|
+
export const runtimeIdSchema = z.strictObject({
|
|
9
|
+
dimensions: z.record(z.string(), z.string()),
|
|
10
|
+
name: z.string(),
|
|
11
|
+
scenarios: z.record(z.string(), z.string()),
|
|
12
|
+
variantId: z.string().nullable()
|
|
13
|
+
});
|
|
14
|
+
export const workloadIdSchema = z.strictObject({ name: z.string(), params: z.record(z.string(), z.string()) });
|
|
15
|
+
export const workIdSchema = z.strictObject({
|
|
16
|
+
case: caseIdSchema,
|
|
17
|
+
runtimes: z.array(runtimeIdSchema),
|
|
18
|
+
workload: workloadIdSchema.nullable()
|
|
19
|
+
});
|
|
20
|
+
export const attemptIdSchema = z.strictObject({ index: z.number().int().nonnegative() });
|
|
21
|
+
const sourceLocationSchema = z.discriminatedUnion('kind', [
|
|
22
|
+
z.strictObject({ kind: z.literal('unknown') }),
|
|
23
|
+
z.strictObject({
|
|
24
|
+
column: z.number().nullable(),
|
|
25
|
+
file: z.string(),
|
|
26
|
+
kind: z.literal('known'),
|
|
27
|
+
line: z.number().nullable()
|
|
28
|
+
})
|
|
29
|
+
]);
|
|
30
|
+
export const sourceLocationsSchema = z.tuple([sourceLocationSchema]).rest(sourceLocationSchema);
|
|
31
|
+
export const annotationsSchema = z.strictObject({ ownership: z.array(z.string()), tags: z.array(z.string()) });
|
|
32
|
+
export const controlsSchema = z.strictObject({
|
|
33
|
+
capture: z.enum(['buffered', 'live']).nullable(),
|
|
34
|
+
duplicateExecution: z.enum(['forbidden', 'idempotent']).nullable(),
|
|
35
|
+
timeoutMilliseconds: z.number().nullable()
|
|
36
|
+
});
|
|
37
|
+
export const suitePathSchema = z.array(z.strictObject({ definitionLocations: sourceLocationsSchema, title: z.string() }));
|
|
38
|
+
//# sourceMappingURL=run-identity-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-identity-schema.js","sourceRoot":"","sources":["../../../../source/run/run-identity-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-if-main-options.js","sourceRoot":"","sources":["../../../../source/run/run-if-main-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-if-main-options.js","sourceRoot":"","sources":["../../../../source/run/run-if-main-options.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAc3E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,OAA0B,EAC1B,MAAoB,EACpB,OAAqC;IAErC,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED,OAAO,CAAE,MAAM,2BAA2B,EAAE,CAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAClC,MAAoB,EACpB,OAAqC;IAErC,OAAO,OAAO,EAAE,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAqC;IACjE,OAAO,OAAO,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAqC;IAC9D,OAAO,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAqC,EAAE,GAAW;IACxE,OAAO,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC;AACvC,CAAC"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
type SelectedDirectProfile = {
|
|
4
|
-
readonly fileSet: string | null;
|
|
5
|
-
readonly name: string;
|
|
6
|
-
readonly profile: RunProfileConfig;
|
|
7
|
-
};
|
|
1
|
+
import type { LoadedConfig, ConfigLoader } from '../config/config.ts';
|
|
2
|
+
import type { TestProfileConfig } from '../config/types.ts';
|
|
8
3
|
type RunIfMainProfileGlobOptions = {
|
|
9
4
|
readonly cwd: string;
|
|
10
5
|
readonly exclude: readonly string[];
|
|
@@ -13,15 +8,18 @@ type RunIfMainProfileGlobOptions = {
|
|
|
13
8
|
type RunIfMainProfilePathStats = {
|
|
14
9
|
readonly isFile: () => boolean;
|
|
15
10
|
};
|
|
16
|
-
export type DirectProfileContext =
|
|
17
|
-
readonly
|
|
11
|
+
export type DirectProfileContext = {
|
|
12
|
+
readonly fileSet: string | null;
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly profile: TestProfileConfig;
|
|
15
|
+
readonly config: LoadedConfig;
|
|
18
16
|
readonly file: string;
|
|
19
17
|
readonly projectRoot: string;
|
|
20
18
|
};
|
|
21
19
|
export type RunIfMainProfileResolverDependencies = {
|
|
22
20
|
readonly fileURLToPath: (url: string) => string;
|
|
23
21
|
readonly glob: (pattern: string | readonly string[], options: RunIfMainProfileGlobOptions) => AsyncIterable<string>;
|
|
24
|
-
readonly
|
|
22
|
+
readonly loadConfig: ConfigLoader;
|
|
25
23
|
readonly realpath: (filePath: string) => Promise<string>;
|
|
26
24
|
readonly stat: (filePath: string) => Promise<RunIfMainProfilePathStats>;
|
|
27
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-if-main-profile.d.ts","sourceRoot":"","sources":["../../../../source/run/run-if-main-profile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-if-main-profile.d.ts","sourceRoot":"","sources":["../../../../source/run/run-if-main-profile.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACR,YAAY,EACZ,YAAY,EACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAiB,iBAAiB,EAAgB,MAAM,oBAAoB,CAAC;AASzF,KAAK,2BAA2B,GAAG;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IAC/C,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,CACX,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACnC,OAAO,EAAE,2BAA2B,KACnC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CACnC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,GAAG,EAAE,MAAM,KACV,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAsKnC"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { relative, resolve } from 'node:path';
|
|
2
|
-
import {
|
|
2
|
+
import { discoverProfileFiles, ProfileFileDiscoveryError } from "../config/profile-file-discovery.js";
|
|
3
|
+
import { ConfigError } from "../config/config-error.js";
|
|
4
|
+
import { selectTestProfile } from "./test-profile.js";
|
|
3
5
|
function directFilePath(meta, dependencies) {
|
|
4
6
|
try {
|
|
5
7
|
return dependencies.fileURLToPath(meta.url);
|
|
6
8
|
}
|
|
7
9
|
catch (error) {
|
|
8
|
-
throw new
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
async function sameRealPath(firstPath, secondPath, dependencies) {
|
|
12
|
-
try {
|
|
13
|
-
return await dependencies.realpath(firstPath) === await dependencies.realpath(secondPath);
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
return resolve(firstPath) === resolve(secondPath);
|
|
10
|
+
throw new ConfigError('runIfMain() requires a file: import.meta.url.', { cause: error });
|
|
17
11
|
}
|
|
18
12
|
}
|
|
19
13
|
async function canonicalPath(filePath, dependencies) {
|
|
@@ -24,106 +18,25 @@ async function canonicalPath(filePath, dependencies) {
|
|
|
24
18
|
return resolve(filePath);
|
|
25
19
|
}
|
|
26
20
|
}
|
|
27
|
-
async function
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
for await (const file of matches) {
|
|
31
|
-
files.push(resolve(cwd, file));
|
|
32
|
-
}
|
|
33
|
-
return files;
|
|
34
|
-
}
|
|
35
|
-
async function matchedProfilePatternFiles(profileFiles, cwd, dependencies) {
|
|
36
|
-
const files = [];
|
|
37
|
-
const matches = dependencies.glob(profileFiles.include, {
|
|
38
|
-
cwd,
|
|
39
|
-
exclude: profileFiles.exclude,
|
|
40
|
-
followSymlinks: false
|
|
41
|
-
});
|
|
42
|
-
for await (const file of matches) {
|
|
43
|
-
const filePath = resolve(cwd, file);
|
|
44
|
-
const fileStat = await dependencies.stat(filePath);
|
|
45
|
-
if (fileStat.isFile()) {
|
|
46
|
-
files.push(await canonicalPath(filePath, dependencies));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return Array.from(new Set(files)).toSorted(function compareFiles(left, right) {
|
|
50
|
-
return left.localeCompare(right);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
async function patternSetIncludesFile(profileFiles, file, cwd, dependencies) {
|
|
54
|
-
for (const includePattern of profileFiles.include) {
|
|
55
|
-
const includedFiles = await matchedFiles(includePattern, cwd, dependencies);
|
|
56
|
-
for (const includedFile of includedFiles) {
|
|
57
|
-
if (await sameRealPath(includedFile, file, dependencies)) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
async function patternSetExcludesFile(profileFiles, file, cwd, dependencies) {
|
|
65
|
-
for (const excludePattern of profileFiles.exclude) {
|
|
66
|
-
const excludedFiles = await matchedFiles(excludePattern, cwd, dependencies);
|
|
67
|
-
for (const excludedFile of excludedFiles) {
|
|
68
|
-
if (await sameRealPath(excludedFile, file, dependencies)) {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
async function patternSetMatchesFile(profileFiles, file, cwd, dependencies) {
|
|
76
|
-
return await patternSetIncludesFile(profileFiles, file, cwd, dependencies) &&
|
|
77
|
-
!await patternSetExcludesFile(profileFiles, file, cwd, dependencies);
|
|
78
|
-
}
|
|
79
|
-
function hasProfileFileSets(profileFiles) {
|
|
80
|
-
return profileFiles.sets !== undefined;
|
|
81
|
-
}
|
|
82
|
-
async function directProfileFileSet(name, profileFiles, cwd, dependencies) {
|
|
83
|
-
const files = await matchedProfilePatternFiles(profileFiles, cwd, dependencies);
|
|
84
|
-
if (files.length === 0) {
|
|
85
|
-
throw new RunConfigError(`Profile files.sets.${name} matched no test files.`);
|
|
21
|
+
async function discoverDirectProfileFiles(profileFiles, cwd, dependencies) {
|
|
22
|
+
try {
|
|
23
|
+
return await discoverProfileFiles({ cwd, files: profileFiles }, dependencies);
|
|
86
24
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
function assertNonOverlappingDirectProfileFileSets(fileSets, cwd) {
|
|
93
|
-
const owners = new Map();
|
|
94
|
-
for (const fileSet of fileSets) {
|
|
95
|
-
for (const file of fileSet.files) {
|
|
96
|
-
const owner = owners.get(file);
|
|
97
|
-
if (owner !== undefined) {
|
|
98
|
-
throw new RunConfigError(directProfileSetOverlapMessage(file, cwd, owner, fileSet.name));
|
|
99
|
-
}
|
|
100
|
-
owners.set(file, fileSet.name);
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof ProfileFileDiscoveryError) {
|
|
27
|
+
const message = error.message.replace(`${cwd}/`, '');
|
|
28
|
+
throw new ConfigError(error.reason() === 'overlap' ? message.replace('Profile', 'runIfMain() profile') : message, { cause: error });
|
|
101
29
|
}
|
|
30
|
+
throw error;
|
|
102
31
|
}
|
|
103
32
|
}
|
|
104
|
-
async function directProfileFileSets(sets, cwd, dependencies) {
|
|
105
|
-
const fileSets = await Promise.all(Object.entries(sets).map(async function discoverFileSet([name, set]) {
|
|
106
|
-
return await directProfileFileSet(name, set, cwd, dependencies);
|
|
107
|
-
}));
|
|
108
|
-
assertNonOverlappingDirectProfileFileSets(fileSets, cwd);
|
|
109
|
-
return fileSets;
|
|
110
|
-
}
|
|
111
|
-
async function profilePatternFileSetForFile(profileFiles, file, cwd, dependencies) {
|
|
112
|
-
return await patternSetMatchesFile(profileFiles, file, cwd, dependencies) ? null : undefined;
|
|
113
|
-
}
|
|
114
|
-
async function namedProfileFileSetForFile(profileFiles, file, cwd, dependencies) {
|
|
115
|
-
const canonicalFile = await canonicalPath(file, dependencies);
|
|
116
|
-
const fileSets = await directProfileFileSets(profileFiles.sets, cwd, dependencies);
|
|
117
|
-
const matchedSet = fileSets.find(function includesFile(fileSet) {
|
|
118
|
-
return fileSet.files.includes(canonicalFile);
|
|
119
|
-
});
|
|
120
|
-
return matchedSet?.name;
|
|
121
|
-
}
|
|
122
33
|
async function profileFileSetForFile(profileFiles, file, cwd, dependencies) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
34
|
+
const files = await discoverDirectProfileFiles(profileFiles, cwd, dependencies);
|
|
35
|
+
return files
|
|
36
|
+
.find(function matchesDirectFile(candidate) {
|
|
37
|
+
return candidate.path === file;
|
|
38
|
+
})
|
|
39
|
+
?.fileSet;
|
|
127
40
|
}
|
|
128
41
|
async function selectedProfileForFile([name, profile], file, cwd, dependencies) {
|
|
129
42
|
const profileFiles = profile.files;
|
|
@@ -136,14 +49,14 @@ async function selectedProfileForFile([name, profile], file, cwd, dependencies)
|
|
|
136
49
|
}
|
|
137
50
|
return { fileSet, name, profile };
|
|
138
51
|
}
|
|
139
|
-
function
|
|
52
|
+
function isMatchedDirectProfile(profile) {
|
|
140
53
|
return profile !== null;
|
|
141
54
|
}
|
|
142
55
|
async function matchingProfiles(config, file, cwd, dependencies) {
|
|
143
56
|
const profiles = await Promise.all(Object.entries(config.profiles).map(async function matchProfile(entry) {
|
|
144
57
|
return await selectedProfileForFile(entry, file, cwd, dependencies);
|
|
145
58
|
}));
|
|
146
|
-
return profiles.filter(
|
|
59
|
+
return profiles.filter(isMatchedDirectProfile);
|
|
147
60
|
}
|
|
148
61
|
function ambiguousProfileMessage(file, cwd, profiles) {
|
|
149
62
|
const relativeFile = relative(cwd, file);
|
|
@@ -158,14 +71,14 @@ async function configuredMicrotestFileSet(profile, file, cwd, dependencies) {
|
|
|
158
71
|
}
|
|
159
72
|
const fileSet = await profileFileSetForFile(profile.files, file, cwd, dependencies);
|
|
160
73
|
if (profile.files.sets !== undefined && fileSet === undefined) {
|
|
161
|
-
throw new
|
|
74
|
+
throw new ConfigError(`runIfMain() file must match exactly one profile file set for "microtest": ${relative(cwd, file)}.`);
|
|
162
75
|
}
|
|
163
76
|
return fileSet ?? null;
|
|
164
77
|
}
|
|
165
78
|
async function configuredMicrotest(config, file, cwd, dependencies) {
|
|
166
79
|
const profile = config.profiles.microtest;
|
|
167
80
|
if (profile?.testFamily !== 'microtest') {
|
|
168
|
-
throw new
|
|
81
|
+
throw new ConfigError('runIfMain() requires the configured "microtest" profile.');
|
|
169
82
|
}
|
|
170
83
|
const fileSet = await configuredMicrotestFileSet(profile, file, cwd, dependencies);
|
|
171
84
|
return { fileSet, name: 'microtest', profile };
|
|
@@ -176,7 +89,7 @@ async function selectDirectProfile(config, file, cwd, dependencies) {
|
|
|
176
89
|
}
|
|
177
90
|
const matches = await matchingProfiles(config, file, cwd, dependencies);
|
|
178
91
|
if (matches.length > 1) {
|
|
179
|
-
throw new
|
|
92
|
+
throw new ConfigError(ambiguousProfileMessage(file, cwd, matches));
|
|
180
93
|
}
|
|
181
94
|
const [profile] = matches;
|
|
182
95
|
if (profile !== undefined) {
|
|
@@ -188,7 +101,7 @@ export function createDirectProfileResolver(dependencies) {
|
|
|
188
101
|
return async function resolveDirectProfile(meta, cwd) {
|
|
189
102
|
const canonicalCwd = await canonicalPath(cwd, dependencies);
|
|
190
103
|
const file = await canonicalPath(directFilePath(meta, dependencies), dependencies);
|
|
191
|
-
const config = await dependencies.
|
|
104
|
+
const config = await dependencies.loadConfig({ configPath: null, cwd: canonicalCwd });
|
|
192
105
|
const selectedProfile = await selectDirectProfile(config, file, canonicalCwd, dependencies);
|
|
193
106
|
return {
|
|
194
107
|
config,
|
|
@@ -196,7 +109,7 @@ export function createDirectProfileResolver(dependencies) {
|
|
|
196
109
|
fileSet: selectedProfile.fileSet,
|
|
197
110
|
name: selectedProfile.name,
|
|
198
111
|
projectRoot: canonicalCwd,
|
|
199
|
-
profile: selectedProfile.
|
|
112
|
+
profile: selectTestProfile(selectedProfile.name, config)
|
|
200
113
|
};
|
|
201
114
|
};
|
|
202
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-if-main-profile.js","sourceRoot":"","sources":["../../../../source/run/run-if-main-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run-if-main-profile.js","sourceRoot":"","sources":["../../../../source/run/run-if-main-profile.ts"],"names":[],"mappings":"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"}
|
package/run/run-if-main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-if-main.d.ts","sourceRoot":"","sources":["../../../../source/run/run-if-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-if-main.d.ts","sourceRoot":"","sources":["../../../../source/run/run-if-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAMH,KAAK,gBAAgB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,MAAM,MAAM,SAAS,GAAG,CACpB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,KAAK,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE5D,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,MAAM,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1G,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;KAC9C,CAAC;CACL,CAAC;AAgGF"}
|
package/run/run-if-main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-if-main.js","sourceRoot":"","sources":["../../../../source/run/run-if-main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-if-main.js","sourceRoot":"","sources":["../../../../source/run/run-if-main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { validateResourceUsagePolicy } from "../config/validation.js";
|
|
1
2
|
import { executeEmptyShardRun } from "./run-empty-shard.js";
|
|
2
3
|
import { executeLocalResolvedRun } from "./run-local-execution.js";
|
|
3
4
|
function isLocalResolvedRun(resolvedRun) {
|
|
4
5
|
return resolvedRun.plan.kind === 'local';
|
|
5
6
|
}
|
|
6
7
|
export async function executeInProcessResolvedRun(resolvedRun, dependencies, options) {
|
|
8
|
+
validateResourceUsagePolicy(resolvedRun.facts.execution.resourceUsagePolicy);
|
|
7
9
|
if (resolvedRun.plan.kind === 'empty-shard') {
|
|
8
10
|
return await executeEmptyShardRun(resolvedRun, dependencies, options.finalizeResult, options.runtimePolicy);
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-in-process-execution.js","sourceRoot":"","sources":["../../../../source/run/run-in-process-execution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-in-process-execution.js","sourceRoot":"","sources":["../../../../source/run/run-in-process-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EACH,oBAAoB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,uBAAuB,EAE1B,MAAM,0BAA0B,CAAC;AAelC,SAAS,kBAAkB,CAAC,WAAwB;IAChD,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,WAAwB,EACxB,YAAyC,EACzC,OAA8B;IAE9B,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAE7E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAC1C,OAAO,MAAM,oBAAoB,CAC7B,WAAW,EACX,YAAY,EACZ,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,aAAa,CACxB,CAAC;IACN,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,MAAM,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { copyConfig } from "../config/snapshot.js";
|
|
2
|
+
import { selectBenchmarkProfile, selectTestProfile } from "./test-profile.js";
|
|
3
|
+
import { copyRunEngineSelection, freezeValue } from "./run-support.js";
|
|
4
|
+
import { copyRunRequest } from "./request-snapshot.js";
|
|
3
5
|
import { assertSupportedProcessEngine, validateRunInput } from "./run-validation.js";
|
|
4
6
|
import { invalidRequest } from "./run-errors.js";
|
|
5
7
|
function assertMicrotestCaptureSupported(request, profile) {
|
|
@@ -22,19 +24,22 @@ function assertProfileRequestSupported(request, profile) {
|
|
|
22
24
|
assertMicrotestCaptureSupported(request, profile);
|
|
23
25
|
assertWorkerCountSupported(request, profile);
|
|
24
26
|
}
|
|
25
|
-
export async function readResolvedRunInput(
|
|
27
|
+
export async function readResolvedRunInput(invocation, dependencies) {
|
|
28
|
+
const { command, namespace } = invocation;
|
|
26
29
|
validateRunInput(command);
|
|
27
30
|
const request = freezeValue(copyRunRequest(command.request));
|
|
28
|
-
const config = freezeValue(
|
|
29
|
-
const profile =
|
|
31
|
+
const config = freezeValue(copyConfig(command.config));
|
|
32
|
+
const profile = namespace === 'bench'
|
|
33
|
+
? selectBenchmarkProfile(request.profile, config)
|
|
34
|
+
: selectTestProfile(request.profile, config);
|
|
30
35
|
assertProfileRequestSupported(request, profile);
|
|
31
36
|
assertSupportedProcessEngine(command, profile);
|
|
37
|
+
const engine = freezeValue(copyRunEngineSelection(command.engine));
|
|
32
38
|
const discovery = freezeValue(await dependencies.discoverRunFilesWithProjectRoot({
|
|
33
39
|
cwd: command.cwd,
|
|
34
40
|
paths: request.paths,
|
|
35
41
|
profileFiles: profile.files
|
|
36
42
|
}));
|
|
37
|
-
const engine = freezeValue(copyRunEngineSelection(command.engine));
|
|
38
43
|
return { config, engine, files: discovery.files, profile, projectRoot: discovery.projectRoot, request };
|
|
39
44
|
}
|
|
40
45
|
//# sourceMappingURL=run-input-resolution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-input-resolution.js","sourceRoot":"","sources":["../../../../source/run/run-input-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"run-input-resolution.js","sourceRoot":"","sources":["../../../../source/run/run-input-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EACH,4BAA4B,EAC5B,gBAAgB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgBjD,SAAS,+BAA+B,CACpC,OAAmB,EACnB,OAAsB;IAEtB,IAAI,OAAO,CAAC,UAAU,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACnE,cAAc,CAAC,iDAAiD,CAAC,CAAC;IACtE,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAmB,EAAE,OAAsB;IAC3E,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QAC/E,cAAc,CAAC,8DAA8D,CAAC,CAAC;IACnF,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAmB,EAAE,OAAsB;IACxE,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACzD,cAAc,CAAC,wDAAwD,CAAC,CAAC;IAC7E,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAmB,EAAE,OAAsB;IAC9E,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,+BAA+B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,UAAyB,EACzB,YAAyC;IAEzC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IAC1C,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,SAAS,KAAK,OAAO;QACjC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;QACjD,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,WAAW,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,WAAW,CACzB,MAAM,YAAY,CAAC,+BAA+B,CAAC;QAC/C,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,YAAY,EAAE,OAAO,CAAC,KAAK;KAC9B,CAAC,CACL,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;AAC5G,CAAC"}
|