diff --git a/src/main_wpt.zig b/src/main_wpt.zig index fe75630a..7f567ea2 100644 --- a/src/main_wpt.zig +++ b/src/main_wpt.zig @@ -10,6 +10,8 @@ const Loop = jsruntime.Loop; const DOM = @import("dom.zig"); const HTMLElem = @import("html/elements.zig"); +const fspath = std.fs.path; + const wpt_dir = "tests/wpt"; // FileLoader loads files content from the filesystem. @@ -36,7 +38,7 @@ const FileLoader = struct { return self.files.get(name).?; } fn load(self: *FileLoader, name: []const u8) !void { - const filename = try std.mem.concat(self.alloc, u8, &.{ self.path, name }); + const filename = try fspath.join(self.alloc, &.{ self.path, name }); defer self.alloc.free(filename); var file = try std.fs.cwd().openFile(filename, .{}); defer file.close(); @@ -82,7 +84,7 @@ pub fn main() !void { defer vm.deinit(); // prepare libraries to load on each test case. - var loader = FileLoader.init(alloc, "tests/wpt"); + var loader = FileLoader.init(alloc, wpt_dir); defer loader.deinit(); // browse the dir to get the tests dynamically. @@ -160,6 +162,8 @@ fn runWPT(arena: *std.heap.ArenaAllocator, comptime apis: []jsruntime.API, f: [] const html_doc = try parser.documentHTMLParseFromFileAlloc(alloc, f); const doc = parser.documentHTMLToDocument(html_doc); + const dirname = fspath.dirname(f[wpt_dir.len..]) orelse unreachable; + // create JS env var loop = try Loop.init(alloc); defer loop.deinit(); @@ -207,23 +211,28 @@ fn runWPT(arena: *std.heap.ArenaAllocator, comptime apis: []jsruntime.API, f: [] return res; } - // TODO load