Skip to content

Commit 823b7f0

Browse files
Merge pull request #1064 from lightpanda-io/testing_metrics
Re-enable test metrics
2 parents f5130ce + 346f538 commit 823b7f0

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/test_runner.zig

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ pub const std_options = std.Options{
3535
};
3636

3737
pub var js_runner_duration: usize = 0;
38-
pub var tracking_allocator = TrackingAllocator.init(std.testing.allocator);
38+
pub var tracking_allocator: Allocator = undefined;
3939

4040
pub fn main() !void {
4141
var mem: [8192]u8 = undefined;
@@ -52,6 +52,12 @@ pub fn main() !void {
5252
var args = try std.process.argsWithAllocator(allocator);
5353
defer args.deinit();
5454

55+
var tracking_arena = std.heap.ArenaAllocator.init(std.heap.c_allocator);
56+
defer tracking_arena.deinit();
57+
58+
var ta = TrackingAllocator.init(tracking_arena.allocator());
59+
tracking_allocator = ta.allocator();
60+
5561
// ignore the exec name.
5662
_ = args.next();
5763
var json_stats = false;
@@ -82,6 +88,7 @@ pub fn main() !void {
8288
if (isSetup(t) or isTeardown(t)) {
8389
continue;
8490
}
91+
defer _ = tracking_arena.reset(.retain_capacity);
8592

8693
var status = Status.pass;
8794
slowest.startTiming();
@@ -175,7 +182,7 @@ pub fn main() !void {
175182
if (json_stats) {
176183
var stdout = std.fs.File.stdout();
177184
var writer = stdout.writer(&.{});
178-
const stats = tracking_allocator.stats();
185+
const stats = ta.stats();
179186
try std.json.Stringify.value(&.{
180187
.{ .name = "browser", .bench = .{
181188
.duration = js_runner_duration,

src/testing.zig

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -360,8 +360,6 @@ fn isJsonValue(a: std.json.Value, b: std.json.Value) bool {
360360
}
361361
}
362362

363-
pub const tracking_allocator = @import("root").tracking_allocator.allocator();
364-
365363
var gpa: std.heap.GeneralPurposeAllocator(.{}) = .init;
366364
pub var test_app: *App = undefined;
367365
pub var test_browser: Browser = undefined;
@@ -387,9 +385,14 @@ pub fn shutdown() void {
387385

388386
pub fn htmlRunner(file: []const u8) !void {
389387
defer _ = arena_instance.reset(.retain_capacity);
388+
389+
const start = try std.time.Instant.now();
390+
390391
const page = try test_session.createPage();
391392
defer test_session.removePage();
392393

394+
page.arena = @import("root").tracking_allocator;
395+
393396
const js_context = page.main_context;
394397
var try_catch: Env.TryCatch = undefined;
395398
try_catch.init(js_context);
@@ -399,6 +402,8 @@ pub fn htmlRunner(file: []const u8) !void {
399402
try page.navigate(url, .{});
400403
_ = page.wait(2000);
401404

405+
@import("root").js_runner_duration += std.time.Instant.since(try std.time.Instant.now(), start);
406+
402407
const value = js_context.exec("testing.getStatus()", "testing.getStatus()") catch |err| {
403408
const msg = try_catch.err(arena_allocator) catch @errorName(err) orelse "unknown";
404409
std.debug.print("{s}: test failure\nError: {s}\n", .{ file, msg });

0 commit comments

Comments
 (0)