From 0e94526f53001fba00f26bd6a8fe174d542ad826 Mon Sep 17 00:00:00 2001 From: Tim Nunamaker Date: Sun, 18 Oct 2026 17:44:14 -0500 Subject: [PATCH 1/2] test(google_maps): widen the outcome-proof oracle's hang guard The batch-2 CI run failed 'validation oracle timed out after 30000 ms': on a 4-vCPU runner with four test files at once, the streaming pass over the 110 MiB fixture took 38.6 s (11 s alone here). The 30 s limit is a hang guard, not a speed bound, so it is now 90 s, and the test gets its own 240 s timeout so two worst-case passes fit. Assisted-by: AI Signed-off-by: Tim Nunamaker --- connectors/google_maps/validation-from-file.test.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/connectors/google_maps/validation-from-file.test.ts b/connectors/google_maps/validation-from-file.test.ts index be6b12f6c..e097c44a3 100644 --- a/connectors/google_maps/validation-from-file.test.ts +++ b/connectors/google_maps/validation-from-file.test.ts @@ -561,7 +561,9 @@ test("validateGoogleMapsTimelineArtifactFromFile: a large sparse export never ca } }); -test("outcome proof: a 110 MiB sparse Timeline export separates streaming from whole-buffer parsing at one heap limit", async () => { +test("outcome proof: a 110 MiB sparse Timeline export separates streaming from whole-buffer parsing at one heap limit", { + timeout: 240_000, +}, async () => { // Deterministic worker-thread oracle, not an in-process memory-delta // measurement (the prior in-process external-memory-delta test here was // proven decorative by mutation testing -- it passed even when reverted @@ -620,7 +622,9 @@ test("outcome proof: a 110 MiB sparse Timeline export separates streaming from w // A worker resource limit reports OOM without aborting the process or // generating a core dump for this expected negative-control outcome. const heapLimitMiB = 128; - const timeoutMs = 30_000; + // A hang guard, not a speed bound: on a 4-vCPU CI runner with four test + // files at once, the streaming pass alone took 38.6 s. + const timeoutMs = 90_000; type OracleOutcome = { error: (Error & { code?: string }) | undefined; exitCode: number; From 2a831a3767f24f703ac507c47cf121abc635c40a Mon Sep 17 00:00:00 2001 From: Tim Nunamaker Date: Sun, 18 Oct 2026 17:54:28 -0500 Subject: [PATCH 2/2] test(google_maps): state the CI timing in the hang-guard comment accurately Assisted-by: AI Signed-off-by: Tim Nunamaker --- connectors/google_maps/validation-from-file.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/connectors/google_maps/validation-from-file.test.ts b/connectors/google_maps/validation-from-file.test.ts index e097c44a3..15614ac17 100644 --- a/connectors/google_maps/validation-from-file.test.ts +++ b/connectors/google_maps/validation-from-file.test.ts @@ -623,7 +623,7 @@ test("outcome proof: a 110 MiB sparse Timeline export separates streaming from w // generating a core dump for this expected negative-control outcome. const heapLimitMiB = 128; // A hang guard, not a speed bound: on a 4-vCPU CI runner with four test - // files at once, the streaming pass alone took 38.6 s. + // files at once, the streaming pass ran past 30 s (the whole test took 38.6 s). const timeoutMs = 90_000; type OracleOutcome = { error: (Error & { code?: string }) | undefined;