diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2026-04-19 19:02:17 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2026-04-19 19:02:17 +0200 |
| commit | 6aafc90f32d014390b29b77c6d53575793255847 (patch) | |
| tree | f72a3ed256e1b92757e3af53c9b5e9c639cb4c4c /src/testing.zig | |
| parent | c46957f44e8b5ba0639b7092a1c5abd9516b1b22 (diff) | |
refactor(tests): generalize doTest and doTestError
Diffstat (limited to 'src/testing.zig')
| -rw-r--r-- | src/testing.zig | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/testing.zig b/src/testing.zig new file mode 100644 index 0000000..ecf6eb3 --- /dev/null +++ b/src/testing.zig @@ -0,0 +1,23 @@ +const std = @import("std"); +const Allocator = std.mem.Allocator; +const Lexer = @import("lexer/Lexer.zig"); +const Element = @import("dom/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 { + var l = try Lexer.init(t); + var p = try parse(alloc, &l); + defer p.deinit(); + const g = try p.render(alloc); + defer alloc.free(g); + std.testing.expect(std.mem.eql(u8, g, v)) catch |err| { + std.debug.print("{s}\n", .{g}); + return err; + }; +} + +pub fn doError(comptime parse: fn(Allocator, *Lexer) parser.Error!Element, alloc: Allocator, t: []const u8, err: parser.Error) !void { + var l = try Lexer.init(t); + _ = parse(alloc, &l) catch |e| return std.testing.expect(err == e); + return std.testing.expect(false); +} |
