From 78285d7b1e06ce89d46a10cba7630777d5de282c Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Wed, 3 Sep 2025 20:23:59 +0800 Subject: [PATCH] fix tests --- src/browser/page.zig | 15 ++++++++++++--- src/server.zig | 1 - src/testing.zig | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/browser/page.zig b/src/browser/page.zig index f8dd08d7..c9a9df0a 100644 --- a/src/browser/page.zig +++ b/src/browser/page.zig @@ -321,6 +321,7 @@ pub const Page = struct { // store http_client.active BEFORE this call and then use // it AFTER. const ms_to_next_task = try scheduler.runHighPriority(); + _ = try scheduler.runLowPriority(); if (try_catch.hasCaught()) { const msg = (try try_catch.err(self.arena)) orelse "unknown"; @@ -329,7 +330,17 @@ pub const Page = struct { } if (http_client.active == 0 and exit_when_done) { - const ms = ms_to_next_task orelse { + const ms = ms_to_next_task orelse blk: { + // TODO: when jsRunner is fully replaced with the + // htmlRunner, we can remove the first part of this + // condition. jsRunner calls `page.wait` far too + // often to enforce this. + if (wait_ms > 100 and wait_ms - ms_remaining < 100) { + // Look, we want to exit ASAP, but we don't want + // to exit so fast that we've run none of the + // background jobs. + break :blk 50; + } // no http transfers, no cdp extra socket, no // scheduled tasks, we're done. return .done; @@ -341,7 +352,6 @@ pub const Page = struct { return .done; } - _ = try scheduler.runLowPriority(); // we have a task to run in the not-so-distant future. // You might think we can just sleep until that task is // ready, but we should continue to run lowPriority tasks @@ -353,7 +363,6 @@ pub const Page = struct { // We're here because we either have active HTTP // connections, of exit_when_done == false (aka, there's // an extra_socket registered with the http client). - _ = try scheduler.runLowPriority(); const ms_to_wait = @min(ms_remaining, ms_to_next_task orelse 100); if (try http_client.tick(ms_to_wait) == .extra_socket) { // data on a socket we aren't handling, return to caller diff --git a/src/server.zig b/src/server.zig index 790a30f9..f4f169d1 100644 --- a/src/server.zig +++ b/src/server.zig @@ -168,7 +168,6 @@ pub const Server = struct { ms_remaining = timeout_ms; }, .done => { - std.debug.print("ok\n", .{}); const elapsed = timestamp() - last_message; if (elapsed > ms_remaining) { log.info(.app, "CDP timeout", .{}); diff --git a/src/testing.zig b/src/testing.zig index c6055cc3..d8c894ce 100644 --- a/src/testing.zig +++ b/src/testing.zig @@ -424,7 +424,7 @@ pub const JsRunner = struct { } return err; }; - self.page.session.wait(1000); + _ = self.page.session.wait(100); @import("root").js_runner_duration += std.time.Instant.since(try std.time.Instant.now(), start); if (case.@"1") |expected| {