modestbench 0.2.0 → 0.3.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/CHANGELOG.md +20 -0
- package/README.md +131 -34
- package/dist/cli/commands/analyze.cjs +60 -0
- package/dist/cli/commands/analyze.cjs.map +1 -0
- package/dist/cli/commands/analyze.d.cts +35 -0
- package/dist/cli/commands/analyze.d.cts.map +1 -0
- package/dist/cli/commands/analyze.d.ts +35 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +56 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/baseline.cjs +404 -0
- package/dist/cli/commands/baseline.cjs.map +1 -0
- package/dist/cli/commands/baseline.d.cts +72 -0
- package/dist/cli/commands/baseline.d.cts.map +1 -0
- package/dist/cli/commands/baseline.d.ts +72 -0
- package/dist/cli/commands/baseline.d.ts.map +1 -0
- package/dist/cli/commands/baseline.js +396 -0
- package/dist/cli/commands/baseline.js.map +1 -0
- package/dist/cli/commands/history.d.cts +1 -1
- package/dist/cli/commands/history.d.cts.map +1 -1
- package/dist/cli/commands/history.d.ts +1 -1
- package/dist/cli/commands/history.d.ts.map +1 -1
- package/dist/cli/commands/init.cjs +88 -155
- package/dist/cli/commands/init.cjs.map +1 -1
- package/dist/cli/commands/init.d.cts +4 -4
- package/dist/cli/commands/init.d.cts.map +1 -1
- package/dist/cli/commands/init.d.ts +4 -4
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +88 -155
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +132 -114
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.d.cts +16 -3
- package/dist/cli/commands/run.d.cts.map +1 -1
- package/dist/cli/commands/run.d.ts +16 -3
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +131 -80
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.cjs +583 -394
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +4 -16
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts +4 -16
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +575 -386
- package/dist/cli/index.js.map +1 -1
- package/dist/config/budget-schema.cjs +172 -0
- package/dist/config/budget-schema.cjs.map +1 -0
- package/dist/config/budget-schema.d.cts +59 -0
- package/dist/config/budget-schema.d.cts.map +1 -0
- package/dist/config/budget-schema.d.ts +59 -0
- package/dist/config/budget-schema.d.ts.map +1 -0
- package/dist/config/budget-schema.js +166 -0
- package/dist/config/budget-schema.js.map +1 -0
- package/dist/config/schema.cjs +182 -2
- package/dist/config/schema.cjs.map +1 -1
- package/dist/config/schema.d.cts +122 -3
- package/dist/config/schema.d.cts.map +1 -1
- package/dist/config/schema.d.ts +122 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +180 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/constants.cjs +45 -2
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +41 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +41 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +44 -1
- package/dist/constants.js.map +1 -1
- package/dist/core/engine.cjs +103 -21
- package/dist/core/engine.cjs.map +1 -1
- package/dist/core/engine.d.cts +7 -7
- package/dist/core/engine.d.cts.map +1 -1
- package/dist/core/engine.d.ts +7 -7
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +104 -22
- package/dist/core/engine.js.map +1 -1
- package/dist/core/output-path-resolver.cjs +8 -1
- package/dist/core/output-path-resolver.cjs.map +1 -1
- package/dist/core/output-path-resolver.d.cts.map +1 -1
- package/dist/core/output-path-resolver.d.ts.map +1 -1
- package/dist/core/output-path-resolver.js +9 -2
- package/dist/core/output-path-resolver.js.map +1 -1
- package/dist/errors/base.cjs +12 -3
- package/dist/errors/base.cjs.map +1 -1
- package/dist/errors/base.d.cts +7 -0
- package/dist/errors/base.d.cts.map +1 -1
- package/dist/errors/base.d.ts +7 -0
- package/dist/errors/base.d.ts.map +1 -1
- package/dist/errors/base.js +10 -2
- package/dist/errors/base.js.map +1 -1
- package/dist/errors/budget.cjs +37 -0
- package/dist/errors/budget.cjs.map +1 -0
- package/dist/errors/budget.d.cts +31 -0
- package/dist/errors/budget.d.cts.map +1 -0
- package/dist/errors/budget.d.ts +31 -0
- package/dist/errors/budget.d.ts.map +1 -0
- package/dist/errors/budget.js +33 -0
- package/dist/errors/budget.js.map +1 -0
- package/dist/errors/index.cjs +4 -1
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +1 -0
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/index.cjs +13 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/reporters/csv.cjs +37 -17
- package/dist/reporters/csv.cjs.map +1 -1
- package/dist/reporters/csv.d.cts +3 -6
- package/dist/reporters/csv.d.cts.map +1 -1
- package/dist/reporters/csv.d.ts +3 -6
- package/dist/reporters/csv.d.ts.map +1 -1
- package/dist/reporters/csv.js +37 -17
- package/dist/reporters/csv.js.map +1 -1
- package/dist/reporters/human.cjs +66 -40
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts +14 -13
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts +14 -13
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +66 -40
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/json.cjs +23 -48
- package/dist/reporters/json.cjs.map +1 -1
- package/dist/reporters/json.d.cts +2 -28
- package/dist/reporters/json.d.cts.map +1 -1
- package/dist/reporters/json.d.ts +2 -28
- package/dist/reporters/json.d.ts.map +1 -1
- package/dist/reporters/json.js +25 -50
- package/dist/reporters/json.js.map +1 -1
- package/dist/reporters/profile-human.cjs +149 -0
- package/dist/reporters/profile-human.cjs.map +1 -0
- package/dist/reporters/profile-human.d.cts +44 -0
- package/dist/reporters/profile-human.d.cts.map +1 -0
- package/dist/reporters/profile-human.d.ts +44 -0
- package/dist/reporters/profile-human.d.ts.map +1 -0
- package/dist/reporters/profile-human.js +142 -0
- package/dist/reporters/profile-human.js.map +1 -0
- package/dist/reporters/simple.cjs +64 -44
- package/dist/reporters/simple.cjs.map +1 -1
- package/dist/reporters/simple.d.cts +14 -14
- package/dist/reporters/simple.d.cts.map +1 -1
- package/dist/reporters/simple.d.ts +14 -14
- package/dist/reporters/simple.d.ts.map +1 -1
- package/dist/reporters/simple.js +64 -44
- package/dist/reporters/simple.js.map +1 -1
- package/dist/schema/modestbench-config.schema.json +153 -0
- package/dist/services/baseline-storage.cjs +151 -0
- package/dist/services/baseline-storage.cjs.map +1 -0
- package/dist/services/baseline-storage.d.cts +55 -0
- package/dist/services/baseline-storage.d.cts.map +1 -0
- package/dist/services/baseline-storage.d.ts +55 -0
- package/dist/services/baseline-storage.d.ts.map +1 -0
- package/dist/services/baseline-storage.js +147 -0
- package/dist/services/baseline-storage.js.map +1 -0
- package/dist/services/budget-evaluator.cjs +146 -0
- package/dist/services/budget-evaluator.cjs.map +1 -0
- package/dist/services/budget-evaluator.d.cts +29 -0
- package/dist/services/budget-evaluator.d.cts.map +1 -0
- package/dist/services/budget-evaluator.d.ts +29 -0
- package/dist/services/budget-evaluator.d.ts.map +1 -0
- package/dist/services/budget-evaluator.js +142 -0
- package/dist/services/budget-evaluator.js.map +1 -0
- package/dist/services/config-manager.cjs +23 -9
- package/dist/services/config-manager.cjs.map +1 -1
- package/dist/services/config-manager.d.cts +6 -1
- package/dist/services/config-manager.d.cts.map +1 -1
- package/dist/services/config-manager.d.ts +6 -1
- package/dist/services/config-manager.d.ts.map +1 -1
- package/dist/services/config-manager.js +23 -9
- package/dist/services/config-manager.js.map +1 -1
- package/dist/services/file-loader.cjs +3 -6
- package/dist/services/file-loader.cjs.map +1 -1
- package/dist/services/file-loader.d.cts.map +1 -1
- package/dist/services/file-loader.d.ts.map +1 -1
- package/dist/services/file-loader.js +3 -6
- package/dist/services/file-loader.js.map +1 -1
- package/dist/services/profiler/profile-filter.cjs +113 -0
- package/dist/services/profiler/profile-filter.cjs.map +1 -0
- package/dist/services/profiler/profile-filter.d.cts +20 -0
- package/dist/services/profiler/profile-filter.d.cts.map +1 -0
- package/dist/services/profiler/profile-filter.d.ts +20 -0
- package/dist/services/profiler/profile-filter.d.ts.map +1 -0
- package/dist/services/profiler/profile-filter.js +109 -0
- package/dist/services/profiler/profile-filter.js.map +1 -0
- package/dist/services/profiler/profile-parser.cjs +139 -0
- package/dist/services/profiler/profile-parser.cjs.map +1 -0
- package/dist/services/profiler/profile-parser.d.cts +18 -0
- package/dist/services/profiler/profile-parser.d.cts.map +1 -0
- package/dist/services/profiler/profile-parser.d.ts +18 -0
- package/dist/services/profiler/profile-parser.d.ts.map +1 -0
- package/dist/services/profiler/profile-parser.js +132 -0
- package/dist/services/profiler/profile-parser.js.map +1 -0
- package/dist/services/profiler/profile-runner.cjs +90 -0
- package/dist/services/profiler/profile-runner.cjs.map +1 -0
- package/dist/services/profiler/profile-runner.d.cts +29 -0
- package/dist/services/profiler/profile-runner.d.cts.map +1 -0
- package/dist/services/profiler/profile-runner.d.ts +29 -0
- package/dist/services/profiler/profile-runner.d.ts.map +1 -0
- package/dist/services/profiler/profile-runner.js +86 -0
- package/dist/services/profiler/profile-runner.js.map +1 -0
- package/dist/services/reporter-registry.cjs +18 -24
- package/dist/services/reporter-registry.cjs.map +1 -1
- package/dist/services/reporter-registry.d.cts +18 -40
- package/dist/services/reporter-registry.d.cts.map +1 -1
- package/dist/services/reporter-registry.d.ts +18 -40
- package/dist/services/reporter-registry.d.ts.map +1 -1
- package/dist/services/reporter-registry.js +18 -24
- package/dist/services/reporter-registry.js.map +1 -1
- package/dist/types/budgets.cjs +8 -0
- package/dist/types/budgets.cjs.map +1 -0
- package/dist/types/budgets.d.cts +149 -0
- package/dist/types/budgets.d.cts.map +1 -0
- package/dist/types/budgets.d.ts +149 -0
- package/dist/types/budgets.d.ts.map +1 -0
- package/dist/types/budgets.js +7 -0
- package/dist/types/budgets.js.map +1 -0
- package/dist/types/cli.cjs +2 -11
- package/dist/types/cli.cjs.map +1 -1
- package/dist/types/cli.d.cts +3 -227
- package/dist/types/cli.d.cts.map +1 -1
- package/dist/types/cli.d.ts +3 -227
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/cli.js +2 -11
- package/dist/types/cli.js.map +1 -1
- package/dist/types/core.cjs +6 -1
- package/dist/types/core.cjs.map +1 -1
- package/dist/types/core.d.cts +13 -2
- package/dist/types/core.d.cts.map +1 -1
- package/dist/types/core.d.ts +13 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +2 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/index.cjs +5 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +2 -0
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/interfaces.d.cts +15 -8
- package/dist/types/interfaces.d.cts.map +1 -1
- package/dist/types/interfaces.d.ts +15 -8
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/types/profiler.cjs +11 -0
- package/dist/types/profiler.cjs.map +1 -0
- package/dist/types/profiler.d.cts +100 -0
- package/dist/types/profiler.d.cts.map +1 -0
- package/dist/types/profiler.d.ts +100 -0
- package/dist/types/profiler.d.ts.map +1 -0
- package/dist/types/profiler.js +10 -0
- package/dist/types/profiler.js.map +1 -0
- package/dist/types/utility.cjs.map +1 -1
- package/dist/types/utility.d.cts +0 -8
- package/dist/types/utility.d.cts.map +1 -1
- package/dist/types/utility.d.ts +0 -8
- package/dist/types/utility.d.ts.map +1 -1
- package/dist/types/utility.js.map +1 -1
- package/dist/utils/identifiers.cjs +32 -0
- package/dist/utils/identifiers.cjs.map +1 -0
- package/dist/utils/identifiers.d.cts +32 -0
- package/dist/utils/identifiers.d.cts.map +1 -0
- package/dist/utils/identifiers.d.ts +32 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/identifiers.js +27 -0
- package/dist/utils/identifiers.js.map +1 -0
- package/dist/utils/package.cjs +40 -0
- package/dist/utils/package.cjs.map +1 -0
- package/dist/utils/package.d.cts +15 -0
- package/dist/utils/package.d.cts.map +1 -0
- package/dist/utils/package.d.ts +15 -0
- package/dist/utils/package.d.ts.map +1 -0
- package/dist/utils/package.js +33 -0
- package/dist/utils/package.js.map +1 -0
- package/dist/utils/type-guards.cjs +48 -0
- package/dist/utils/type-guards.cjs.map +1 -0
- package/dist/utils/type-guards.d.cts +22 -0
- package/dist/utils/type-guards.d.cts.map +1 -0
- package/dist/utils/type-guards.d.ts +22 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +43 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +10 -10
- package/src/cli/commands/analyze.ts +101 -0
- package/src/cli/commands/baseline.ts +577 -0
- package/src/cli/commands/history.ts +1 -1
- package/src/cli/commands/init.ts +105 -183
- package/src/cli/commands/run.ts +167 -98
- package/src/cli/index.ts +425 -183
- package/src/config/budget-schema.ts +189 -0
- package/src/config/schema.ts +260 -1
- package/src/constants.ts +53 -1
- package/src/core/engine.ts +151 -20
- package/src/core/output-path-resolver.ts +10 -2
- package/src/errors/base.ts +11 -2
- package/src/errors/budget.ts +38 -0
- package/src/errors/index.ts +3 -0
- package/src/index.ts +9 -0
- package/src/reporters/csv.ts +54 -25
- package/src/reporters/human.ts +88 -47
- package/src/reporters/json.ts +26 -71
- package/src/reporters/profile-human.ts +204 -0
- package/src/reporters/simple.ts +84 -53
- package/src/services/baseline-storage.ts +199 -0
- package/src/services/budget-evaluator.ts +182 -0
- package/src/services/config-manager.ts +23 -8
- package/src/services/file-loader.ts +3 -6
- package/src/services/profiler/profile-filter.ts +143 -0
- package/src/services/profiler/profile-parser.ts +194 -0
- package/src/services/profiler/profile-runner.ts +121 -0
- package/src/services/reporter-registry.ts +46 -81
- package/src/types/budgets.ts +180 -0
- package/src/types/cli.ts +5 -238
- package/src/types/core.ts +50 -10
- package/src/types/index.ts +5 -0
- package/src/types/interfaces.ts +16 -6
- package/src/types/profiler.ts +132 -0
- package/src/types/utility.ts +0 -10
- package/src/utils/identifiers.ts +58 -0
- package/src/utils/package.ts +35 -0
- package/src/utils/type-guards.ts +51 -0
package/dist/core/engine.cjs
CHANGED
|
@@ -42,7 +42,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
43
|
exports.ModestBenchEngine = void 0;
|
|
44
44
|
const node_crypto_1 = require("node:crypto");
|
|
45
|
+
const node_path_1 = require("node:path");
|
|
45
46
|
const index_js_1 = require("../errors/index.cjs");
|
|
47
|
+
const baseline_storage_js_1 = require("../services/baseline-storage.cjs");
|
|
48
|
+
const budget_evaluator_js_1 = require("../services/budget-evaluator.cjs");
|
|
49
|
+
const index_js_2 = require("../types/index.cjs");
|
|
46
50
|
/**
|
|
47
51
|
* Abstract benchmark execution engine with dependency injection
|
|
48
52
|
*
|
|
@@ -63,6 +67,19 @@ class ModestBenchEngine {
|
|
|
63
67
|
this.historyStorage = dependencies.historyStorage;
|
|
64
68
|
this.progressManager = dependencies.progressManager;
|
|
65
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Generate a unique run ID
|
|
72
|
+
*
|
|
73
|
+
* Uses crypto.randomBytes for cryptographically random 7-character IDs.
|
|
74
|
+
* Format: 7 lowercase alphanumeric characters (e.g., "k3m9x2p")
|
|
75
|
+
*/
|
|
76
|
+
static generateRunId() {
|
|
77
|
+
// Generate random bytes, convert to hex, then to base36, take first 7 chars
|
|
78
|
+
const hex = (0, node_crypto_1.randomBytes)(4).toString('hex');
|
|
79
|
+
const num = parseInt(hex, 16);
|
|
80
|
+
const id = num.toString(36).padStart(7, '0').substring(0, 7);
|
|
81
|
+
return (0, index_js_2.createRunId)(id);
|
|
82
|
+
}
|
|
66
83
|
/**
|
|
67
84
|
* Discover benchmark files matching the pattern(s)
|
|
68
85
|
*/
|
|
@@ -100,7 +117,7 @@ class ModestBenchEngine {
|
|
|
100
117
|
throw new index_js_1.SchemaValidationError(`Validation failed: ${validationResult.errors.map((e) => e.message).join(', ')}`);
|
|
101
118
|
}
|
|
102
119
|
// 4. Initialize progress tracking
|
|
103
|
-
const runId =
|
|
120
|
+
const runId = ModestBenchEngine.generateRunId();
|
|
104
121
|
// Pre-calculate total tasks for progress tracking
|
|
105
122
|
let totalTasks = 0;
|
|
106
123
|
let totalSuites = 0;
|
|
@@ -157,9 +174,9 @@ class ModestBenchEngine {
|
|
|
157
174
|
this.progressManager.initialize(initialRun);
|
|
158
175
|
// Register progress callbacks with reporters that support them
|
|
159
176
|
for (const reporter of reporters) {
|
|
160
|
-
if (
|
|
177
|
+
if (reporter.onProgress) {
|
|
161
178
|
this.progressManager.onProgress((state) => {
|
|
162
|
-
void reporter.onProgress(state);
|
|
179
|
+
void reporter.onProgress?.(state);
|
|
163
180
|
});
|
|
164
181
|
}
|
|
165
182
|
}
|
|
@@ -169,9 +186,12 @@ class ModestBenchEngine {
|
|
|
169
186
|
const fileResults = [];
|
|
170
187
|
for (const filePath of files) {
|
|
171
188
|
try {
|
|
172
|
-
//
|
|
173
|
-
|
|
174
|
-
const
|
|
189
|
+
// Normalize file path to be relative to cwd
|
|
190
|
+
const cwd = config.cwd || process.cwd();
|
|
191
|
+
const relativePath = (0, node_path_1.relative)(cwd, filePath);
|
|
192
|
+
// Call reporter onFileStart with relative path
|
|
193
|
+
await this.callReporters(reporters, 'onFileStart', relativePath);
|
|
194
|
+
const fileResult = await this.executeBenchmarkFile(filePath, mergedConfig, cwd, reporters, signal);
|
|
175
195
|
fileResults.push(fileResult);
|
|
176
196
|
// Call reporter onFileEnd
|
|
177
197
|
await this.callReporters(reporters, 'onFileEnd', fileResult);
|
|
@@ -180,6 +200,13 @@ class ModestBenchEngine {
|
|
|
180
200
|
currentFile: filePath,
|
|
181
201
|
filesCompleted: fileResults.length,
|
|
182
202
|
});
|
|
203
|
+
// Check for bail: stop execution if any task failed
|
|
204
|
+
if (mergedConfig.bail) {
|
|
205
|
+
const hasFailedTask = fileResult.suites.some((suite) => suite.tasks.some((task) => task.error));
|
|
206
|
+
if (hasFailedTask) {
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
183
210
|
}
|
|
184
211
|
catch (error) {
|
|
185
212
|
const fileError = error instanceof Error ? error : new Error(String(error));
|
|
@@ -198,6 +225,10 @@ class ModestBenchEngine {
|
|
|
198
225
|
fileResults.push(errorResult);
|
|
199
226
|
// Call reporter onFileEnd for error case
|
|
200
227
|
await this.callReporters(reporters, 'onFileEnd', errorResult);
|
|
228
|
+
// Check bail flag for file-level errors
|
|
229
|
+
if (mergedConfig.bail) {
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
201
232
|
}
|
|
202
233
|
}
|
|
203
234
|
// Calculate summary statistics
|
|
@@ -223,9 +254,68 @@ class ModestBenchEngine {
|
|
|
223
254
|
}
|
|
224
255
|
}
|
|
225
256
|
const overallMean = totalOperations > 0 ? totalTime / totalOperations : 0;
|
|
257
|
+
// Evaluate budgets if configured
|
|
258
|
+
let budgetSummary;
|
|
259
|
+
if (config.budgets && Object.keys(config.budgets).length > 0) {
|
|
260
|
+
const evaluator = new budget_evaluator_js_1.BudgetEvaluator();
|
|
261
|
+
const baselineStorage = new baseline_storage_js_1.BaselineStorageService(process.cwd());
|
|
262
|
+
// Collect task results
|
|
263
|
+
const taskResults = new Map();
|
|
264
|
+
for (const file of fileResults) {
|
|
265
|
+
for (const suite of file.suites) {
|
|
266
|
+
for (const task of suite.tasks) {
|
|
267
|
+
if (!task.error) {
|
|
268
|
+
// file.filePath is already relative to cwd
|
|
269
|
+
const taskId = (0, index_js_2.createTaskId)(file.filePath, suite.name, task.name);
|
|
270
|
+
taskResults.set(taskId, task);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Load baseline data if needed for relative budgets
|
|
276
|
+
let baselineData;
|
|
277
|
+
// Check if any budgets use relative thresholds
|
|
278
|
+
const hasRelativeBudgets = Object.values(config.budgets).some((budget) => budget.relative);
|
|
279
|
+
if (hasRelativeBudgets) {
|
|
280
|
+
const baselineName = config.baseline || (await baselineStorage.getDefault());
|
|
281
|
+
if (baselineName) {
|
|
282
|
+
const baseline = await baselineStorage.getBaseline(baselineName);
|
|
283
|
+
if (baseline) {
|
|
284
|
+
// Cast keys to TaskId since they come from validated baseline storage
|
|
285
|
+
baselineData = new Map(Object.entries(baseline.summary));
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
console.warn(`Warning: Baseline "${baselineName}" not found. Relative budgets will be skipped.`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
console.warn('Warning: Relative budgets configured but no baseline specified. Relative budgets will be skipped.');
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
// Evaluate budgets
|
|
296
|
+
budgetSummary = evaluator.evaluateRun(config.budgets, taskResults, baselineData);
|
|
297
|
+
// Notify reporters of budget results
|
|
298
|
+
for (const reporter of reporters) {
|
|
299
|
+
if (reporter.onBudgetResult) {
|
|
300
|
+
await reporter.onBudgetResult(budgetSummary);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
// Handle budget failures based on budgetMode
|
|
304
|
+
if (budgetSummary.failed > 0) {
|
|
305
|
+
const mode = config.budgetMode || 'fail';
|
|
306
|
+
if (mode === 'fail') {
|
|
307
|
+
throw new index_js_1.BudgetExceededError(`${budgetSummary.failed} of ${budgetSummary.total} budget(s) exceeded`, budgetSummary);
|
|
308
|
+
}
|
|
309
|
+
else if (mode === 'warn') {
|
|
310
|
+
console.warn(`Warning: ${budgetSummary.failed} of ${budgetSummary.total} budget(s) exceeded`);
|
|
311
|
+
}
|
|
312
|
+
// mode === 'report': just include in output, don't fail
|
|
313
|
+
}
|
|
314
|
+
}
|
|
226
315
|
const endTime = new Date();
|
|
227
316
|
const finalRun = {
|
|
228
317
|
...initialRun,
|
|
318
|
+
budgetSummary,
|
|
229
319
|
duration: endTime.getTime() - startTime.getTime(),
|
|
230
320
|
endTime,
|
|
231
321
|
files: fileResults,
|
|
@@ -357,7 +447,7 @@ class ModestBenchEngine {
|
|
|
357
447
|
/**
|
|
358
448
|
* Execute a single benchmark file and return its results
|
|
359
449
|
*/
|
|
360
|
-
async executeBenchmarkFile(filePath, config, reporters = [], signal) {
|
|
450
|
+
async executeBenchmarkFile(filePath, config, cwd, reporters = [], signal) {
|
|
361
451
|
const startTime = new Date();
|
|
362
452
|
try {
|
|
363
453
|
// Load the benchmark file using the file loader
|
|
@@ -384,11 +474,13 @@ class ModestBenchEngine {
|
|
|
384
474
|
}
|
|
385
475
|
}
|
|
386
476
|
const endTime = new Date();
|
|
477
|
+
// Normalize file path to be relative to cwd
|
|
478
|
+
const relativePath = (0, node_path_1.relative)(cwd, filePath);
|
|
387
479
|
return {
|
|
388
480
|
config: benchmarkDef.config,
|
|
389
481
|
duration: endTime.getTime() - startTime.getTime(),
|
|
390
482
|
endTime,
|
|
391
|
-
filePath,
|
|
483
|
+
filePath: relativePath,
|
|
392
484
|
startTime,
|
|
393
485
|
suites: suiteResults,
|
|
394
486
|
};
|
|
@@ -396,11 +488,13 @@ class ModestBenchEngine {
|
|
|
396
488
|
catch (error) {
|
|
397
489
|
const endTime = new Date();
|
|
398
490
|
const executionError = error instanceof Error ? error : new Error(String(error));
|
|
491
|
+
// Normalize file path to be relative to cwd
|
|
492
|
+
const relativePath = (0, node_path_1.relative)(cwd, filePath);
|
|
399
493
|
return {
|
|
400
494
|
duration: endTime.getTime() - startTime.getTime(),
|
|
401
495
|
endTime,
|
|
402
496
|
error: executionError,
|
|
403
|
-
filePath,
|
|
497
|
+
filePath: relativePath,
|
|
404
498
|
startTime,
|
|
405
499
|
suites: [],
|
|
406
500
|
};
|
|
@@ -504,18 +598,6 @@ class ModestBenchEngine {
|
|
|
504
598
|
};
|
|
505
599
|
}
|
|
506
600
|
}
|
|
507
|
-
/**
|
|
508
|
-
* Generate a unique run ID
|
|
509
|
-
*
|
|
510
|
-
* Uses crypto.randomBytes for cryptographically random 7-character IDs.
|
|
511
|
-
* Format: 7 lowercase alphanumeric characters (e.g., "k3m9x2p")
|
|
512
|
-
*/
|
|
513
|
-
generateRunId() {
|
|
514
|
-
// Generate random bytes, convert to hex, then to base36, take first 7 chars
|
|
515
|
-
const hex = (0, node_crypto_1.randomBytes)(4).toString('hex');
|
|
516
|
-
const num = parseInt(hex, 16);
|
|
517
|
-
return num.toString(36).padStart(7, '0').substring(0, 7);
|
|
518
|
-
}
|
|
519
601
|
/**
|
|
520
602
|
* Get CI/CD information if available
|
|
521
603
|
*/
|
package/dist/core/engine.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/core/engine.d.cts
CHANGED
|
@@ -30,6 +30,13 @@ export declare abstract class ModestBenchEngine implements BenchmarkEngine {
|
|
|
30
30
|
readonly progressManager: ProgressManager;
|
|
31
31
|
readonly reporterRegistry: ReporterRegistry;
|
|
32
32
|
constructor(dependencies: EngineDependencies);
|
|
33
|
+
/**
|
|
34
|
+
* Generate a unique run ID
|
|
35
|
+
*
|
|
36
|
+
* Uses crypto.randomBytes for cryptographically random 7-character IDs.
|
|
37
|
+
* Format: 7 lowercase alphanumeric characters (e.g., "k3m9x2p")
|
|
38
|
+
*/
|
|
39
|
+
private static generateRunId;
|
|
33
40
|
/**
|
|
34
41
|
* Discover benchmark files matching the pattern(s)
|
|
35
42
|
*/
|
|
@@ -92,13 +99,6 @@ export declare abstract class ModestBenchEngine implements BenchmarkEngine {
|
|
|
92
99
|
* Execute a single benchmark suite and return its results
|
|
93
100
|
*/
|
|
94
101
|
private executeBenchmarkSuite;
|
|
95
|
-
/**
|
|
96
|
-
* Generate a unique run ID
|
|
97
|
-
*
|
|
98
|
-
* Uses crypto.randomBytes for cryptographically random 7-character IDs.
|
|
99
|
-
* Format: 7 lowercase alphanumeric characters (e.g., "k3m9x2p")
|
|
100
|
-
*/
|
|
101
|
-
private generateRunId;
|
|
102
102
|
/**
|
|
103
103
|
* Get CI/CD information if available
|
|
104
104
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAGV,eAAe,EACf,YAAY,EAEZ,aAAa,EAIb,oBAAoB,EAEpB,UAAU,EAGV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAIhB,UAAU,EAEV,gBAAgB,EAEjB,2BAA0B;AAc3B;;GAEG;AACH,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,8BAAsB,iBAAkB,YAAW,eAAe;IAChE,SAAgB,aAAa,EAAE,oBAAoB,CAAC;IAEpD,SAAgB,UAAU,EAAE,UAAU,CAAC;IAEvC,SAAgB,cAAc,EAAE,cAAc,CAAC;IAE/C,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,SAAgB,gBAAgB,EAAE,gBAAgB,CAAC;gBAEvC,YAAY,EAAE,kBAAkB;IAQ5C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAapB;;OAEG;IACG,OAAO,CACX,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,QAAQ,EAAO,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC;IAwWxB;;OAEG;IACH,gBAAgB,IAAI,oBAAoB;IAIxC;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIxC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxD;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuC1D;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CACrC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAEtB;;OAEG;YACW,aAAa;IAwB3B;;OAEG;YACW,oBAAoB;IAwFlC;;OAEG;YACW,qBAAqB;IA+HnC;;OAEG;YACW,SAAS;IAqCvB;;OAEG;YACW,kBAAkB;IA2BhC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAuChC;;OAEG;YACW,UAAU;IAMxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,SAAS;CAiBlB"}
|
package/dist/core/engine.d.ts
CHANGED
|
@@ -30,6 +30,13 @@ export declare abstract class ModestBenchEngine implements BenchmarkEngine {
|
|
|
30
30
|
readonly progressManager: ProgressManager;
|
|
31
31
|
readonly reporterRegistry: ReporterRegistry;
|
|
32
32
|
constructor(dependencies: EngineDependencies);
|
|
33
|
+
/**
|
|
34
|
+
* Generate a unique run ID
|
|
35
|
+
*
|
|
36
|
+
* Uses crypto.randomBytes for cryptographically random 7-character IDs.
|
|
37
|
+
* Format: 7 lowercase alphanumeric characters (e.g., "k3m9x2p")
|
|
38
|
+
*/
|
|
39
|
+
private static generateRunId;
|
|
33
40
|
/**
|
|
34
41
|
* Discover benchmark files matching the pattern(s)
|
|
35
42
|
*/
|
|
@@ -92,13 +99,6 @@ export declare abstract class ModestBenchEngine implements BenchmarkEngine {
|
|
|
92
99
|
* Execute a single benchmark suite and return its results
|
|
93
100
|
*/
|
|
94
101
|
private executeBenchmarkSuite;
|
|
95
|
-
/**
|
|
96
|
-
* Generate a unique run ID
|
|
97
|
-
*
|
|
98
|
-
* Uses crypto.randomBytes for cryptographically random 7-character IDs.
|
|
99
|
-
* Format: 7 lowercase alphanumeric characters (e.g., "k3m9x2p")
|
|
100
|
-
*/
|
|
101
|
-
private generateRunId;
|
|
102
102
|
/**
|
|
103
103
|
* Get CI/CD information if available
|
|
104
104
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAGV,eAAe,EACf,YAAY,EAEZ,aAAa,EAIb,oBAAoB,EAEpB,UAAU,EAGV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAIhB,UAAU,EAEV,gBAAgB,EAEjB,0BAA0B;AAc3B;;GAEG;AACH,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,8BAAsB,iBAAkB,YAAW,eAAe;IAChE,SAAgB,aAAa,EAAE,oBAAoB,CAAC;IAEpD,SAAgB,UAAU,EAAE,UAAU,CAAC;IAEvC,SAAgB,cAAc,EAAE,cAAc,CAAC;IAE/C,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,SAAgB,gBAAgB,EAAE,gBAAgB,CAAC;gBAEvC,YAAY,EAAE,kBAAkB;IAQ5C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAapB;;OAEG;IACG,OAAO,CACX,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,QAAQ,EAAO,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC;IAwWxB;;OAEG;IACH,gBAAgB,IAAI,oBAAoB;IAIxC;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIxC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxD;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuC1D;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CACrC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAEtB;;OAEG;YACW,aAAa;IAwB3B;;OAEG;YACW,oBAAoB;IAwFlC;;OAEG;YACW,qBAAqB;IA+HnC;;OAEG;YACW,SAAS;IAqCvB;;OAEG;YACW,kBAAkB;IA2BhC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAuChC;;OAEG;YACW,UAAU;IAMxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,SAAS;CAiBlB"}
|
package/dist/core/engine.js
CHANGED
|
@@ -6,7 +6,11 @@
|
|
|
6
6
|
* architecture.
|
|
7
7
|
*/
|
|
8
8
|
import { randomBytes } from 'node:crypto';
|
|
9
|
-
import {
|
|
9
|
+
import { relative as pathRelative } from 'node:path';
|
|
10
|
+
import { BenchmarkExecutionError, BudgetExceededError, FileDiscoveryError, SchemaValidationError, SetupError, StructureValidationError, } from "../errors/index.js";
|
|
11
|
+
import { BaselineStorageService } from "../services/baseline-storage.js";
|
|
12
|
+
import { BudgetEvaluator } from "../services/budget-evaluator.js";
|
|
13
|
+
import { createRunId, createTaskId } from "../types/index.js";
|
|
10
14
|
/**
|
|
11
15
|
* Abstract benchmark execution engine with dependency injection
|
|
12
16
|
*
|
|
@@ -27,6 +31,19 @@ export class ModestBenchEngine {
|
|
|
27
31
|
this.historyStorage = dependencies.historyStorage;
|
|
28
32
|
this.progressManager = dependencies.progressManager;
|
|
29
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Generate a unique run ID
|
|
36
|
+
*
|
|
37
|
+
* Uses crypto.randomBytes for cryptographically random 7-character IDs.
|
|
38
|
+
* Format: 7 lowercase alphanumeric characters (e.g., "k3m9x2p")
|
|
39
|
+
*/
|
|
40
|
+
static generateRunId() {
|
|
41
|
+
// Generate random bytes, convert to hex, then to base36, take first 7 chars
|
|
42
|
+
const hex = randomBytes(4).toString('hex');
|
|
43
|
+
const num = parseInt(hex, 16);
|
|
44
|
+
const id = num.toString(36).padStart(7, '0').substring(0, 7);
|
|
45
|
+
return createRunId(id);
|
|
46
|
+
}
|
|
30
47
|
/**
|
|
31
48
|
* Discover benchmark files matching the pattern(s)
|
|
32
49
|
*/
|
|
@@ -64,7 +81,7 @@ export class ModestBenchEngine {
|
|
|
64
81
|
throw new SchemaValidationError(`Validation failed: ${validationResult.errors.map((e) => e.message).join(', ')}`);
|
|
65
82
|
}
|
|
66
83
|
// 4. Initialize progress tracking
|
|
67
|
-
const runId =
|
|
84
|
+
const runId = ModestBenchEngine.generateRunId();
|
|
68
85
|
// Pre-calculate total tasks for progress tracking
|
|
69
86
|
let totalTasks = 0;
|
|
70
87
|
let totalSuites = 0;
|
|
@@ -121,9 +138,9 @@ export class ModestBenchEngine {
|
|
|
121
138
|
this.progressManager.initialize(initialRun);
|
|
122
139
|
// Register progress callbacks with reporters that support them
|
|
123
140
|
for (const reporter of reporters) {
|
|
124
|
-
if (
|
|
141
|
+
if (reporter.onProgress) {
|
|
125
142
|
this.progressManager.onProgress((state) => {
|
|
126
|
-
void reporter.onProgress(state);
|
|
143
|
+
void reporter.onProgress?.(state);
|
|
127
144
|
});
|
|
128
145
|
}
|
|
129
146
|
}
|
|
@@ -133,9 +150,12 @@ export class ModestBenchEngine {
|
|
|
133
150
|
const fileResults = [];
|
|
134
151
|
for (const filePath of files) {
|
|
135
152
|
try {
|
|
136
|
-
//
|
|
137
|
-
|
|
138
|
-
const
|
|
153
|
+
// Normalize file path to be relative to cwd
|
|
154
|
+
const cwd = config.cwd || process.cwd();
|
|
155
|
+
const relativePath = pathRelative(cwd, filePath);
|
|
156
|
+
// Call reporter onFileStart with relative path
|
|
157
|
+
await this.callReporters(reporters, 'onFileStart', relativePath);
|
|
158
|
+
const fileResult = await this.executeBenchmarkFile(filePath, mergedConfig, cwd, reporters, signal);
|
|
139
159
|
fileResults.push(fileResult);
|
|
140
160
|
// Call reporter onFileEnd
|
|
141
161
|
await this.callReporters(reporters, 'onFileEnd', fileResult);
|
|
@@ -144,6 +164,13 @@ export class ModestBenchEngine {
|
|
|
144
164
|
currentFile: filePath,
|
|
145
165
|
filesCompleted: fileResults.length,
|
|
146
166
|
});
|
|
167
|
+
// Check for bail: stop execution if any task failed
|
|
168
|
+
if (mergedConfig.bail) {
|
|
169
|
+
const hasFailedTask = fileResult.suites.some((suite) => suite.tasks.some((task) => task.error));
|
|
170
|
+
if (hasFailedTask) {
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
147
174
|
}
|
|
148
175
|
catch (error) {
|
|
149
176
|
const fileError = error instanceof Error ? error : new Error(String(error));
|
|
@@ -162,6 +189,10 @@ export class ModestBenchEngine {
|
|
|
162
189
|
fileResults.push(errorResult);
|
|
163
190
|
// Call reporter onFileEnd for error case
|
|
164
191
|
await this.callReporters(reporters, 'onFileEnd', errorResult);
|
|
192
|
+
// Check bail flag for file-level errors
|
|
193
|
+
if (mergedConfig.bail) {
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
165
196
|
}
|
|
166
197
|
}
|
|
167
198
|
// Calculate summary statistics
|
|
@@ -187,9 +218,68 @@ export class ModestBenchEngine {
|
|
|
187
218
|
}
|
|
188
219
|
}
|
|
189
220
|
const overallMean = totalOperations > 0 ? totalTime / totalOperations : 0;
|
|
221
|
+
// Evaluate budgets if configured
|
|
222
|
+
let budgetSummary;
|
|
223
|
+
if (config.budgets && Object.keys(config.budgets).length > 0) {
|
|
224
|
+
const evaluator = new BudgetEvaluator();
|
|
225
|
+
const baselineStorage = new BaselineStorageService(process.cwd());
|
|
226
|
+
// Collect task results
|
|
227
|
+
const taskResults = new Map();
|
|
228
|
+
for (const file of fileResults) {
|
|
229
|
+
for (const suite of file.suites) {
|
|
230
|
+
for (const task of suite.tasks) {
|
|
231
|
+
if (!task.error) {
|
|
232
|
+
// file.filePath is already relative to cwd
|
|
233
|
+
const taskId = createTaskId(file.filePath, suite.name, task.name);
|
|
234
|
+
taskResults.set(taskId, task);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// Load baseline data if needed for relative budgets
|
|
240
|
+
let baselineData;
|
|
241
|
+
// Check if any budgets use relative thresholds
|
|
242
|
+
const hasRelativeBudgets = Object.values(config.budgets).some((budget) => budget.relative);
|
|
243
|
+
if (hasRelativeBudgets) {
|
|
244
|
+
const baselineName = config.baseline || (await baselineStorage.getDefault());
|
|
245
|
+
if (baselineName) {
|
|
246
|
+
const baseline = await baselineStorage.getBaseline(baselineName);
|
|
247
|
+
if (baseline) {
|
|
248
|
+
// Cast keys to TaskId since they come from validated baseline storage
|
|
249
|
+
baselineData = new Map(Object.entries(baseline.summary));
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
console.warn(`Warning: Baseline "${baselineName}" not found. Relative budgets will be skipped.`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
console.warn('Warning: Relative budgets configured but no baseline specified. Relative budgets will be skipped.');
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// Evaluate budgets
|
|
260
|
+
budgetSummary = evaluator.evaluateRun(config.budgets, taskResults, baselineData);
|
|
261
|
+
// Notify reporters of budget results
|
|
262
|
+
for (const reporter of reporters) {
|
|
263
|
+
if (reporter.onBudgetResult) {
|
|
264
|
+
await reporter.onBudgetResult(budgetSummary);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// Handle budget failures based on budgetMode
|
|
268
|
+
if (budgetSummary.failed > 0) {
|
|
269
|
+
const mode = config.budgetMode || 'fail';
|
|
270
|
+
if (mode === 'fail') {
|
|
271
|
+
throw new BudgetExceededError(`${budgetSummary.failed} of ${budgetSummary.total} budget(s) exceeded`, budgetSummary);
|
|
272
|
+
}
|
|
273
|
+
else if (mode === 'warn') {
|
|
274
|
+
console.warn(`Warning: ${budgetSummary.failed} of ${budgetSummary.total} budget(s) exceeded`);
|
|
275
|
+
}
|
|
276
|
+
// mode === 'report': just include in output, don't fail
|
|
277
|
+
}
|
|
278
|
+
}
|
|
190
279
|
const endTime = new Date();
|
|
191
280
|
const finalRun = {
|
|
192
281
|
...initialRun,
|
|
282
|
+
budgetSummary,
|
|
193
283
|
duration: endTime.getTime() - startTime.getTime(),
|
|
194
284
|
endTime,
|
|
195
285
|
files: fileResults,
|
|
@@ -321,7 +411,7 @@ export class ModestBenchEngine {
|
|
|
321
411
|
/**
|
|
322
412
|
* Execute a single benchmark file and return its results
|
|
323
413
|
*/
|
|
324
|
-
async executeBenchmarkFile(filePath, config, reporters = [], signal) {
|
|
414
|
+
async executeBenchmarkFile(filePath, config, cwd, reporters = [], signal) {
|
|
325
415
|
const startTime = new Date();
|
|
326
416
|
try {
|
|
327
417
|
// Load the benchmark file using the file loader
|
|
@@ -348,11 +438,13 @@ export class ModestBenchEngine {
|
|
|
348
438
|
}
|
|
349
439
|
}
|
|
350
440
|
const endTime = new Date();
|
|
441
|
+
// Normalize file path to be relative to cwd
|
|
442
|
+
const relativePath = pathRelative(cwd, filePath);
|
|
351
443
|
return {
|
|
352
444
|
config: benchmarkDef.config,
|
|
353
445
|
duration: endTime.getTime() - startTime.getTime(),
|
|
354
446
|
endTime,
|
|
355
|
-
filePath,
|
|
447
|
+
filePath: relativePath,
|
|
356
448
|
startTime,
|
|
357
449
|
suites: suiteResults,
|
|
358
450
|
};
|
|
@@ -360,11 +452,13 @@ export class ModestBenchEngine {
|
|
|
360
452
|
catch (error) {
|
|
361
453
|
const endTime = new Date();
|
|
362
454
|
const executionError = error instanceof Error ? error : new Error(String(error));
|
|
455
|
+
// Normalize file path to be relative to cwd
|
|
456
|
+
const relativePath = pathRelative(cwd, filePath);
|
|
363
457
|
return {
|
|
364
458
|
duration: endTime.getTime() - startTime.getTime(),
|
|
365
459
|
endTime,
|
|
366
460
|
error: executionError,
|
|
367
|
-
filePath,
|
|
461
|
+
filePath: relativePath,
|
|
368
462
|
startTime,
|
|
369
463
|
suites: [],
|
|
370
464
|
};
|
|
@@ -468,18 +562,6 @@ export class ModestBenchEngine {
|
|
|
468
562
|
};
|
|
469
563
|
}
|
|
470
564
|
}
|
|
471
|
-
/**
|
|
472
|
-
* Generate a unique run ID
|
|
473
|
-
*
|
|
474
|
-
* Uses crypto.randomBytes for cryptographically random 7-character IDs.
|
|
475
|
-
* Format: 7 lowercase alphanumeric characters (e.g., "k3m9x2p")
|
|
476
|
-
*/
|
|
477
|
-
generateRunId() {
|
|
478
|
-
// Generate random bytes, convert to hex, then to base36, take first 7 chars
|
|
479
|
-
const hex = randomBytes(4).toString('hex');
|
|
480
|
-
const num = parseInt(hex, 16);
|
|
481
|
-
return num.toString(36).padStart(7, '0').substring(0, 7);
|
|
482
|
-
}
|
|
483
565
|
/**
|
|
484
566
|
* Get CI/CD information if available
|
|
485
567
|
*/
|