Skip to content

Commit 9c2d57c

Browse files
committed
fix: respect track mode in compare-results to avoid false regression failures
1 parent 9430a12 commit 9c2d57c

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

vnext/Scripts/perf/compare-results.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ function compareEntry(head, base, threshold) {
110110
: 0;
111111

112112
const errors = [];
113+
const isTrackMode = threshold.mode === 'track';
113114

114115
const absoluteDelta = head.medianDuration - base.medianDuration;
115116
const minAbsoluteDelta =
@@ -138,8 +139,9 @@ function compareEntry(head, base, threshold) {
138139
head,
139140
base,
140141
percentChange,
141-
passed: errors.length === 0,
142+
passed: isTrackMode || errors.length === 0,
142143
errors,
144+
isTrackMode,
143145
};
144146
}
145147

@@ -219,6 +221,24 @@ function generateMarkdown(suiteComparisons, ciResults) {
219221
}
220222
}
221223

224+
// Track-mode warnings (not blocking)
225+
const trackedWarnings = suiteComparisons.flatMap(s =>
226+
s.results.filter(r => r.isTrackMode && r.errors.length > 0),
227+
);
228+
if (trackedWarnings.length > 0) {
229+
md += '### ⚠️ Tracked (not blocking)\n\n';
230+
md += '| Scenario | Baseline | Current | Change |\n';
231+
md += '|----------|----------|---------|--------|\n';
232+
for (const r of trackedWarnings) {
233+
const baseline = r.base ? `${r.base.meanDuration.toFixed(2)}ms` : 'N/A';
234+
const current = r.head ? `${r.head.meanDuration.toFixed(2)}ms` : 'N/A';
235+
const change =
236+
r.percentChange != null ? `+${r.percentChange.toFixed(1)}%` : 'N/A';
237+
md += `| ${r.name} | ${baseline} | ${current} | ${change} |\n`;
238+
}
239+
md += '\n';
240+
}
241+
222242
// Passed suites
223243
const passedSuites = suiteComparisons.filter(s => !s.hasRegressions);
224244
if (passedSuites.length > 0) {

0 commit comments

Comments
 (0)