aboutsummaryrefslogtreecommitdiff
path: root/src/testing.zig
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-04-27 17:45:13 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2026-04-27 17:45:13 +0200
commit3b0e9424a66058da82d11d432da886ec7b6ce7eb (patch)
tree0ad906e3b7d945405cdfeb9ff95b02546e1ed4bb /src/testing.zig
parentef5c0341ca15f6862294802103b02992b29609e8 (diff)
perf(eval): reduce memory syscall
Diffstat (limited to 'src/testing.zig')
-rw-r--r--src/testing.zig14
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);
}