From 97c90840c398bd7d11364577c43e3f076a14db96 Mon Sep 17 00:00:00 2001 From: "paseo-bot[bot]" <266920839+paseo-bot[bot]@users.noreply.github.com> Date: Wed, 4 Nov 2026 04:43:45 +0000 Subject: [PATCH] test(server): isolate ignore regression CPU budget from competing builds --- ...-git-service.large-ignore.integration.test.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/server/src/server/workspace-git-service.large-ignore.integration.test.ts b/packages/server/src/server/workspace-git-service.large-ignore.integration.test.ts index e55d71099f..2a5c0b0741 100644 --- a/packages/server/src/server/workspace-git-service.large-ignore.integration.test.ts +++ b/packages/server/src/server/workspace-git-service.large-ignore.integration.test.ts @@ -46,18 +46,18 @@ test("a large ignored-directory listing establishes a working-tree watcher befor const service = new WorkspaceGitServiceImpl({ logger: pino({ enabled: false }), paseoHome: process.argv[2], }); - let maxTickMs = 0; - let previous = performance.now(); + let maxTickCpuMs = 0; + let previous = process.cpuUsage(); const timer = setInterval(() => { - const now = performance.now(); - maxTickMs = Math.max(maxTickMs, now - previous); - previous = now; + const elapsed = process.cpuUsage(previous); + maxTickCpuMs = Math.max(maxTickCpuMs, (elapsed.user + elapsed.system) / 1000); + previous = process.cpuUsage(); }, 10); const watch = await service.requestWorkingTreeWatch(process.argv[1], () => {}); const active = service.getMetrics().fileObserver.activeObservationCount; await new Promise((resolve) => setTimeout(resolve, 100)); clearInterval(timer); - console.log(JSON.stringify({ active, maxTickMs })); + console.log(JSON.stringify({ active, maxTickCpuMs })); if (active !== 1) process.exit(0); watch.unsubscribe(); await service.dispose(); @@ -69,7 +69,9 @@ test("a large ignored-directory listing establishes a working-tree watcher befor ); const measurement = JSON.parse(stdout.trim()); expect(measurement.active).toBe(1); - expect(measurement.maxTickMs).toBeLessThan(2_000); + // CPU time excludes time descheduled by other parallel test/build processes. + // A linear ignored-root event filter alone burns over seven CPU seconds here. + expect(measurement.maxTickCpuMs).toBeLessThan(2_000); } finally { await rm(root, { recursive: true, force: true }); }