ppef 1.0.0 → 1.0.1
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 +172 -0
- package/dist/__tests__/framework-pipeline.integration.test.d.ts +7 -0
- package/dist/__tests__/framework-pipeline.integration.test.d.ts.map +1 -0
- package/dist/__tests__/framework-pipeline.integration.test.js +413 -0
- package/dist/__tests__/framework-pipeline.integration.test.js.map +1 -0
- package/dist/__tests__/registry-executor.integration.test.d.ts +5 -0
- package/dist/__tests__/registry-executor.integration.test.d.ts.map +1 -0
- package/dist/__tests__/registry-executor.integration.test.js +349 -0
- package/dist/__tests__/registry-executor.integration.test.js.map +1 -0
- package/dist/__tests__/test-helpers.d.ts +94 -0
- package/dist/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/__tests__/test-helpers.js +271 -0
- package/dist/__tests__/test-helpers.js.map +1 -0
- package/dist/aggregation/aggregators.d.ts +54 -0
- package/dist/aggregation/aggregators.d.ts.map +1 -0
- package/dist/aggregation/aggregators.js +228 -0
- package/dist/aggregation/aggregators.js.map +1 -0
- package/dist/aggregation/index.d.ts +8 -0
- package/dist/aggregation/index.d.ts.map +1 -0
- package/dist/aggregation/index.js +8 -0
- package/dist/aggregation/index.js.map +1 -0
- package/dist/aggregation/pipeline.d.ts +38 -0
- package/dist/aggregation/pipeline.d.ts.map +1 -0
- package/dist/aggregation/pipeline.js +198 -0
- package/dist/aggregation/pipeline.js.map +1 -0
- package/dist/claims/evaluator.d.ts +33 -0
- package/dist/claims/evaluator.d.ts.map +1 -0
- package/dist/claims/evaluator.js +174 -0
- package/dist/claims/evaluator.js.map +1 -0
- package/dist/claims/index.d.ts +7 -0
- package/dist/claims/index.d.ts.map +1 -0
- package/dist/claims/index.js +7 -0
- package/dist/claims/index.js.map +1 -0
- package/dist/collector/index.d.ts +8 -0
- package/dist/collector/index.d.ts.map +1 -0
- package/dist/collector/index.js +8 -0
- package/dist/collector/index.js.map +1 -0
- package/dist/collector/result-collector.d.ts +159 -0
- package/dist/collector/result-collector.d.ts.map +1 -0
- package/dist/collector/result-collector.js +213 -0
- package/dist/collector/result-collector.js.map +1 -0
- package/dist/collector/schema.d.ts +34 -0
- package/dist/collector/schema.d.ts.map +1 -0
- package/dist/collector/schema.js +145 -0
- package/dist/collector/schema.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.d.ts +10 -0
- package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.js +122 -0
- package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.integration.test.d.ts +7 -0
- package/dist/executor/__tests__/checkpoint-manager.integration.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.integration.test.js +330 -0
- package/dist/executor/__tests__/checkpoint-manager.integration.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.js +449 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts +11 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js +224 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.js +164 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-storage.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/checkpoint-storage.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-storage.unit.test.js +386 -0
- package/dist/executor/__tests__/checkpoint-storage.unit.test.js.map +1 -0
- package/dist/executor/__tests__/executor.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/executor.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/executor.unit.test.js +134 -0
- package/dist/executor/__tests__/executor.unit.test.js.map +1 -0
- package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.d.ts +12 -0
- package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.d.ts.map +1 -0
- package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.js +196 -0
- package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.js.map +1 -0
- package/dist/executor/__tests__/parallel-executor.integration.test.d.ts +7 -0
- package/dist/executor/__tests__/parallel-executor.integration.test.d.ts.map +1 -0
- package/dist/executor/__tests__/parallel-executor.integration.test.js +249 -0
- package/dist/executor/__tests__/parallel-executor.integration.test.js.map +1 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.js +203 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.js.map +1 -0
- package/dist/executor/checkpoint-manager.d.ts +231 -0
- package/dist/executor/checkpoint-manager.d.ts.map +1 -0
- package/dist/executor/checkpoint-manager.js +395 -0
- package/dist/executor/checkpoint-manager.js.map +1 -0
- package/dist/executor/checkpoint-storage.d.ts +230 -0
- package/dist/executor/checkpoint-storage.d.ts.map +1 -0
- package/dist/executor/checkpoint-storage.js +370 -0
- package/dist/executor/checkpoint-storage.js.map +1 -0
- package/dist/executor/checkpoint-types.d.ts +48 -0
- package/dist/executor/checkpoint-types.d.ts.map +1 -0
- package/dist/executor/checkpoint-types.js +8 -0
- package/dist/executor/checkpoint-types.js.map +1 -0
- package/dist/executor/executor.d.ts +164 -0
- package/dist/executor/executor.d.ts.map +1 -0
- package/dist/executor/executor.js +408 -0
- package/dist/executor/executor.js.map +1 -0
- package/dist/executor/index.d.ts +11 -0
- package/dist/executor/index.d.ts.map +1 -0
- package/dist/executor/index.js +11 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/executor/memory-monitor.d.ts +115 -0
- package/dist/executor/memory-monitor.d.ts.map +1 -0
- package/dist/executor/memory-monitor.js +168 -0
- package/dist/executor/memory-monitor.js.map +1 -0
- package/dist/executor/parallel-executor.d.ts +53 -0
- package/dist/executor/parallel-executor.d.ts.map +1 -0
- package/dist/executor/parallel-executor.js +194 -0
- package/dist/executor/parallel-executor.js.map +1 -0
- package/dist/executor/run-id.d.ts +71 -0
- package/dist/executor/run-id.d.ts.map +1 -0
- package/dist/executor/run-id.js +67 -0
- package/dist/executor/run-id.js.map +1 -0
- package/dist/executor/worker-entry.d.ts +8 -0
- package/dist/executor/worker-entry.d.ts.map +1 -0
- package/dist/executor/worker-entry.js +67 -0
- package/dist/executor/worker-entry.js.map +1 -0
- package/dist/index.cjs +11 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/case-registry.d.ts +113 -0
- package/dist/registry/case-registry.d.ts.map +1 -0
- package/dist/registry/case-registry.js +160 -0
- package/dist/registry/case-registry.js.map +1 -0
- package/dist/registry/index.d.ts +8 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/sut-registry.d.ts +96 -0
- package/dist/registry/sut-registry.d.ts.map +1 -0
- package/dist/registry/sut-registry.js +126 -0
- package/dist/registry/sut-registry.js.map +1 -0
- package/dist/renderers/index.d.ts +10 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/index.js +9 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/renderers/latex-renderer.d.ts +84 -0
- package/dist/renderers/latex-renderer.d.ts.map +1 -0
- package/dist/renderers/latex-renderer.js +208 -0
- package/dist/renderers/latex-renderer.js.map +1 -0
- package/dist/renderers/types.d.ts +106 -0
- package/dist/renderers/types.d.ts.map +1 -0
- package/dist/renderers/types.js +23 -0
- package/dist/renderers/types.js.map +1 -0
- package/dist/robustness/analyzer.d.ts +61 -0
- package/dist/robustness/analyzer.d.ts.map +1 -0
- package/dist/robustness/analyzer.js +191 -0
- package/dist/robustness/analyzer.js.map +1 -0
- package/dist/robustness/index.d.ts +8 -0
- package/dist/robustness/index.d.ts.map +1 -0
- package/dist/robustness/index.js +8 -0
- package/dist/robustness/index.js.map +1 -0
- package/dist/robustness/perturbations.d.ts +46 -0
- package/dist/robustness/perturbations.d.ts.map +1 -0
- package/dist/robustness/perturbations.js +184 -0
- package/dist/robustness/perturbations.js.map +1 -0
- package/dist/statistical/index.d.ts +8 -0
- package/dist/statistical/index.d.ts.map +1 -0
- package/dist/statistical/index.js +8 -0
- package/dist/statistical/index.js.map +1 -0
- package/dist/statistical/mann-whitney-u.d.ts +62 -0
- package/dist/statistical/mann-whitney-u.d.ts.map +1 -0
- package/dist/statistical/mann-whitney-u.js +127 -0
- package/dist/statistical/mann-whitney-u.js.map +1 -0
- package/dist/types/aggregate.d.ts +124 -0
- package/dist/types/aggregate.d.ts.map +1 -0
- package/dist/types/aggregate.js +9 -0
- package/dist/types/aggregate.js.map +1 -0
- package/dist/types/case.d.ts +105 -0
- package/dist/types/case.d.ts.map +1 -0
- package/dist/types/case.js +10 -0
- package/dist/types/case.js.map +1 -0
- package/dist/types/claims.d.ts +122 -0
- package/dist/types/claims.d.ts.map +1 -0
- package/dist/types/claims.js +14 -0
- package/dist/types/claims.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/perturbation.d.ts +105 -0
- package/dist/types/perturbation.d.ts.map +1 -0
- package/dist/types/perturbation.js +9 -0
- package/dist/types/perturbation.js.map +1 -0
- package/dist/types/result.d.ts +150 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +12 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/sut.d.ts +128 -0
- package/dist/types/sut.d.ts.map +1 -0
- package/dist/types/sut.js +12 -0
- package/dist/types/sut.js.map +1 -0
- package/package.json +283 -7
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration tests for CheckpointManager
|
|
3
|
+
*
|
|
4
|
+
* Tests end-to-end checkpoint operations with real file system.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, rmSync, unlinkSync } from "node:fs";
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
import { describe, it, beforeEach, afterEach } from "node:test";
|
|
9
|
+
import assert from "node:assert/strict";
|
|
10
|
+
import { CheckpointManager, InMemoryLock } from "../checkpoint-manager.js";
|
|
11
|
+
import { FileStorage } from "../checkpoint-storage.js";
|
|
12
|
+
const TEST_DIR = join(process.cwd(), "test-checkpoints");
|
|
13
|
+
/**
|
|
14
|
+
* Create a minimal valid EvaluationResult for testing.
|
|
15
|
+
* @param runId
|
|
16
|
+
*/
|
|
17
|
+
const createTestResult = (runId) => {
|
|
18
|
+
const runContext = {
|
|
19
|
+
runId,
|
|
20
|
+
sut: "test-sut",
|
|
21
|
+
sutRole: "primary",
|
|
22
|
+
caseId: "test-case",
|
|
23
|
+
config: { repetitions: 1, seedBase: 42 },
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
run: runContext,
|
|
27
|
+
correctness: {
|
|
28
|
+
expectedExists: false,
|
|
29
|
+
producedOutput: true,
|
|
30
|
+
valid: true,
|
|
31
|
+
matchesExpected: null,
|
|
32
|
+
},
|
|
33
|
+
outputs: {},
|
|
34
|
+
metrics: { numeric: {} },
|
|
35
|
+
provenance: {
|
|
36
|
+
runtime: {
|
|
37
|
+
platform: process.platform,
|
|
38
|
+
arch: process.arch,
|
|
39
|
+
nodeVersion: process.version,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Clean up test checkpoint files.
|
|
46
|
+
* @param path
|
|
47
|
+
*/
|
|
48
|
+
const cleanupCheckpointFile = (path) => {
|
|
49
|
+
try {
|
|
50
|
+
if (existsSync(path)) {
|
|
51
|
+
unlinkSync(path);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Ignore
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Clean up test directory.
|
|
60
|
+
*/
|
|
61
|
+
const cleanupTestDir = () => {
|
|
62
|
+
try {
|
|
63
|
+
rmSync(TEST_DIR, { recursive: true, force: true });
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Ignore
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
describe("CheckpointManager (Integration)", () => {
|
|
70
|
+
beforeEach(() => {
|
|
71
|
+
cleanupTestDir();
|
|
72
|
+
});
|
|
73
|
+
afterEach(() => {
|
|
74
|
+
cleanupTestDir();
|
|
75
|
+
});
|
|
76
|
+
describe("End-to-end checkpoint lifecycle", () => {
|
|
77
|
+
it("should create checkpoint, save results, load, and verify", async () => {
|
|
78
|
+
const checkpointPath = join(TEST_DIR, "checkpoint.json");
|
|
79
|
+
const storage = new FileStorage(checkpointPath);
|
|
80
|
+
const lock = new InMemoryLock();
|
|
81
|
+
const checkpoint = new CheckpointManager({ storage, lock });
|
|
82
|
+
// Initially no checkpoint
|
|
83
|
+
assert.strictEqual(await checkpoint.load(), false);
|
|
84
|
+
assert.strictEqual(checkpoint.exists(), false);
|
|
85
|
+
// Save a result
|
|
86
|
+
const result1 = createTestResult("run1");
|
|
87
|
+
await checkpoint.saveIncremental(result1);
|
|
88
|
+
// Load checkpoint
|
|
89
|
+
const loaded = await checkpoint.load();
|
|
90
|
+
assert.strictEqual(loaded, true);
|
|
91
|
+
assert.strictEqual(checkpoint.exists(), true);
|
|
92
|
+
// Verify data
|
|
93
|
+
assert.strictEqual(checkpoint.isCompleted("run1"), true);
|
|
94
|
+
assert.strictEqual(checkpoint.getResults().length, 1);
|
|
95
|
+
// Save another result
|
|
96
|
+
const result2 = createTestResult("run2");
|
|
97
|
+
await checkpoint.saveIncremental(result2);
|
|
98
|
+
// Reload and verify both results
|
|
99
|
+
await checkpoint.load();
|
|
100
|
+
assert.strictEqual(checkpoint.isCompleted("run1"), true);
|
|
101
|
+
assert.strictEqual(checkpoint.isCompleted("run2"), true);
|
|
102
|
+
assert.strictEqual(checkpoint.getResults().length, 2);
|
|
103
|
+
// Clean up
|
|
104
|
+
cleanupCheckpointFile(checkpointPath);
|
|
105
|
+
});
|
|
106
|
+
it("should resume from checkpoint and save more results", async () => {
|
|
107
|
+
const checkpointPath = join(TEST_DIR, "resume-checkpoint.json");
|
|
108
|
+
const storage = new FileStorage(checkpointPath);
|
|
109
|
+
const lock = new InMemoryLock();
|
|
110
|
+
const checkpoint = new CheckpointManager({ storage, lock });
|
|
111
|
+
// Save initial results
|
|
112
|
+
await checkpoint.saveIncremental(createTestResult("run1"));
|
|
113
|
+
await checkpoint.saveIncremental(createTestResult("run2"));
|
|
114
|
+
// Create new checkpoint manager instance (simulating process restart)
|
|
115
|
+
const storage2 = new FileStorage(checkpointPath);
|
|
116
|
+
const checkpoint2 = new CheckpointManager({ storage: storage2, lock });
|
|
117
|
+
await checkpoint2.load();
|
|
118
|
+
// Verify existing data
|
|
119
|
+
assert.strictEqual(checkpoint2.isCompleted("run1"), true);
|
|
120
|
+
assert.strictEqual(checkpoint2.isCompleted("run2"), true);
|
|
121
|
+
// Add more results
|
|
122
|
+
await checkpoint2.saveIncremental(createTestResult("run3"));
|
|
123
|
+
await checkpoint2.saveIncremental(createTestResult("run4"));
|
|
124
|
+
// Final verification with yet another instance
|
|
125
|
+
const storage3 = new FileStorage(checkpointPath);
|
|
126
|
+
const checkpoint3 = new CheckpointManager({ storage: storage3, lock });
|
|
127
|
+
await checkpoint3.load();
|
|
128
|
+
assert.strictEqual(checkpoint3.getResults().length, 4);
|
|
129
|
+
assert.strictEqual(checkpoint3.isCompleted("run1"), true);
|
|
130
|
+
assert.strictEqual(checkpoint3.isCompleted("run2"), true);
|
|
131
|
+
assert.strictEqual(checkpoint3.isCompleted("run3"), true);
|
|
132
|
+
assert.strictEqual(checkpoint3.isCompleted("run4"), true);
|
|
133
|
+
// Clean up
|
|
134
|
+
cleanupCheckpointFile(checkpointPath);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe("Multi-worker simulation", () => {
|
|
138
|
+
it("should handle multiple workers writing to separate files", async () => {
|
|
139
|
+
const workers = 3;
|
|
140
|
+
const checkpoints = [];
|
|
141
|
+
const checkpointPaths = [];
|
|
142
|
+
// Create checkpoint managers for each worker
|
|
143
|
+
for (let index = 0; index < workers; index++) {
|
|
144
|
+
const path = join(TEST_DIR, `checkpoint-worker-${index}.json`);
|
|
145
|
+
checkpointPaths.push(path);
|
|
146
|
+
const storage = new FileStorage(path);
|
|
147
|
+
const lock = new InMemoryLock();
|
|
148
|
+
const checkpoint = new CheckpointManager({
|
|
149
|
+
storage,
|
|
150
|
+
lock,
|
|
151
|
+
workerIndex: index,
|
|
152
|
+
totalWorkers: workers,
|
|
153
|
+
basePath: TEST_DIR,
|
|
154
|
+
});
|
|
155
|
+
checkpoints.push(checkpoint);
|
|
156
|
+
}
|
|
157
|
+
// Each worker saves different results
|
|
158
|
+
await checkpoints[0].saveIncremental(createTestResult("run0"));
|
|
159
|
+
await checkpoints[0].saveIncremental(createTestResult("run1"));
|
|
160
|
+
await checkpoints[1].saveIncremental(createTestResult("run2"));
|
|
161
|
+
await checkpoints[1].saveIncremental(createTestResult("run3"));
|
|
162
|
+
await checkpoints[2].saveIncremental(createTestResult("run4"));
|
|
163
|
+
await checkpoints[2].saveIncremental(createTestResult("run5"));
|
|
164
|
+
// Verify each worker has their own data
|
|
165
|
+
await checkpoints[0].load();
|
|
166
|
+
assert.strictEqual(checkpoints[0].getResults().length, 2);
|
|
167
|
+
assert.strictEqual(checkpoints[0].isCompleted("run0"), true);
|
|
168
|
+
assert.strictEqual(checkpoints[0].isCompleted("run1"), true);
|
|
169
|
+
await checkpoints[1].load();
|
|
170
|
+
assert.strictEqual(checkpoints[1].getResults().length, 2);
|
|
171
|
+
assert.strictEqual(checkpoints[1].isCompleted("run2"), true);
|
|
172
|
+
assert.strictEqual(checkpoints[1].isCompleted("run3"), true);
|
|
173
|
+
await checkpoints[2].load();
|
|
174
|
+
assert.strictEqual(checkpoints[2].getResults().length, 2);
|
|
175
|
+
assert.strictEqual(checkpoints[2].isCompleted("run4"), true);
|
|
176
|
+
assert.strictEqual(checkpoints[2].isCompleted("run5"), true);
|
|
177
|
+
// Clean up
|
|
178
|
+
for (const path of checkpointPaths) {
|
|
179
|
+
cleanupCheckpointFile(path);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
describe("Merge phase", () => {
|
|
184
|
+
it("should merge multiple worker checkpoints into aggregate", async () => {
|
|
185
|
+
const workers = 3;
|
|
186
|
+
const checkpointPaths = [];
|
|
187
|
+
// Create worker checkpoints
|
|
188
|
+
for (let index = 0; index < workers; index++) {
|
|
189
|
+
const path = join(TEST_DIR, `checkpoint-worker-${index}.json`);
|
|
190
|
+
checkpointPaths.push(path);
|
|
191
|
+
const storage = new FileStorage(path);
|
|
192
|
+
const lock = new InMemoryLock();
|
|
193
|
+
const checkpoint = new CheckpointManager({
|
|
194
|
+
storage,
|
|
195
|
+
lock,
|
|
196
|
+
workerIndex: index,
|
|
197
|
+
totalWorkers: workers,
|
|
198
|
+
basePath: TEST_DIR,
|
|
199
|
+
});
|
|
200
|
+
// Initialize with config hash
|
|
201
|
+
checkpoint.initializeEmpty([], [], { repetitions: 1 }, 6);
|
|
202
|
+
// Save some results
|
|
203
|
+
const baseIndex = index * 2;
|
|
204
|
+
await checkpoint.saveIncremental(createTestResult(`run${baseIndex}`));
|
|
205
|
+
await checkpoint.saveIncremental(createTestResult(`run${baseIndex + 1}`));
|
|
206
|
+
}
|
|
207
|
+
// Now merge them
|
|
208
|
+
const mainPath = join(TEST_DIR, "checkpoint.json");
|
|
209
|
+
const mainStorage = new FileStorage(mainPath);
|
|
210
|
+
const mainCheckpoint = new CheckpointManager({
|
|
211
|
+
storage: mainStorage,
|
|
212
|
+
lock: new InMemoryLock(),
|
|
213
|
+
});
|
|
214
|
+
await mainCheckpoint.mergeShards(checkpointPaths);
|
|
215
|
+
// Verify merged data
|
|
216
|
+
assert.strictEqual(mainCheckpoint.exists(), true);
|
|
217
|
+
assert.strictEqual(mainCheckpoint.getResults().length, 6);
|
|
218
|
+
assert.strictEqual(mainCheckpoint.isCompleted("run0"), true);
|
|
219
|
+
assert.strictEqual(mainCheckpoint.isCompleted("run1"), true);
|
|
220
|
+
assert.strictEqual(mainCheckpoint.isCompleted("run2"), true);
|
|
221
|
+
assert.strictEqual(mainCheckpoint.isCompleted("run3"), true);
|
|
222
|
+
assert.strictEqual(mainCheckpoint.isCompleted("run4"), true);
|
|
223
|
+
assert.strictEqual(mainCheckpoint.isCompleted("run5"), true);
|
|
224
|
+
// Clean up
|
|
225
|
+
cleanupCheckpointFile(mainPath);
|
|
226
|
+
for (const path of checkpointPaths) {
|
|
227
|
+
cleanupCheckpointFile(path);
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
it("should use FileStorage.findShards to discover worker checkpoints", async () => {
|
|
231
|
+
const workers = 3;
|
|
232
|
+
// Create worker checkpoints
|
|
233
|
+
for (let index = 0; index < workers; index++) {
|
|
234
|
+
const path = join(TEST_DIR, `checkpoint-worker-${index}.json`);
|
|
235
|
+
const storage = new FileStorage(path);
|
|
236
|
+
const lock = new InMemoryLock();
|
|
237
|
+
const checkpoint = new CheckpointManager({
|
|
238
|
+
storage,
|
|
239
|
+
lock,
|
|
240
|
+
workerIndex: index,
|
|
241
|
+
totalWorkers: workers,
|
|
242
|
+
basePath: TEST_DIR,
|
|
243
|
+
});
|
|
244
|
+
await checkpoint.saveIncremental(createTestResult(`run${index}`));
|
|
245
|
+
}
|
|
246
|
+
// Discover shards
|
|
247
|
+
const shards = await FileStorage.findShards(TEST_DIR);
|
|
248
|
+
assert.strictEqual(shards.length, 3);
|
|
249
|
+
// Merge discovered shards
|
|
250
|
+
const mainPath = join(TEST_DIR, "checkpoint.json");
|
|
251
|
+
const mainStorage = new FileStorage(mainPath);
|
|
252
|
+
const mainCheckpoint = new CheckpointManager({
|
|
253
|
+
storage: mainStorage,
|
|
254
|
+
lock: new InMemoryLock(),
|
|
255
|
+
});
|
|
256
|
+
await mainCheckpoint.mergeShards(shards);
|
|
257
|
+
// Verify all results merged
|
|
258
|
+
assert.strictEqual(mainCheckpoint.getResults().length, 3);
|
|
259
|
+
// Clean up
|
|
260
|
+
cleanupCheckpointFile(mainPath);
|
|
261
|
+
for (let index = 0; index < workers; index++) {
|
|
262
|
+
cleanupCheckpointFile(join(TEST_DIR, `checkpoint-worker-${index}.json`));
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
describe("Progress tracking", () => {
|
|
267
|
+
it("should calculate progress correctly", async () => {
|
|
268
|
+
const checkpointPath = join(TEST_DIR, "progress-checkpoint.json");
|
|
269
|
+
const storage = new FileStorage(checkpointPath);
|
|
270
|
+
const lock = new InMemoryLock();
|
|
271
|
+
const checkpoint = new CheckpointManager({ storage, lock });
|
|
272
|
+
// Initialize with total planned and save to persist totalPlanned
|
|
273
|
+
checkpoint.initializeEmpty([], [], { repetitions: 1 }, 10);
|
|
274
|
+
await checkpoint.save();
|
|
275
|
+
const progress1 = checkpoint.getProgress();
|
|
276
|
+
assert.strictEqual(progress1.completed, 0);
|
|
277
|
+
assert.strictEqual(progress1.total, 10);
|
|
278
|
+
assert.strictEqual(progress1.percent, 0);
|
|
279
|
+
// Save some results
|
|
280
|
+
await checkpoint.saveIncremental(createTestResult("run1"));
|
|
281
|
+
await checkpoint.saveIncremental(createTestResult("run2"));
|
|
282
|
+
await checkpoint.saveIncremental(createTestResult("run3"));
|
|
283
|
+
// Reload and check progress
|
|
284
|
+
await checkpoint.load();
|
|
285
|
+
const progress2 = checkpoint.getProgress();
|
|
286
|
+
assert.strictEqual(progress2.completed, 3);
|
|
287
|
+
assert.strictEqual(progress2.total, 10);
|
|
288
|
+
assert.strictEqual(progress2.percent, 30);
|
|
289
|
+
// Complete all
|
|
290
|
+
for (let index = 4; index <= 10; index++) {
|
|
291
|
+
await checkpoint.saveIncremental(createTestResult(`run${index}`));
|
|
292
|
+
}
|
|
293
|
+
await checkpoint.load();
|
|
294
|
+
const progress3 = checkpoint.getProgress();
|
|
295
|
+
assert.strictEqual(progress3.completed, 10);
|
|
296
|
+
assert.strictEqual(progress3.total, 10);
|
|
297
|
+
assert.strictEqual(progress3.percent, 100);
|
|
298
|
+
// Clean up
|
|
299
|
+
cleanupCheckpointFile(checkpointPath);
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
describe("Filter remaining runs", () => {
|
|
303
|
+
it("should filter out completed runs", async () => {
|
|
304
|
+
const checkpointPath = join(TEST_DIR, "filter-checkpoint.json");
|
|
305
|
+
const storage = new FileStorage(checkpointPath);
|
|
306
|
+
const lock = new InMemoryLock();
|
|
307
|
+
const checkpoint = new CheckpointManager({ storage, lock });
|
|
308
|
+
// Save some results
|
|
309
|
+
await checkpoint.saveIncremental(createTestResult("run1"));
|
|
310
|
+
await checkpoint.saveIncremental(createTestResult("run2"));
|
|
311
|
+
await checkpoint.saveIncremental(createTestResult("run3"));
|
|
312
|
+
// Reload
|
|
313
|
+
await checkpoint.load();
|
|
314
|
+
// Filter remaining
|
|
315
|
+
const allRuns = [
|
|
316
|
+
{ runId: "run1", sutId: "sut", caseId: "case", repetition: 0, seed: 1 },
|
|
317
|
+
{ runId: "run2", sutId: "sut", caseId: "case", repetition: 0, seed: 2 },
|
|
318
|
+
{ runId: "run3", sutId: "sut", caseId: "case", repetition: 0, seed: 3 },
|
|
319
|
+
{ runId: "run4", sutId: "sut", caseId: "case", repetition: 0, seed: 4 },
|
|
320
|
+
{ runId: "run5", sutId: "sut", caseId: "case", repetition: 0, seed: 5 },
|
|
321
|
+
];
|
|
322
|
+
const remaining = checkpoint.filterRemaining(allRuns);
|
|
323
|
+
assert.strictEqual(remaining.length, 2);
|
|
324
|
+
assert.deepStrictEqual(remaining.map((r) => r.runId), ["run4", "run5"]);
|
|
325
|
+
// Clean up
|
|
326
|
+
cleanupCheckpointFile(checkpointPath);
|
|
327
|
+
});
|
|
328
|
+
});
|
|
329
|
+
});
|
|
330
|
+
//# sourceMappingURL=checkpoint-manager.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-manager.integration.test.js","sourceRoot":"","sources":["../../../src/executor/__tests__/checkpoint-manager.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-manager.unit.test.d.ts","sourceRoot":"","sources":["../../../src/executor/__tests__/checkpoint-manager.unit.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|