diff --git a/scripts/check-cli-startup-memory.mjs b/scripts/check-cli-startup-memory.mjs index 0a56146531b2..3819be7e67d6 100644 --- a/scripts/check-cli-startup-memory.mjs +++ b/scripts/check-cli-startup-memory.mjs @@ -62,11 +62,18 @@ function parseArgs(argv) { return options; } -const DEFAULT_LIMITS_MB = { - help: 100, - statusJson: 400, - gatewayStatus: 500, -}; +function resolveDefaultLimitsMb(platform = process.platform) { + return { + // Linux CI is the tight startup regression signal. macOS consistently reports + // higher RSS for the same launcher path, so keep it supported without hiding + // Linux help-path regressions. + help: platform === "darwin" ? 300 : 100, + statusJson: 400, + gatewayStatus: 500, + }; +} + +const DEFAULT_LIMITS_MB = resolveDefaultLimitsMb(); const cases = [ { @@ -334,6 +341,7 @@ function runStartupMemoryCheck(argv = process.argv.slice(2), params = {}) { export const testing = { cases, parseArgs, + resolveDefaultLimitsMb, runCase, runStartupMemoryCheck, }; diff --git a/test/scripts/check-cli-startup-memory.test.ts b/test/scripts/check-cli-startup-memory.test.ts index 67c409710b46..8e45d3118f35 100644 --- a/test/scripts/check-cli-startup-memory.test.ts +++ b/test/scripts/check-cli-startup-memory.test.ts @@ -20,6 +20,11 @@ afterEach(() => { }); describe("check-cli-startup-memory", () => { + it("keeps the Linux help startup budget tight while allowing macOS RSS overhead", () => { + expect(testing.resolveDefaultLimitsMb("linux").help).toBe(100); + expect(testing.resolveDefaultLimitsMb("darwin").help).toBeGreaterThan(100); + }); + it("does not create a temp home before argument validation succeeds", () => { if (process.platform !== "darwin" && process.platform !== "linux") { return;