History

Extract benchmark follow-up pass parsing into perf config

Cursor Agent committed 8 months ago

Commit 2afff241 parent 142ce0f3 files · +62 −12Browse files

Unified · Split

3 files
  1. apps/desktop/src/desktopPerfAutomation.ts +6 −11
  2. apps/desktop/src/perfConfig.test.ts +43 −1
  3. apps/desktop/src/perfConfig.ts +13 −0
apps/desktop/src/desktopPerfAutomation.ts+6−11
@@ -4,7 +4,7 @@ import os from "node:os"; · 3 unmodified lines
44 import path from "node:path";
55
66 import { BrowserWindow, contentTracing, type WebContents } from "electron";
7−import { shouldRunTerminalPerfInteractions } from "./perfConfig";
7+import { resolveBenchmarkFollowUpPassCount, shouldRunTerminalPerfInteractions } from "./perfConfig";
88
99 const PERF_AUTOMATION_ENABLED = process.env.T3CODE_DESKTOP_PERF_AUTOMATION === "1";
1010 const PERF_TRACE_OUT_PATH = process.env.T3CODE_DESKTOP_PERF_TRACE_OUT?.trim() ?? "";
@@ -14,16 +14,11 @@ const RUN_TERMINAL_INTERACTIONS = shouldRunTerminalPerfInteractions({ · 3 unmodified lines
1414 T3CODE_DESKTOP_PERF_RUN_TERMINAL: process.env.T3CODE_DESKTOP_PERF_RUN_TERMINAL,
1515 CI: process.env.CI,
1616 });
17−const BENCHMARK_FOLLOW_UP_PASS_COUNT = (() => {
18− const raw = process.env.T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES?.trim();
19− if (raw && raw.length > 0) {
20− const parsed = Number.parseInt(raw, 10);
21− if (Number.isFinite(parsed) && parsed >= 0) {
22− return parsed;
23− }
24− }
25− return process.env.CI === "true" ? 0 : 1;
26−})();
17+const BENCHMARK_FOLLOW_UP_PASS_COUNT = resolveBenchmarkFollowUpPassCount({
18+ T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES:
19+ process.env.T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES,
20+ CI: process.env.CI,
21+});
2722
2823 function delay(ms: number): Promise<void> {
2924 return new Promise((resolve) => setTimeout(resolve, ms));
apps/desktop/src/perfConfig.test.ts+43−1
@@ -1,6 +1,6 @@
11 import { describe, expect, it } from "vitest";
22
3−import { shouldRunTerminalPerfInteractions } from "./perfConfig";
3+import { resolveBenchmarkFollowUpPassCount, shouldRunTerminalPerfInteractions } from "./perfConfig";
44
55 describe("shouldRunTerminalPerfInteractions", () => {
66 it("defaults to enabled outside CI when env is unset", () => {
@@ -130,3 +130,45 @@ describe("shouldRunTerminalPerfInteractions", () => { · 123 unmodified lines
130130 ).toBe(true);
131131 });
132132 });
133+
134+describe("resolveBenchmarkFollowUpPassCount", () => {
135+ it("defaults to 1 outside CI", () => {
136+ expect(resolveBenchmarkFollowUpPassCount({ CI: "false" })).toBe(1);
137+ expect(resolveBenchmarkFollowUpPassCount({ CI: "0" })).toBe(1);
138+ });
139+
140+ it("defaults to 0 in CI", () => {
141+ expect(resolveBenchmarkFollowUpPassCount({ CI: "true" })).toBe(0);
142+ expect(resolveBenchmarkFollowUpPassCount({ CI: "on" })).toBe(0);
143+ });
144+
145+ it("accepts explicit non-negative integer overrides", () => {
146+ expect(
147+ resolveBenchmarkFollowUpPassCount({
148+ T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES: "2",
149+ CI: "true",
150+ }),
151+ ).toBe(2);
152+ expect(
153+ resolveBenchmarkFollowUpPassCount({
154+ T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES: " 0 ",
155+ CI: "false",
156+ }),
157+ ).toBe(0);
158+ });
159+
160+ it("ignores malformed overrides and falls back to CI default", () => {
161+ expect(
162+ resolveBenchmarkFollowUpPassCount({
163+ T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES: "1abc",
164+ CI: "true",
165+ }),
166+ ).toBe(0);
167+ expect(
168+ resolveBenchmarkFollowUpPassCount({
169+ T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES: "-1",
170+ CI: "false",
171+ }),
172+ ).toBe(1);
173+ });
174+});
apps/desktop/src/perfConfig.ts+13−0
@@ -3,6 +3,11 @@ type PerfToggleEnv = { · 2 unmodified lines
33 CI?: string | undefined;
44 };
55
6+type PerfBenchmarkEnv = {
7+ T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES?: string | undefined;
8+ CI?: string | undefined;
9+};
10+
611 const TRUE_VALUES = new Set(["1", "true", "yes", "on"]);
712 const FALSE_VALUES = new Set(["0", "false", "no", "off"]);
813
@@ -34,3 +39,11 @@ export function shouldRunTerminalPerfInteractions(env: PerfToggleEnv): boolean { · 25 unmodified lines
3439 if (toggleOverride !== null) return toggleOverride;
3540 return !isCiEnvironment(env.CI);
3641 }
42+
43+export function resolveBenchmarkFollowUpPassCount(env: PerfBenchmarkEnv): number {
44+ const raw = env.T3CODE_DESKTOP_PERF_BENCHMARK_FOLLOW_UP_PASSES?.trim();
45+ if (raw && /^\d+$/.test(raw)) {
46+ return Number.parseInt(raw, 10);
47+ }
48+ return isCiEnvironment(env.CI) ? 0 : 1;
49+}