@@ -25,7 +25,6 @@ const ArenaAllocator = std.heap.ArenaAllocator;
2525const App = @import ("app.zig" ).App ;
2626const Env = @import ("browser/env.zig" ).Env ;
2727const Browser = @import ("browser/browser.zig" ).Browser ;
28- const Session = @import ("browser/session.zig" ).Session ;
2928const TestHTTPServer = @import ("TestHTTPServer.zig" );
3029
3130const parser = @import ("browser/netsurf.zig" );
@@ -75,15 +74,15 @@ pub fn main() !void {
7574
7675 var browser = try Browser .init (app );
7776 defer browser .deinit ();
78- const session = try browser .newSession ();
7977
78+ var i : usize = 0 ;
8079 while (try it .next ()) | test_file | {
8180 defer _ = test_arena .reset (.retain_capacity );
8281
8382 var err_out : ? []const u8 = null ;
8483 const result = run (
8584 test_arena .allocator (),
86- session ,
85+ & browser ,
8786 test_file ,
8887 & err_out ,
8988 ) catch | err | blk : {
@@ -93,16 +92,24 @@ pub fn main() !void {
9392 break :blk null ;
9493 };
9594 try writer .process (test_file , result , err_out );
95+ // if (@mod(i, 10) == 0) {
96+ // std.debug.print("\n\n=== V8 Memory {d}===\n", .{i});
97+ // browser.env.dumpMemoryStats();
98+ // }
99+ i += 1 ;
96100 }
97101 try writer .finalize ();
98102}
99103
100104fn run (
101105 arena : Allocator ,
102- session : * Session ,
106+ browser : * Browser ,
103107 test_file : []const u8 ,
104108 err_out : * ? []const u8 ,
105109) ! []const u8 {
110+ const session = try browser .newSession ();
111+ defer browser .closeSession ();
112+
106113 const page = try session .createPage ();
107114 defer session .removePage ();
108115
@@ -141,11 +148,7 @@ const Writer = struct {
141148 writer : std.fs.File.Writer ,
142149 cases : std .ArrayListUnmanaged (Case ) = .{},
143150
144- const Format = enum {
145- json ,
146- text ,
147- summary ,
148- };
151+ const Format = enum { json , text , summary , quiet };
149152
150153 fn init (allocator : Allocator , format : Format ) ! Writer {
151154 const out = std .fs .File .stdout ();
@@ -200,6 +203,7 @@ const Writer = struct {
200203 }, .{ .whitespace = .indent_2 }, writer );
201204 return writer .writeByte (',' );
202205 },
206+ .quiet = > {},
203207 }
204208 // just make sure we didn't fall through by mistake
205209 unreachable ;
@@ -289,6 +293,7 @@ const Writer = struct {
289293 // separator, see `finalize` for the hack we use to terminate this
290294 try writer .writeByte (',' );
291295 },
296+ .quiet = > {},
292297 }
293298 }
294299
@@ -309,7 +314,8 @@ fn parseArgs(arena: Allocator) !Command {
309314 \\
310315 \\ -h, --help Print this help message and exit.
311316 \\ --json result is formatted in JSON.
312- \\ --summary print a summary result. Incompatible w/ --json
317+ \\ --summary print a summary result. Incompatible w/ --json or --quiet
318+ \\ --quiet No output. Incompatible w/ --json or --summary
313319 \\
314320 ;
315321
@@ -331,6 +337,8 @@ fn parseArgs(arena: Allocator) !Command {
331337 format = .json ;
332338 } else if (std .mem .eql (u8 , "--summary" , arg )) {
333339 format = .summary ;
340+ } else if (std .mem .eql (u8 , "--quiet" , arg )) {
341+ format = .quiet ;
334342 } else {
335343 try filters .append (arena , arg );
336344 }
0 commit comments