From 83ccd686b084a393999531b0cc0ace7a8e465cae Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Wed, 29 Jul 2026 07:52:43 -0700 Subject: [PATCH] test(terminal): preserve CPU metrics without PSI --- ...ficial-opencode-terminal-latency-measurement.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/e2e/artificial-opencode-terminal-latency-measurement.ts b/tests/e2e/artificial-opencode-terminal-latency-measurement.ts index 02790b4a226..b42be2a52e0 100644 --- a/tests/e2e/artificial-opencode-terminal-latency-measurement.ts +++ b/tests/e2e/artificial-opencode-terminal-latency-measurement.ts @@ -50,6 +50,15 @@ function median(values: number[]): number { return sorted[Math.floor(sorted.length / 2)] ?? 0 } +function readLinuxCpuPressureWaitMicros(): number | null { + try { + const match = readFileSync('/proc/pressure/cpu', 'utf8').match(/^some\s+.*\btotal=(\d+)$/m) + return match ? Number(match[1]) : null + } catch { + return null + } +} + function readHostCpuSnapshot(): HostCpuSnapshot | null { if (process.platform !== 'linux') { return null @@ -64,12 +73,9 @@ function readHostCpuSnapshot(): HostCpuSnapshot | null { if (!cpuFields || cpuFields.length < 4 || cpuFields.some((value) => !Number.isFinite(value))) { return null } - const pressureMatch = readFileSync('/proc/pressure/cpu', 'utf8').match( - /^some\s+.*\btotal=(\d+)$/m - ) return { idleTicks: cpuFields[3] + (cpuFields[4] ?? 0), - pressureWaitMicros: pressureMatch ? Number(pressureMatch[1]) : null, + pressureWaitMicros: readLinuxCpuPressureWaitMicros(), totalTicks: cpuFields.reduce((total, value) => total + value, 0) } } catch {