diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2026-04-27 17:45:13 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2026-04-27 17:45:13 +0200 |
| commit | 3b0e9424a66058da82d11d432da886ec7b6ce7eb (patch) | |
| tree | 0ad906e3b7d945405cdfeb9ff95b02546e1ed4bb /src/testing.zig | |
| parent | ef5c0341ca15f6862294802103b02992b29609e8 (diff) | |
perf(eval): reduce memory syscall
Diffstat (limited to 'src/testing.zig')
| -rw-r--r-- | src/testing.zig | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/testing.zig b/src/testing.zig index 6d19e0e..bf0690e 100644 --- a/src/testing.zig +++ b/src/testing.zig @@ -4,10 +4,13 @@ const Lexer = @import("lexer/Lexer.zig"); const Element = @import("eval/Element.zig"); const parser = @import("parser.zig"); -pub fn do(comptime parse: fn (Allocator, *Lexer) parser.Error!Element, alloc: Allocator, t: []const u8, v: []const u8) !void { +pub fn do(comptime parse: fn (Allocator, *Lexer) parser.Error!Element, parent: Allocator, t: []const u8, v: []const u8) !void { + var arena = std.heap.ArenaAllocator.init(parent); + defer arena.deinit(); + var alloc = arena.allocator(); + var l = try Lexer.init(t); var p = try parse(alloc, &l); - defer p.deinit(alloc); const g = try p.renderHTML(alloc); defer alloc.free(g); std.testing.expect(std.mem.eql(u8, g, v)) catch |err| { @@ -16,8 +19,11 @@ pub fn do(comptime parse: fn (Allocator, *Lexer) parser.Error!Element, alloc: Al }; } -pub fn doError(comptime parse: fn (Allocator, *Lexer) parser.Error!Element, alloc: Allocator, t: []const u8, err: parser.Error) !void { +pub fn doError(comptime parse: fn (Allocator, *Lexer) parser.Error!Element, parent: Allocator, t: []const u8, err: parser.Error) !void { + var arena = std.heap.ArenaAllocator.init(parent); + defer arena.deinit(); + var l = try Lexer.init(t); - _ = parse(alloc, &l) catch |e| return std.testing.expect(err == e); + _ = parse(arena.allocator(), &l) catch |e| return std.testing.expect(err == e); return std.testing.expect(false); } |
