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
|
@@ -3,65 +3,56 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This file is loaded as a worker thread and receives messages
|
|
5
5
|
* with batches of runs to execute.
|
|
6
|
+
*
|
|
7
|
+
* It uses dependency injection to allow testing of the core logic.
|
|
6
8
|
*/
|
|
7
9
|
import { dirname, resolve } from "node:path";
|
|
8
10
|
import { fileURLToPath } from "node:url";
|
|
9
11
|
import { parentPort } from "node:worker_threads";
|
|
12
|
+
import { WorkerExecutor, } from "./worker-executor.js";
|
|
10
13
|
const __filename = fileURLToPath(import.meta.url);
|
|
11
14
|
const __dirname = dirname(__filename);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
try {
|
|
56
|
-
const result = await executeBatch(message);
|
|
57
|
-
parentPort?.postMessage({ type: "done", ...result });
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
parentPort?.postMessage({
|
|
61
|
-
type: "error",
|
|
62
|
-
error: error instanceof Error ? error.message : String(error),
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
})();
|
|
66
|
-
});
|
|
15
|
+
// From dist/executor/, go up 2 levels to reach the package root
|
|
16
|
+
const projectRoot = resolve(__dirname, "../../");
|
|
17
|
+
/**
|
|
18
|
+
* Real module loader implementation for production use.
|
|
19
|
+
*
|
|
20
|
+
* Module paths reference the ppef structure:
|
|
21
|
+
* - executor: src/executor/executor.ts -> dist/executor/executor.js
|
|
22
|
+
* - evaluate: Not used in worker mode (SUTs/cases loaded via serialization)
|
|
23
|
+
* - registry: Not used in worker mode (not needed for isolated execution)
|
|
24
|
+
* - suts: Not used in worker mode (SUTs passed via serialization)
|
|
25
|
+
* - datasets: Not used in worker mode (not needed for isolated execution)
|
|
26
|
+
*
|
|
27
|
+
* NOTE: For worker threads, SUT and case definitions are passed via
|
|
28
|
+
* WorkerMessage serialization instead of dynamic imports, providing
|
|
29
|
+
* better isolation and avoiding hardcoded module paths.
|
|
30
|
+
*/
|
|
31
|
+
class RealModuleLoader {
|
|
32
|
+
async loadExecutor() {
|
|
33
|
+
return (await import(`${projectRoot}/dist/executor/executor.js`));
|
|
34
|
+
}
|
|
35
|
+
loadEvaluate() {
|
|
36
|
+
// Not used in worker threads mode - SUTs/cases passed via serialization
|
|
37
|
+
return Promise.reject(new Error("loadEvaluate not supported in worker threads mode"));
|
|
38
|
+
}
|
|
39
|
+
loadRegistry() {
|
|
40
|
+
// Not used in worker threads mode
|
|
41
|
+
return Promise.reject(new Error("loadRegistry not supported in worker threads mode"));
|
|
42
|
+
}
|
|
43
|
+
loadSuts() {
|
|
44
|
+
// Not used in worker threads mode - SUTs passed via serialization
|
|
45
|
+
return Promise.reject(new Error("loadSuts not supported in worker threads mode"));
|
|
46
|
+
}
|
|
47
|
+
loadDatasets() {
|
|
48
|
+
// Not used in worker threads mode
|
|
49
|
+
return Promise.reject(new Error("loadDatasets not supported in worker threads mode"));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Create executor with real dependencies and start listening
|
|
53
|
+
if (parentPort) {
|
|
54
|
+
const moduleLoader = new RealModuleLoader();
|
|
55
|
+
const executor = new WorkerExecutor(parentPort, moduleLoader, projectRoot);
|
|
56
|
+
executor.start();
|
|
57
|
+
}
|
|
67
58
|
//# sourceMappingURL=worker-entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-entry.js","sourceRoot":"","sources":["../../src/executor/worker-entry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"worker-entry.js","sourceRoot":"","sources":["../../src/executor/worker-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAON,cAAc,GACd,MAAM,sBAAsB,CAAC;AAE9B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,gEAAgE;AAChE,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AACH,MAAM,gBAAgB;IACd,KAAK,CAAC,YAAY;QACxB,OAAO,CAAC,MAAM,MAAM,CAAC,GAAG,WAAW,4BAA4B,CAAC,CAA+B,CAAC;IACjG,CAAC;IAEM,YAAY;QAClB,wEAAwE;QACxE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;IACvF,CAAC;IAEM,YAAY;QAClB,kCAAkC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;IACvF,CAAC;IAEM,QAAQ;QACd,kEAAkE;QAClE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;IACnF,CAAC;IAEM,YAAY;QAClB,kCAAkC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;IACvF,CAAC;CACD;AAED,6DAA6D;AAC7D,IAAI,UAAU,EAAE,CAAC;IAChB,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAC3E,QAAQ,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkerExecutor - Core worker logic with dependency injection.
|
|
3
|
+
*
|
|
4
|
+
* This class can be tested by injecting mock dependencies,
|
|
5
|
+
* while worker-entry.ts provides real implementations.
|
|
6
|
+
*
|
|
7
|
+
* Two execution modes:
|
|
8
|
+
* 1. Legacy mode: Uses module loader to dynamically load SUTs/cases (for backward compatibility)
|
|
9
|
+
* 2. Serialized mode: SUTs/cases passed via WorkerMessage (for worker threads isolation)
|
|
10
|
+
*/
|
|
11
|
+
import type { EvaluationResult } from "../types/result.js";
|
|
12
|
+
/**
|
|
13
|
+
* Type definition for a single run configuration
|
|
14
|
+
*/
|
|
15
|
+
export interface RunConfig {
|
|
16
|
+
runId: string;
|
|
17
|
+
sutId: string;
|
|
18
|
+
caseId: string;
|
|
19
|
+
repetition: number;
|
|
20
|
+
config: unknown;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Type definition for executor configuration
|
|
24
|
+
*/
|
|
25
|
+
export interface ExecutorConfig {
|
|
26
|
+
repetitions: number;
|
|
27
|
+
seedBase: number;
|
|
28
|
+
continueOnError: boolean;
|
|
29
|
+
timeoutMs: number;
|
|
30
|
+
collectProvenance: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Serialized SUT definition for passing via WorkerMessage.
|
|
34
|
+
*/
|
|
35
|
+
export interface SerializedSut {
|
|
36
|
+
id: string;
|
|
37
|
+
module: string;
|
|
38
|
+
exportName: string;
|
|
39
|
+
registration: {
|
|
40
|
+
name: string;
|
|
41
|
+
version: string;
|
|
42
|
+
role: string;
|
|
43
|
+
};
|
|
44
|
+
/** Binary SUT configuration (if type="binary") */
|
|
45
|
+
binary?: {
|
|
46
|
+
command: string;
|
|
47
|
+
args?: string[];
|
|
48
|
+
inputFormat?: "json" | "raw" | "lines";
|
|
49
|
+
outputFormat?: "json" | "raw" | "lines";
|
|
50
|
+
timeout?: number;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Serialized case definition for passing via WorkerMessage.
|
|
55
|
+
*/
|
|
56
|
+
export interface SerializedCase {
|
|
57
|
+
caseId: string;
|
|
58
|
+
module: string;
|
|
59
|
+
exportName: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Registry manifest for passing pre-registered SUTs/cases via WorkerMessage.
|
|
63
|
+
* Allows worker threads to reconstruct registries without dynamic module loading.
|
|
64
|
+
*
|
|
65
|
+
* This enables registry-based SUTs (like GraphBox's wrapper classes) to work
|
|
66
|
+
* with worker thread isolation without requiring standalone createSut() files.
|
|
67
|
+
*/
|
|
68
|
+
export interface RegistryManifest {
|
|
69
|
+
/** Pre-registered SUT metadata */
|
|
70
|
+
suts: {
|
|
71
|
+
id: string;
|
|
72
|
+
name: string;
|
|
73
|
+
version: string;
|
|
74
|
+
role: string;
|
|
75
|
+
config: Record<string, unknown>;
|
|
76
|
+
tags: string[];
|
|
77
|
+
}[];
|
|
78
|
+
/** Shared code bundle (registry functions) */
|
|
79
|
+
sharedCode: string;
|
|
80
|
+
/** Map of SUT IDs to their module paths */
|
|
81
|
+
sutModules: Record<string, string>;
|
|
82
|
+
/** Export name for createSut function */
|
|
83
|
+
exportName: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Type definition for message sent to worker.
|
|
87
|
+
*
|
|
88
|
+
* Supports three modes:
|
|
89
|
+
* - Legacy: Only `runs` and `config` provided (uses module loader)
|
|
90
|
+
* - Serialized: `suts` and `cases` arrays provided (direct instantiation)
|
|
91
|
+
* - Registry: `registryManifest` provided (reconstructs registry from manifest)
|
|
92
|
+
*/
|
|
93
|
+
export interface WorkerMessage {
|
|
94
|
+
runs: RunConfig[];
|
|
95
|
+
config: ExecutorConfig;
|
|
96
|
+
/** Base directory for resolving module paths (required for serialized mode) */
|
|
97
|
+
baseDir?: string;
|
|
98
|
+
/** Serialized SUT definitions (optional, for serialized mode) */
|
|
99
|
+
suts?: SerializedSut[];
|
|
100
|
+
/** Serialized case definitions (optional, for serialized mode) */
|
|
101
|
+
cases?: SerializedCase[];
|
|
102
|
+
/** Registry manifest (optional, for registry mode) */
|
|
103
|
+
registryManifest?: RegistryManifest;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Type definition for worker response
|
|
107
|
+
*/
|
|
108
|
+
export interface WorkerResponse {
|
|
109
|
+
results: EvaluationResult[];
|
|
110
|
+
errors: {
|
|
111
|
+
runId: string;
|
|
112
|
+
error: string;
|
|
113
|
+
}[];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Type definition for successful response message
|
|
117
|
+
*/
|
|
118
|
+
export interface WorkerSuccessMessage {
|
|
119
|
+
type: "done";
|
|
120
|
+
results: EvaluationResult[];
|
|
121
|
+
errors: {
|
|
122
|
+
runId: string;
|
|
123
|
+
error: string;
|
|
124
|
+
}[];
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Type definition for error response message
|
|
128
|
+
*/
|
|
129
|
+
export interface WorkerErrorMessage {
|
|
130
|
+
type: "error";
|
|
131
|
+
error: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Type definition for any worker message
|
|
135
|
+
*/
|
|
136
|
+
export type WorkerOutputMessage = WorkerSuccessMessage | WorkerErrorMessage;
|
|
137
|
+
/**
|
|
138
|
+
* Interface for parent port communication
|
|
139
|
+
*/
|
|
140
|
+
export interface IParentPort {
|
|
141
|
+
on(event: string, listener: (data: unknown) => void): void;
|
|
142
|
+
postMessage(message: unknown): void;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Interface for dynamically loaded executor module
|
|
146
|
+
*/
|
|
147
|
+
export interface IExecutorModule {
|
|
148
|
+
Executor: new (config: ExecutorConfig) => {
|
|
149
|
+
execute(suts: unknown, cases: unknown, callback: () => unknown): Promise<{
|
|
150
|
+
results: EvaluationResult[];
|
|
151
|
+
errors: {
|
|
152
|
+
runId: string;
|
|
153
|
+
error: string;
|
|
154
|
+
}[];
|
|
155
|
+
}>;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Interface for dynamically loaded evaluate module
|
|
160
|
+
*/
|
|
161
|
+
export interface IEvaluateModule {
|
|
162
|
+
getSutDefinitions(registry: ISutRegistry): unknown;
|
|
163
|
+
getCaseDefinitions(registry: unknown): unknown;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Interface for SUT registry
|
|
167
|
+
*/
|
|
168
|
+
export interface ISutRegistry {
|
|
169
|
+
list(): string[];
|
|
170
|
+
getFactory(id: string): unknown;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Interface for dynamically loaded registry module
|
|
174
|
+
*/
|
|
175
|
+
export interface IRegistryModule {
|
|
176
|
+
registerAllBenchmarkCases(): Promise<unknown>;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Interface for dynamically loaded SUTs module
|
|
180
|
+
*/
|
|
181
|
+
export interface ISutsModule {
|
|
182
|
+
registerAllSuts(): void;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Interface for dynamically loaded datasets module
|
|
186
|
+
*/
|
|
187
|
+
export interface IDatasetsModule {
|
|
188
|
+
registerBenchmarkDatasets(): Promise<void>;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Interface for module loader
|
|
192
|
+
*/
|
|
193
|
+
export interface IModuleLoader {
|
|
194
|
+
loadExecutor(): Promise<IExecutorModule>;
|
|
195
|
+
loadEvaluate(): Promise<IEvaluateModule>;
|
|
196
|
+
loadRegistry(): Promise<IRegistryModule>;
|
|
197
|
+
loadSuts(): Promise<ISutsModule>;
|
|
198
|
+
loadDatasets(): Promise<IDatasetsModule>;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* WorkerExecutor - Core worker execution logic with injected dependencies.
|
|
202
|
+
*
|
|
203
|
+
* Supports two execution modes:
|
|
204
|
+
* 1. Legacy mode: Uses module loader for dynamic imports (backward compatible)
|
|
205
|
+
* 2. Serialized mode: SUTs/cases passed via WorkerMessage (worker threads isolation)
|
|
206
|
+
*/
|
|
207
|
+
export declare class WorkerExecutor {
|
|
208
|
+
private readonly parentPort;
|
|
209
|
+
private readonly moduleLoader;
|
|
210
|
+
private readonly projectRoot;
|
|
211
|
+
/**
|
|
212
|
+
* Create a new WorkerExecutor with injected dependencies.
|
|
213
|
+
* @param parentPort - Communication port to parent thread
|
|
214
|
+
* @param moduleLoader - Module loader for dynamic imports (legacy mode)
|
|
215
|
+
* @param projectRoot - Root directory for the project (used for module resolution)
|
|
216
|
+
*/
|
|
217
|
+
constructor(parentPort: IParentPort, moduleLoader: IModuleLoader, projectRoot: string);
|
|
218
|
+
/**
|
|
219
|
+
* Start listening for messages from parent thread.
|
|
220
|
+
*/
|
|
221
|
+
start(): void;
|
|
222
|
+
/**
|
|
223
|
+
* Handle an incoming message from the parent thread.
|
|
224
|
+
*/
|
|
225
|
+
handleMessage(data: unknown): Promise<void>;
|
|
226
|
+
/**
|
|
227
|
+
* Execute a batch of runs.
|
|
228
|
+
*
|
|
229
|
+
* Three execution modes:
|
|
230
|
+
* 1. Legacy mode: Uses module loader to dynamically load SUTs/cases
|
|
231
|
+
* 2. Serialized mode: SUTs/cases passed via WorkerMessage (for worker threads)
|
|
232
|
+
* 3. Registry mode: Reconstructs registry from manifest (for registry-based SUTs)
|
|
233
|
+
*/
|
|
234
|
+
executeBatch(message: WorkerMessage): Promise<WorkerResponse>;
|
|
235
|
+
/**
|
|
236
|
+
* Execute using legacy mode with dynamic module loading.
|
|
237
|
+
* Used for backward compatibility with existing tests.
|
|
238
|
+
*/
|
|
239
|
+
private executeBatchLegacy;
|
|
240
|
+
/**
|
|
241
|
+
* Execute using serialized mode (SUTs/cases passed via WorkerMessage).
|
|
242
|
+
* This mode is used for worker threads isolation.
|
|
243
|
+
*
|
|
244
|
+
* Dynamically imports SUT and case modules based on provided definitions,
|
|
245
|
+
* creates an Executor instance, and executes the planned runs.
|
|
246
|
+
*/
|
|
247
|
+
private executeBatchSerialized;
|
|
248
|
+
/**
|
|
249
|
+
* Execute using registry manifest mode.
|
|
250
|
+
* Reconstructs SUT registry from manifest and executes runs.
|
|
251
|
+
*
|
|
252
|
+
* This mode enables registry-based SUTs (like GraphBox wrapper classes)
|
|
253
|
+
* to work with worker thread isolation without requiring standalone files.
|
|
254
|
+
*/
|
|
255
|
+
private executeBatchRegistry;
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=worker-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-executor.d.ts","sourceRoot":"","sources":["../../src/executor/worker-executor.ts"],"names":[],"mappings":"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"}
|