ppef 1.0.1 → 1.2.0
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/README.md +76 -125
- package/bin/ppef.mjs +20 -0
- package/dist/__tests__/cli/evaluate-command.integration.test.d.ts +8 -0
- package/dist/__tests__/cli/evaluate-command.integration.test.d.ts.map +1 -0
- package/dist/__tests__/cli/evaluate-command.integration.test.js +308 -0
- package/dist/__tests__/cli/evaluate-command.integration.test.js.map +1 -0
- package/dist/__tests__/evaluators/claims-evaluator.unit.test.d.ts +8 -0
- package/dist/__tests__/evaluators/claims-evaluator.unit.test.d.ts.map +1 -0
- package/dist/__tests__/evaluators/claims-evaluator.unit.test.js +405 -0
- package/dist/__tests__/evaluators/claims-evaluator.unit.test.js.map +1 -0
- package/dist/__tests__/evaluators/metrics-evaluator.unit.test.d.ts +8 -0
- package/dist/__tests__/evaluators/metrics-evaluator.unit.test.d.ts.map +1 -0
- package/dist/__tests__/evaluators/metrics-evaluator.unit.test.js +424 -0
- package/dist/__tests__/evaluators/metrics-evaluator.unit.test.js.map +1 -0
- package/dist/__tests__/evaluators/registry.unit.test.d.ts +7 -0
- package/dist/__tests__/evaluators/registry.unit.test.d.ts.map +1 -0
- package/dist/__tests__/evaluators/registry.unit.test.js +173 -0
- package/dist/__tests__/evaluators/registry.unit.test.js.map +1 -0
- package/dist/__tests__/evaluators/robustness-evaluator.unit.test.d.ts +8 -0
- package/dist/__tests__/evaluators/robustness-evaluator.unit.test.d.ts.map +1 -0
- package/dist/__tests__/evaluators/robustness-evaluator.unit.test.js +260 -0
- package/dist/__tests__/evaluators/robustness-evaluator.unit.test.js.map +1 -0
- package/dist/__tests__/framework-pipeline.integration.test.js +49 -20
- package/dist/__tests__/framework-pipeline.integration.test.js.map +1 -1
- package/dist/__tests__/index-exports.unit.test.d.ts +8 -0
- package/dist/__tests__/index-exports.unit.test.d.ts.map +1 -0
- package/dist/__tests__/index-exports.unit.test.js +124 -0
- package/dist/__tests__/index-exports.unit.test.js.map +1 -0
- package/dist/__tests__/registry-executor.integration.test.js +12 -9
- package/dist/__tests__/registry-executor.integration.test.js.map +1 -1
- package/dist/aggregation/__tests__/aggregators.unit.test.d.ts +7 -0
- package/dist/aggregation/__tests__/aggregators.unit.test.d.ts.map +1 -0
- package/dist/aggregation/__tests__/aggregators.unit.test.js +350 -0
- package/dist/aggregation/__tests__/aggregators.unit.test.js.map +1 -0
- package/dist/aggregation/__tests__/pipeline.unit.test.d.ts +7 -0
- package/dist/aggregation/__tests__/pipeline.unit.test.d.ts.map +1 -0
- package/dist/aggregation/__tests__/pipeline.unit.test.js +213 -0
- package/dist/aggregation/__tests__/pipeline.unit.test.js.map +1 -0
- package/dist/aggregation/aggregators.d.ts +9 -0
- package/dist/aggregation/aggregators.d.ts.map +1 -1
- package/dist/aggregation/aggregators.js +1 -1
- package/dist/aggregation/aggregators.js.map +1 -1
- package/dist/aggregation/index.d.ts +1 -1
- package/dist/aggregation/index.d.ts.map +1 -1
- package/dist/aggregation/index.js +1 -1
- package/dist/aggregation/index.js.map +1 -1
- package/dist/aggregation/pipeline.d.ts.map +1 -1
- package/dist/aggregation/pipeline.js +40 -3
- package/dist/aggregation/pipeline.js.map +1 -1
- package/dist/claims/index.d.ts +6 -3
- package/dist/claims/index.d.ts.map +1 -1
- package/dist/claims/index.js +6 -3
- package/dist/claims/index.js.map +1 -1
- package/dist/cli/__tests__/aggregate.command.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/aggregate.command.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/aggregate.command.unit.test.js +399 -0
- package/dist/cli/__tests__/aggregate.command.unit.test.js.map +1 -0
- package/dist/cli/__tests__/binary-sut.integration.test.d.ts +8 -0
- package/dist/cli/__tests__/binary-sut.integration.test.d.ts.map +1 -0
- package/dist/cli/__tests__/binary-sut.integration.test.js +165 -0
- package/dist/cli/__tests__/binary-sut.integration.test.js.map +1 -0
- package/dist/cli/__tests__/commands.unit.test.d.ts +10 -0
- package/dist/cli/__tests__/commands.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/commands.unit.test.js +217 -0
- package/dist/cli/__tests__/commands.unit.test.js.map +1 -0
- package/dist/cli/__tests__/config-loader.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/config-loader.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/config-loader.unit.test.js +611 -0
- package/dist/cli/__tests__/config-loader.unit.test.js.map +1 -0
- package/dist/cli/__tests__/index.unit.test.d.ts +10 -0
- package/dist/cli/__tests__/index.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/index.unit.test.js +65 -0
- package/dist/cli/__tests__/index.unit.test.js.map +1 -0
- package/dist/cli/__tests__/logger.unit.test.d.ts +11 -0
- package/dist/cli/__tests__/logger.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/logger.unit.test.js +180 -0
- package/dist/cli/__tests__/logger.unit.test.js.map +1 -0
- package/dist/cli/__tests__/module-loader.unit.test.d.ts +11 -0
- package/dist/cli/__tests__/module-loader.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/module-loader.unit.test.js +262 -0
- package/dist/cli/__tests__/module-loader.unit.test.js.map +1 -0
- package/dist/cli/__tests__/output-writer.unit.test.d.ts +10 -0
- package/dist/cli/__tests__/output-writer.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/output-writer.unit.test.js +216 -0
- package/dist/cli/__tests__/output-writer.unit.test.js.map +1 -0
- package/dist/cli/__tests__/plan.command.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/plan.command.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/plan.command.unit.test.js +289 -0
- package/dist/cli/__tests__/plan.command.unit.test.js.map +1 -0
- package/dist/cli/__tests__/run.command.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/run.command.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/run.command.unit.test.js +422 -0
- package/dist/cli/__tests__/run.command.unit.test.js.map +1 -0
- package/dist/cli/__tests__/validate.command.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/validate.command.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/validate.command.unit.test.js +226 -0
- package/dist/cli/__tests__/validate.command.unit.test.js.map +1 -0
- package/dist/cli/command-deps.d.ts +137 -0
- package/dist/cli/command-deps.d.ts.map +1 -0
- package/dist/cli/command-deps.js +7 -0
- package/dist/cli/command-deps.js.map +1 -0
- package/dist/cli/commands/aggregate.d.ts +35 -0
- package/dist/cli/commands/aggregate.d.ts.map +1 -0
- package/dist/cli/commands/aggregate.js +124 -0
- package/dist/cli/commands/aggregate.js.map +1 -0
- package/dist/cli/commands/evaluate.d.ts +41 -0
- package/dist/cli/commands/evaluate.d.ts.map +1 -0
- package/dist/cli/commands/evaluate.js +287 -0
- package/dist/cli/commands/evaluate.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +36 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +109 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/run.d.ts +33 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +277 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +27 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +88 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/config-loader.d.ts +30 -0
- package/dist/cli/config-loader.d.ts.map +1 -0
- package/dist/cli/config-loader.js +181 -0
- package/dist/cli/config-loader.js.map +1 -0
- package/dist/cli/index.d.ts +27 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +60 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/logger.d.ts +75 -0
- package/dist/cli/logger.d.ts.map +1 -0
- package/dist/cli/logger.js +131 -0
- package/dist/cli/logger.js.map +1 -0
- package/dist/cli/module-loader.d.ts +68 -0
- package/dist/cli/module-loader.d.ts.map +1 -0
- package/dist/cli/module-loader.js +134 -0
- package/dist/cli/module-loader.js.map +1 -0
- package/dist/cli/output-writer.d.ts +51 -0
- package/dist/cli/output-writer.d.ts.map +1 -0
- package/dist/cli/output-writer.js +65 -0
- package/dist/cli/output-writer.js.map +1 -0
- package/dist/cli/types.d.ts +193 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +7 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/collector/__tests__/result-collector.unit.test.d.ts +7 -0
- package/dist/collector/__tests__/result-collector.unit.test.d.ts.map +1 -0
- package/dist/collector/__tests__/result-collector.unit.test.js +1021 -0
- package/dist/collector/__tests__/result-collector.unit.test.js.map +1 -0
- package/dist/collector/__tests__/schema.unit.test.d.ts +7 -0
- package/dist/collector/__tests__/schema.unit.test.d.ts.map +1 -0
- package/dist/collector/__tests__/schema.unit.test.js +360 -0
- package/dist/collector/__tests__/schema.unit.test.js.map +1 -0
- package/dist/evaluators/claims-evaluator.d.ts +87 -0
- package/dist/evaluators/claims-evaluator.d.ts.map +1 -0
- package/dist/evaluators/claims-evaluator.js +289 -0
- package/dist/evaluators/claims-evaluator.js.map +1 -0
- package/dist/evaluators/exploratory-evaluator.d.ts +136 -0
- package/dist/evaluators/exploratory-evaluator.d.ts.map +1 -0
- package/dist/evaluators/exploratory-evaluator.js +545 -0
- package/dist/evaluators/exploratory-evaluator.js.map +1 -0
- package/dist/evaluators/index.d.ts +13 -0
- package/dist/evaluators/index.d.ts.map +1 -0
- package/dist/evaluators/index.js +14 -0
- package/dist/evaluators/index.js.map +1 -0
- package/dist/evaluators/metrics-evaluator.d.ts +114 -0
- package/dist/evaluators/metrics-evaluator.d.ts.map +1 -0
- package/dist/evaluators/metrics-evaluator.js +433 -0
- package/dist/evaluators/metrics-evaluator.js.map +1 -0
- package/dist/evaluators/registry.d.ts +106 -0
- package/dist/evaluators/registry.d.ts.map +1 -0
- package/dist/evaluators/registry.js +148 -0
- package/dist/evaluators/registry.js.map +1 -0
- package/dist/evaluators/robustness-evaluator.d.ts +57 -0
- package/dist/evaluators/robustness-evaluator.d.ts.map +1 -0
- package/dist/evaluators/robustness-evaluator.js +186 -0
- package/dist/evaluators/robustness-evaluator.js.map +1 -0
- package/dist/executor/__tests__/binary-sut.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/binary-sut.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/binary-sut.unit.test.js +313 -0
- package/dist/executor/__tests__/binary-sut.unit.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.js +83 -1
- package/dist/executor/__tests__/checkpoint-manager.unit.test.js.map +1 -1
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts +3 -6
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts.map +1 -1
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js +428 -159
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js.map +1 -1
- package/dist/executor/__tests__/checkpoint-storage.unit.test.js +148 -1
- package/dist/executor/__tests__/checkpoint-storage.unit.test.js.map +1 -1
- package/dist/executor/__tests__/executor.unit.test.js +123 -8
- package/dist/executor/__tests__/executor.unit.test.js.map +1 -1
- package/dist/executor/__tests__/memory-monitor.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/memory-monitor.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/memory-monitor.unit.test.js +285 -0
- package/dist/executor/__tests__/memory-monitor.unit.test.js.map +1 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.d.ts +2 -1
- package/dist/executor/__tests__/parallel-executor.unit.test.d.ts.map +1 -1
- package/dist/executor/__tests__/parallel-executor.unit.test.js +426 -156
- package/dist/executor/__tests__/parallel-executor.unit.test.js.map +1 -1
- package/dist/executor/__tests__/resource-calculator.unit.test.d.ts +10 -0
- package/dist/executor/__tests__/resource-calculator.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/resource-calculator.unit.test.js +104 -0
- package/dist/executor/__tests__/resource-calculator.unit.test.js.map +1 -0
- package/dist/executor/__tests__/run-id.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/run-id.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/run-id.unit.test.js +156 -0
- package/dist/executor/__tests__/run-id.unit.test.js.map +1 -0
- package/dist/executor/__tests__/worker-entry.integration.test.d.ts +24 -0
- package/dist/executor/__tests__/worker-entry.integration.test.d.ts.map +1 -0
- package/dist/executor/__tests__/worker-entry.integration.test.js +82 -0
- package/dist/executor/__tests__/worker-entry.integration.test.js.map +1 -0
- package/dist/executor/__tests__/worker-entry.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/worker-entry.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/worker-entry.unit.test.js +364 -0
- package/dist/executor/__tests__/worker-entry.unit.test.js.map +1 -0
- package/dist/executor/__tests__/worker-threads-executor.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/worker-threads-executor.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/worker-threads-executor.unit.test.js +276 -0
- package/dist/executor/__tests__/worker-threads-executor.unit.test.js.map +1 -0
- package/dist/executor/binary-sut.d.ts +105 -0
- package/dist/executor/binary-sut.d.ts.map +1 -0
- package/dist/executor/binary-sut.js +174 -0
- package/dist/executor/binary-sut.js.map +1 -0
- package/dist/executor/checkpoint-storage.d.ts.map +1 -1
- package/dist/executor/checkpoint-storage.js +6 -4
- package/dist/executor/checkpoint-storage.js.map +1 -1
- package/dist/executor/executor.d.ts +28 -0
- package/dist/executor/executor.d.ts.map +1 -1
- package/dist/executor/executor.js +85 -24
- package/dist/executor/executor.js.map +1 -1
- package/dist/executor/index.d.ts +4 -0
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +4 -0
- package/dist/executor/index.js.map +1 -1
- package/dist/executor/parallel-executor.d.ts +186 -0
- package/dist/executor/parallel-executor.d.ts.map +1 -1
- package/dist/executor/parallel-executor.js +218 -83
- package/dist/executor/parallel-executor.js.map +1 -1
- package/dist/executor/resource-calculator.d.ts +49 -0
- package/dist/executor/resource-calculator.d.ts.map +1 -0
- package/dist/executor/resource-calculator.js +129 -0
- package/dist/executor/resource-calculator.js.map +1 -0
- package/dist/executor/run-id.d.ts.map +1 -1
- package/dist/executor/run-id.js +8 -1
- package/dist/executor/run-id.js.map +1 -1
- package/dist/executor/worker-entry.d.ts +2 -0
- package/dist/executor/worker-entry.d.ts.map +1 -1
- package/dist/executor/worker-entry.js +46 -55
- package/dist/executor/worker-entry.js.map +1 -1
- package/dist/executor/worker-executor.d.ts +257 -0
- package/dist/executor/worker-executor.d.ts.map +1 -0
- package/dist/executor/worker-executor.js +308 -0
- package/dist/executor/worker-executor.js.map +1 -0
- package/dist/executor/worker-threads-executor.d.ts +245 -0
- package/dist/executor/worker-threads-executor.d.ts.map +1 -0
- package/dist/executor/worker-threads-executor.js +332 -0
- package/dist/executor/worker-threads-executor.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/renderers/latex-renderer.d.ts +60 -0
- package/dist/renderers/latex-renderer.d.ts.map +1 -1
- package/dist/renderers/latex-renderer.js +299 -0
- package/dist/renderers/latex-renderer.js.map +1 -1
- package/dist/renderers/types.d.ts +9 -0
- package/dist/renderers/types.d.ts.map +1 -1
- package/dist/renderers/types.js.map +1 -1
- package/dist/robustness/__tests__/perturbations.unit.test.d.ts +11 -0
- package/dist/robustness/__tests__/perturbations.unit.test.d.ts.map +1 -0
- package/dist/robustness/__tests__/perturbations.unit.test.js +284 -0
- package/dist/robustness/__tests__/perturbations.unit.test.js.map +1 -0
- package/dist/robustness/index.d.ts +5 -2
- package/dist/robustness/index.d.ts.map +1 -1
- package/dist/robustness/index.js +4 -2
- package/dist/robustness/index.js.map +1 -1
- package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts +7 -0
- package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts.map +1 -0
- package/dist/statistical/__tests__/mann-whitney-u.unit.test.js +185 -0
- package/dist/statistical/__tests__/mann-whitney-u.unit.test.js.map +1 -0
- package/dist/types/evaluator.d.ts +449 -0
- package/dist/types/evaluator.d.ts.map +1 -0
- package/dist/types/evaluator.js +9 -0
- package/dist/types/evaluator.js.map +1 -0
- package/dist/types/result.d.ts +2 -0
- package/dist/types/result.d.ts.map +1 -1
- package/package.json +8 -1
- package/dist/claims/evaluator.d.ts +0 -33
- package/dist/claims/evaluator.d.ts.map +0 -1
- package/dist/claims/evaluator.js +0 -174
- package/dist/claims/evaluator.js.map +0 -1
- package/dist/robustness/analyzer.d.ts +0 -61
- package/dist/robustness/analyzer.d.ts.map +0 -1
- package/dist/robustness/analyzer.js +0 -191
- package/dist/robustness/analyzer.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-threads-executor.unit.test.js","sourceRoot":"","sources":["../../../src/executor/__tests__/worker-threads-executor.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binary SUT Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Enables arbitrary binaries (Python scripts, compiled executables, etc.)
|
|
5
|
+
* to be used as System Under Test in ppef experiments.
|
|
6
|
+
*
|
|
7
|
+
* The BinarySut class implements the SUT interface and bridges to external
|
|
8
|
+
* processes via stdin/stdout IPC, with proper timeout handling and error isolation.
|
|
9
|
+
*
|
|
10
|
+
* Supported I/O formats:
|
|
11
|
+
* - json: Structured data serialization (default)
|
|
12
|
+
* - raw: Plain text passthrough
|
|
13
|
+
* - lines: Line-separated values
|
|
14
|
+
*/
|
|
15
|
+
import type { SUT } from "../types/sut.js";
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for binary SUT execution.
|
|
18
|
+
*/
|
|
19
|
+
export interface BinarySutConfig {
|
|
20
|
+
/** Command to execute (e.g., "python3", "./my-script", "node") */
|
|
21
|
+
command: string;
|
|
22
|
+
/** Arguments to pass to the command */
|
|
23
|
+
args?: string[];
|
|
24
|
+
/** Working directory (defaults to current directory) */
|
|
25
|
+
cwd?: string;
|
|
26
|
+
/** Environment variables (merged with process.env) */
|
|
27
|
+
env?: Record<string, string>;
|
|
28
|
+
/** How to serialize inputs to stdin */
|
|
29
|
+
inputFormat?: "json" | "raw" | "lines";
|
|
30
|
+
/** How to deserialize stdout */
|
|
31
|
+
outputFormat?: "json" | "raw" | "lines";
|
|
32
|
+
/** Timeout per run in milliseconds (0 = no timeout, default: 30000) */
|
|
33
|
+
timeout?: number;
|
|
34
|
+
/** Exit code that indicates success (default: 0) */
|
|
35
|
+
successExitCode?: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Binary SUT wrapper implementing the SUT interface.
|
|
39
|
+
*
|
|
40
|
+
* Spawns external processes, communicates via stdin/stdout,
|
|
41
|
+
* and provides timeout handling and error isolation.
|
|
42
|
+
*/
|
|
43
|
+
export declare class BinarySut implements SUT<unknown, unknown> {
|
|
44
|
+
readonly id: string;
|
|
45
|
+
readonly config: Readonly<BinarySutConfig>;
|
|
46
|
+
constructor(id: string, config: BinarySutConfig);
|
|
47
|
+
/**
|
|
48
|
+
* Execute the binary with the given inputs.
|
|
49
|
+
*
|
|
50
|
+
* @param inputs - Algorithm inputs (will be serialized based on inputFormat)
|
|
51
|
+
* @returns Promise resolving to deserialized output
|
|
52
|
+
* @throws Error on timeout, non-zero exit code, or spawn failure
|
|
53
|
+
*/
|
|
54
|
+
run(inputs: unknown): Promise<unknown>;
|
|
55
|
+
/**
|
|
56
|
+
* Serialize inputs to stdin format.
|
|
57
|
+
*/
|
|
58
|
+
private _serializeInputs;
|
|
59
|
+
/**
|
|
60
|
+
* Collect stdout/stderr from process with timeout handling.
|
|
61
|
+
*/
|
|
62
|
+
private _collectOutput;
|
|
63
|
+
/**
|
|
64
|
+
* Deserialize stdout to output format.
|
|
65
|
+
*/
|
|
66
|
+
private _deserializeOutput;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Options for creating a binary SUT factory.
|
|
70
|
+
*/
|
|
71
|
+
export interface CreateBinarySutOptions extends BinarySutConfig {
|
|
72
|
+
/** SUT ID (defaults to command name) */
|
|
73
|
+
id?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* SUT factory type for binary SUTs.
|
|
77
|
+
*
|
|
78
|
+
* Matches the expected SutFactory signature from the SUT interface.
|
|
79
|
+
*/
|
|
80
|
+
export type BinarySutFactory = (config?: Record<string, unknown>) => SUT<unknown, unknown>;
|
|
81
|
+
/**
|
|
82
|
+
* Create a binary SUT factory function.
|
|
83
|
+
*
|
|
84
|
+
* The returned factory matches the SutFactory signature and can be used
|
|
85
|
+
* interchangeably with other SUT factories in the ppef framework.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* import { createBinarySut } from "ppef";
|
|
90
|
+
*
|
|
91
|
+
* const pythonSutFactory = createBinarySut({
|
|
92
|
+
* id: "python-classifier",
|
|
93
|
+
* command: "python3",
|
|
94
|
+
* args: ["classifier.py"],
|
|
95
|
+
* inputFormat: "json",
|
|
96
|
+
* outputFormat: "json",
|
|
97
|
+
* timeout: 30000,
|
|
98
|
+
* });
|
|
99
|
+
*
|
|
100
|
+
* const sut = pythonSutFactory({ modelPath: "./model.pkl" });
|
|
101
|
+
* const result = await sut.run({ features: [1, 2, 3] });
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export declare function createBinarySut(options: CreateBinarySutOptions): BinarySutFactory;
|
|
105
|
+
//# sourceMappingURL=binary-sut.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-sut.d.ts","sourceRoot":"","sources":["../../src/executor/binary-sut.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAEvC,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAExC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAWD;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;IACtD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAE/B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IAU/C;;;;;;OAMG;IACG,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB5C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;YACW,cAAc;IAyC5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAoB1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC9D,wCAAwC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,gBAAgB,CAiBjF"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binary SUT Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Enables arbitrary binaries (Python scripts, compiled executables, etc.)
|
|
5
|
+
* to be used as System Under Test in ppef experiments.
|
|
6
|
+
*
|
|
7
|
+
* The BinarySut class implements the SUT interface and bridges to external
|
|
8
|
+
* processes via stdin/stdout IPC, with proper timeout handling and error isolation.
|
|
9
|
+
*
|
|
10
|
+
* Supported I/O formats:
|
|
11
|
+
* - json: Structured data serialization (default)
|
|
12
|
+
* - raw: Plain text passthrough
|
|
13
|
+
* - lines: Line-separated values
|
|
14
|
+
*/
|
|
15
|
+
import { spawn } from "node:child_process";
|
|
16
|
+
/**
|
|
17
|
+
* Binary SUT wrapper implementing the SUT interface.
|
|
18
|
+
*
|
|
19
|
+
* Spawns external processes, communicates via stdin/stdout,
|
|
20
|
+
* and provides timeout handling and error isolation.
|
|
21
|
+
*/
|
|
22
|
+
export class BinarySut {
|
|
23
|
+
id;
|
|
24
|
+
config;
|
|
25
|
+
constructor(id, config) {
|
|
26
|
+
this.id = id;
|
|
27
|
+
this.config = {
|
|
28
|
+
...config,
|
|
29
|
+
inputFormat: config.inputFormat ?? "json",
|
|
30
|
+
timeout: config.timeout ?? 30000,
|
|
31
|
+
successExitCode: config.successExitCode ?? 0,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Execute the binary with the given inputs.
|
|
36
|
+
*
|
|
37
|
+
* @param inputs - Algorithm inputs (will be serialized based on inputFormat)
|
|
38
|
+
* @returns Promise resolving to deserialized output
|
|
39
|
+
* @throws Error on timeout, non-zero exit code, or spawn failure
|
|
40
|
+
*/
|
|
41
|
+
async run(inputs) {
|
|
42
|
+
const proc = spawn(this.config.command, this.config.args ?? [], {
|
|
43
|
+
cwd: this.config.cwd,
|
|
44
|
+
env: { ...process.env, ...this.config.env },
|
|
45
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
46
|
+
});
|
|
47
|
+
// Serialize inputs based on format
|
|
48
|
+
const inputData = this._serializeInputs(inputs);
|
|
49
|
+
proc.stdin.write(inputData);
|
|
50
|
+
proc.stdin.end();
|
|
51
|
+
// Collect output with timeout
|
|
52
|
+
const result = await this._collectOutput(proc);
|
|
53
|
+
return this._deserializeOutput(result);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Serialize inputs to stdin format.
|
|
57
|
+
*/
|
|
58
|
+
_serializeInputs(inputs) {
|
|
59
|
+
switch (this.config.inputFormat) {
|
|
60
|
+
case "json":
|
|
61
|
+
return JSON.stringify(inputs);
|
|
62
|
+
case "raw":
|
|
63
|
+
return String(inputs);
|
|
64
|
+
case "lines":
|
|
65
|
+
return Array.isArray(inputs) ? inputs.join("\n") + "\n" : String(inputs) + "\n";
|
|
66
|
+
default:
|
|
67
|
+
return JSON.stringify(inputs);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Collect stdout/stderr from process with timeout handling.
|
|
72
|
+
*/
|
|
73
|
+
async _collectOutput(proc) {
|
|
74
|
+
return new Promise((resolve, reject) => {
|
|
75
|
+
let stdout = "";
|
|
76
|
+
let stderr = "";
|
|
77
|
+
proc.stdout?.on("data", (data) => {
|
|
78
|
+
stdout += data.toString();
|
|
79
|
+
});
|
|
80
|
+
proc.stderr?.on("data", (data) => {
|
|
81
|
+
stderr += data.toString();
|
|
82
|
+
});
|
|
83
|
+
const timeoutMs = this.config.timeout ?? 0;
|
|
84
|
+
let timer;
|
|
85
|
+
if (timeoutMs > 0) {
|
|
86
|
+
timer = setTimeout(() => {
|
|
87
|
+
proc.kill("SIGKILL");
|
|
88
|
+
reject(new Error(`BinarySut timeout after ${timeoutMs}ms`));
|
|
89
|
+
}, timeoutMs);
|
|
90
|
+
}
|
|
91
|
+
proc.on("close", (exitCode) => {
|
|
92
|
+
if (timer)
|
|
93
|
+
clearTimeout(timer);
|
|
94
|
+
const successCode = this.config.successExitCode ?? 0;
|
|
95
|
+
if (exitCode === successCode) {
|
|
96
|
+
resolve({ stdout, stderr, exitCode });
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
reject(new Error(`BinarySut exited with code ${exitCode}: ${stderr}`));
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
proc.on("error", (error) => {
|
|
103
|
+
if (timer)
|
|
104
|
+
clearTimeout(timer);
|
|
105
|
+
reject(new Error(`BinarySut failed to spawn: ${error.message}`));
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Deserialize stdout to output format.
|
|
111
|
+
*/
|
|
112
|
+
_deserializeOutput(output) {
|
|
113
|
+
const trimmed = output.stdout.trim();
|
|
114
|
+
if (!trimmed)
|
|
115
|
+
return null;
|
|
116
|
+
switch (this.config.outputFormat) {
|
|
117
|
+
case "json":
|
|
118
|
+
return JSON.parse(trimmed);
|
|
119
|
+
case "raw":
|
|
120
|
+
return trimmed;
|
|
121
|
+
case "lines":
|
|
122
|
+
return trimmed.split("\n").filter(Boolean);
|
|
123
|
+
default:
|
|
124
|
+
// Auto-detect: try JSON first, fall back to raw
|
|
125
|
+
try {
|
|
126
|
+
return JSON.parse(trimmed);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return trimmed;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create a binary SUT factory function.
|
|
136
|
+
*
|
|
137
|
+
* The returned factory matches the SutFactory signature and can be used
|
|
138
|
+
* interchangeably with other SUT factories in the ppef framework.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* import { createBinarySut } from "ppef";
|
|
143
|
+
*
|
|
144
|
+
* const pythonSutFactory = createBinarySut({
|
|
145
|
+
* id: "python-classifier",
|
|
146
|
+
* command: "python3",
|
|
147
|
+
* args: ["classifier.py"],
|
|
148
|
+
* inputFormat: "json",
|
|
149
|
+
* outputFormat: "json",
|
|
150
|
+
* timeout: 30000,
|
|
151
|
+
* });
|
|
152
|
+
*
|
|
153
|
+
* const sut = pythonSutFactory({ modelPath: "./model.pkl" });
|
|
154
|
+
* const result = await sut.run({ features: [1, 2, 3] });
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export function createBinarySut(options) {
|
|
158
|
+
return (config) => {
|
|
159
|
+
const mergedConfig = {
|
|
160
|
+
command: options.command,
|
|
161
|
+
args: options.args,
|
|
162
|
+
cwd: options.cwd,
|
|
163
|
+
env: options.env,
|
|
164
|
+
inputFormat: options.inputFormat,
|
|
165
|
+
outputFormat: options.outputFormat,
|
|
166
|
+
timeout: options.timeout,
|
|
167
|
+
successExitCode: options.successExitCode,
|
|
168
|
+
...config,
|
|
169
|
+
};
|
|
170
|
+
const id = config?.id ?? options.id ?? `binary-${options.command}`;
|
|
171
|
+
return new BinarySut(id, mergedConfig);
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=binary-sut.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-sut.js","sourceRoot":"","sources":["../../src/executor/binary-sut.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-storage.d.ts","sourceRoot":"","sources":["../../src/executor/checkpoint-storage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"checkpoint-storage.d.ts","sourceRoot":"","sources":["../../src/executor/checkpoint-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -332,7 +332,7 @@ export class GitStorage {
|
|
|
332
332
|
* @param repoRoot - Git repository root (for git storage)
|
|
333
333
|
*/
|
|
334
334
|
export const createCheckpointStorage = (mode, pathOrNamespace, repoRoot) => {
|
|
335
|
-
const effectiveMode = mode === "auto" ? detectPreferredMode() : mode;
|
|
335
|
+
const effectiveMode = mode === "auto" ? detectPreferredMode(repoRoot) : mode;
|
|
336
336
|
if (effectiveMode === "git") {
|
|
337
337
|
return new GitStorage(pathOrNamespace, repoRoot);
|
|
338
338
|
}
|
|
@@ -341,14 +341,16 @@ export const createCheckpointStorage = (mode, pathOrNamespace, repoRoot) => {
|
|
|
341
341
|
/**
|
|
342
342
|
* Detect preferred checkpoint mode based on environment.
|
|
343
343
|
* Returns "git" if in a git repo with commits, otherwise "file".
|
|
344
|
+
* @param repoRoot - Directory to check for git repository (defaults to current directory)
|
|
344
345
|
*/
|
|
345
|
-
const detectPreferredMode = () => {
|
|
346
|
+
const detectPreferredMode = (repoRoot) => {
|
|
347
|
+
const cwd = repoRoot ?? process.cwd();
|
|
346
348
|
try {
|
|
347
349
|
// Check if we're in a git repo with commits
|
|
348
|
-
execSync("git rev-parse --git-dir > /dev/null 2>&1", { stdio: "pipe" });
|
|
350
|
+
execSync("git rev-parse --git-dir > /dev/null 2>&1", { stdio: "pipe", cwd });
|
|
349
351
|
// Check if there are any commits
|
|
350
352
|
try {
|
|
351
|
-
execSync("git rev-parse HEAD > /dev/null 2>&1", { stdio: "pipe" });
|
|
353
|
+
execSync("git rev-parse HEAD > /dev/null 2>&1", { stdio: "pipe", cwd });
|
|
352
354
|
return "git";
|
|
353
355
|
}
|
|
354
356
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-storage.js","sourceRoot":"","sources":["../../src/executor/checkpoint-storage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"checkpoint-storage.js","sourceRoot":"","sources":["../../src/executor/checkpoint-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,15 @@ export interface ExecutorConfig {
|
|
|
35
35
|
memoryCriticalThresholdMb?: number;
|
|
36
36
|
/** Abort execution at critical memory level (default: false) */
|
|
37
37
|
abortOnMemoryCritical?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Force in-process execution without worker thread isolation.
|
|
40
|
+
*
|
|
41
|
+
* WARNING: Setting this to true means SUT crashes can crash the main process.
|
|
42
|
+
* This is unsafe and should only be used for debugging or testing purposes.
|
|
43
|
+
*
|
|
44
|
+
* Default: false (worker threads are always used for main thread isolation)
|
|
45
|
+
*/
|
|
46
|
+
forceInProcess?: boolean;
|
|
38
47
|
}
|
|
39
48
|
/**
|
|
40
49
|
* Default executor configuration.
|
|
@@ -119,6 +128,11 @@ export declare class Executor<TInput = unknown, TInputs = unknown, TResult = unk
|
|
|
119
128
|
/**
|
|
120
129
|
* Execute all planned runs.
|
|
121
130
|
*
|
|
131
|
+
* By default, always uses worker threads to isolate the main thread from SUT crashes.
|
|
132
|
+
* Even concurrency=1 runs in a worker (sequential, but isolated).
|
|
133
|
+
*
|
|
134
|
+
* Use forceInProcess=true to run in-process without worker isolation (unsafe: SUT crashes can crash main process).
|
|
135
|
+
*
|
|
122
136
|
* @param suts - SUTs to execute
|
|
123
137
|
* @param cases - Cases to run against
|
|
124
138
|
* @param metricsExtractor - Function to extract metrics from result
|
|
@@ -126,6 +140,20 @@ export declare class Executor<TInput = unknown, TInputs = unknown, TResult = unk
|
|
|
126
140
|
* @returns Execution summary with all results
|
|
127
141
|
*/
|
|
128
142
|
execute(suts: SutDefinition<TInputs, TResult>[], cases: CaseDefinition<TInput, TInputs>[], metricsExtractor: (result: TResult) => Record<string, number>, plannedRuns?: PlannedRun[]): Promise<ExecutionSummary>;
|
|
143
|
+
/**
|
|
144
|
+
* Execute using worker threads for main thread isolation.
|
|
145
|
+
*
|
|
146
|
+
* This method is always used by default (unless forceInProcess is true).
|
|
147
|
+
* Workers run in separate OS threads, preventing SUT crashes from affecting the main process.
|
|
148
|
+
*
|
|
149
|
+
* @param suts - SUTs to execute
|
|
150
|
+
* @param cases - Cases to run against
|
|
151
|
+
* @param metricsExtractor - Function to extract metrics from result
|
|
152
|
+
* @param plannedRuns - Optional pre-filtered planned runs
|
|
153
|
+
* @param startTime - Start time for elapsed time calculation
|
|
154
|
+
* @returns Execution summary with all results
|
|
155
|
+
*/
|
|
156
|
+
private executeWithWorkerThreads;
|
|
129
157
|
/**
|
|
130
158
|
* Execute runs sequentially (original behavior).
|
|
131
159
|
* @param plannedRuns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAqB,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,+CAA+C;IAC/C,eAAe,EAAE,OAAO,CAAC;IAEzB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IAEpB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAElB,gDAAgD;IAChD,iBAAiB,EAAE,OAAO,CAAC;IAE3B,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAEnD,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,qDAAqD;IACrD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,sDAAsD;IACtD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,6 +119,11 @@ export class Executor {
|
|
|
119
119
|
/**
|
|
120
120
|
* Execute all planned runs.
|
|
121
121
|
*
|
|
122
|
+
* By default, always uses worker threads to isolate the main thread from SUT crashes.
|
|
123
|
+
* Even concurrency=1 runs in a worker (sequential, but isolated).
|
|
124
|
+
*
|
|
125
|
+
* Use forceInProcess=true to run in-process without worker isolation (unsafe: SUT crashes can crash main process).
|
|
126
|
+
*
|
|
122
127
|
* @param suts - SUTs to execute
|
|
123
128
|
* @param cases - Cases to run against
|
|
124
129
|
* @param metricsExtractor - Function to extract metrics from result
|
|
@@ -127,17 +132,64 @@ export class Executor {
|
|
|
127
132
|
*/
|
|
128
133
|
async execute(suts, cases, metricsExtractor, plannedRuns) {
|
|
129
134
|
const startTime = performance.now();
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
// Check forceInProcess flag (unsafe: SUT crashes can crash main process)
|
|
136
|
+
if (this.config.forceInProcess) {
|
|
137
|
+
const effectivePlannedRuns = plannedRuns ?? this.plan(suts, cases);
|
|
138
|
+
const sutMap = new Map(suts.map((s) => [s.registration.id, s]));
|
|
139
|
+
const caseMap = new Map(cases.map((c) => [c.case.caseId, c]));
|
|
140
|
+
const concurrency = this.config.concurrency ?? 1;
|
|
141
|
+
if (concurrency <= 1) {
|
|
142
|
+
// Sequential execution (original behavior, unsafe)
|
|
143
|
+
return this.executeSequential(effectivePlannedRuns, sutMap, caseMap, metricsExtractor, startTime);
|
|
144
|
+
}
|
|
145
|
+
// Parallel execution with concurrency limit (unsafe)
|
|
146
|
+
return this.executeParallel(effectivePlannedRuns, sutMap, caseMap, metricsExtractor, startTime, concurrency);
|
|
138
147
|
}
|
|
139
|
-
//
|
|
140
|
-
|
|
148
|
+
// ALWAYS use worker threads to isolate main thread from crashes
|
|
149
|
+
// Even concurrency=1 runs in a worker (sequential, but isolated)
|
|
150
|
+
return this.executeWithWorkerThreads(suts, cases, metricsExtractor, plannedRuns, startTime);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Execute using worker threads for main thread isolation.
|
|
154
|
+
*
|
|
155
|
+
* This method is always used by default (unless forceInProcess is true).
|
|
156
|
+
* Workers run in separate OS threads, preventing SUT crashes from affecting the main process.
|
|
157
|
+
*
|
|
158
|
+
* @param suts - SUTs to execute
|
|
159
|
+
* @param cases - Cases to run against
|
|
160
|
+
* @param metricsExtractor - Function to extract metrics from result
|
|
161
|
+
* @param plannedRuns - Optional pre-filtered planned runs
|
|
162
|
+
* @param startTime - Start time for elapsed time calculation
|
|
163
|
+
* @returns Execution summary with all results
|
|
164
|
+
*/
|
|
165
|
+
async executeWithWorkerThreads(suts, cases, _metricsExtractor, plannedRuns, startTime) {
|
|
166
|
+
// Dynamically import WorkerThreadsExecutor to avoid circular dependency
|
|
167
|
+
const { WorkerThreadsExecutor } = await import("./worker-threads-executor.js");
|
|
168
|
+
const { calculateResources } = await import("./resource-calculator.js");
|
|
169
|
+
// Auto-calculate worker count from 75% rule
|
|
170
|
+
const resources = await calculateResources(0.75);
|
|
171
|
+
// Minimum 1 worker, max from 75% rule or explicit config
|
|
172
|
+
const workerCount = Math.max(1, Math.min(this.config.concurrency ?? resources.maxWorkers, resources.maxWorkers));
|
|
173
|
+
const effectivePlannedRuns = plannedRuns ?? this.plan(suts, cases);
|
|
174
|
+
// Create worker threads executor
|
|
175
|
+
const workerExecutor = new WorkerThreadsExecutor({
|
|
176
|
+
workers: workerCount,
|
|
177
|
+
maxMemoryMb: resources.maxMemoryMb,
|
|
178
|
+
maxConcurrentIo: resources.maxConcurrentIo,
|
|
179
|
+
});
|
|
180
|
+
// Execute using worker threads
|
|
181
|
+
const { results, errors } = await workerExecutor.execute(effectivePlannedRuns, suts, cases, this.config, {});
|
|
182
|
+
// Calculate summary
|
|
183
|
+
const successfulRuns = results.length;
|
|
184
|
+
const failedRuns = errors.length;
|
|
185
|
+
return {
|
|
186
|
+
totalRuns: effectivePlannedRuns.length,
|
|
187
|
+
successfulRuns,
|
|
188
|
+
failedRuns,
|
|
189
|
+
elapsedMs: performance.now() - startTime,
|
|
190
|
+
results,
|
|
191
|
+
errors,
|
|
192
|
+
};
|
|
141
193
|
}
|
|
142
194
|
/**
|
|
143
195
|
* Execute runs sequentially (original behavior).
|
|
@@ -161,18 +213,6 @@ export class Executor {
|
|
|
161
213
|
failed++;
|
|
162
214
|
continue;
|
|
163
215
|
}
|
|
164
|
-
// Report progress
|
|
165
|
-
if (this.config.onProgress) {
|
|
166
|
-
this.config.onProgress({
|
|
167
|
-
total: plannedRuns.length,
|
|
168
|
-
completed,
|
|
169
|
-
failed,
|
|
170
|
-
currentSut: run.sutId,
|
|
171
|
-
currentCase: run.caseId,
|
|
172
|
-
currentRepetition: run.repetition,
|
|
173
|
-
elapsedMs: performance.now() - startTime,
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
216
|
try {
|
|
177
217
|
const result = await this.executeRun(run, sutDef, caseDef, metricsExtractor);
|
|
178
218
|
results.push(result);
|
|
@@ -184,6 +224,18 @@ export class Executor {
|
|
|
184
224
|
}
|
|
185
225
|
}
|
|
186
226
|
completed++;
|
|
227
|
+
// Report progress after completion
|
|
228
|
+
if (this.config.onProgress) {
|
|
229
|
+
this.config.onProgress({
|
|
230
|
+
total: plannedRuns.length,
|
|
231
|
+
completed,
|
|
232
|
+
failed,
|
|
233
|
+
currentSut: run.sutId,
|
|
234
|
+
currentCase: run.caseId,
|
|
235
|
+
currentRepetition: run.repetition,
|
|
236
|
+
elapsedMs: performance.now() - startTime,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
187
239
|
}
|
|
188
240
|
catch (error) {
|
|
189
241
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
@@ -276,8 +328,8 @@ export class Executor {
|
|
|
276
328
|
releaseLock();
|
|
277
329
|
}
|
|
278
330
|
catch (error) {
|
|
279
|
-
await acquireLock();
|
|
280
331
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
332
|
+
await acquireLock();
|
|
281
333
|
errors.push({ runId: run.runId, error: errorMessage });
|
|
282
334
|
failed++;
|
|
283
335
|
releaseLock();
|
|
@@ -338,7 +390,16 @@ export class Executor {
|
|
|
338
390
|
}
|
|
339
391
|
}
|
|
340
392
|
// Get algorithm inputs for this case
|
|
341
|
-
|
|
393
|
+
let inputs = caseDef.getInputs();
|
|
394
|
+
// Handle case where inputs.expander is null but input is loaded separately
|
|
395
|
+
// This happens for expansion SUTs that expect expander in inputs but PPEF loads it as input
|
|
396
|
+
if (typeof inputs === "object" &&
|
|
397
|
+
inputs !== null &&
|
|
398
|
+
"expander" in inputs &&
|
|
399
|
+
inputs.expander === null &&
|
|
400
|
+
input !== undefined) {
|
|
401
|
+
inputs = { ...inputs, expander: input };
|
|
402
|
+
}
|
|
342
403
|
// Create SUT instance (factory now takes only config)
|
|
343
404
|
const sut = sutDef.factory(run.config);
|
|
344
405
|
// Execute with timeout if configured
|