mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-29 23:23:28 +00:00
wpt: create a command instead of a test
This commit is contained in:
24
build.zig
24
build.zig
@@ -73,18 +73,28 @@ pub fn build(b: *std.build.Builder) !void {
|
|||||||
const test_step = b.step("test", "Run unit tests");
|
const test_step = b.step("test", "Run unit tests");
|
||||||
test_step.dependOn(&run_tests.step);
|
test_step.dependOn(&run_tests.step);
|
||||||
|
|
||||||
// wpt tests
|
// wpt
|
||||||
// -----
|
// -----
|
||||||
|
|
||||||
// compile
|
// compile and install
|
||||||
const wpt = b.addTest(.{ .root_source_file = .{ .path = "src/run_wpt.zig" } });
|
const wpt = b.addExecutable(.{
|
||||||
|
.name = "browsercore-wpt",
|
||||||
|
.root_source_file = .{ .path = "src/run_wpt.zig" },
|
||||||
|
.target = target,
|
||||||
|
.optimize = mode,
|
||||||
|
});
|
||||||
try common(wpt, options);
|
try common(wpt, options);
|
||||||
wpt.single_threaded = true;
|
b.installArtifact(wpt);
|
||||||
const run_wpt = b.addRunArtifact(wpt);
|
|
||||||
|
|
||||||
|
// run
|
||||||
|
const wpt_cmd = b.addRunArtifact(wpt);
|
||||||
|
wpt_cmd.step.dependOn(b.getInstallStep());
|
||||||
|
if (b.args) |args| {
|
||||||
|
wpt_cmd.addArgs(args);
|
||||||
|
}
|
||||||
// step
|
// step
|
||||||
const wpt_step = b.step("wpt", "Run Web Platform Tests");
|
const wpt_step = b.step("wpt", "WPT tests");
|
||||||
wpt_step.dependOn(&run_wpt.step);
|
wpt_step.dependOn(&wpt_cmd.step);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn common(
|
fn common(
|
||||||
|
|||||||
@@ -63,10 +63,12 @@ const FileLoader = struct {
|
|||||||
// the HTML page.
|
// the HTML page.
|
||||||
// Once browsercore will have the html loader, it would be useful to refacto
|
// Once browsercore will have the html loader, it would be useful to refacto
|
||||||
// this test to use it.
|
// this test to use it.
|
||||||
test "WPT tests suite" {
|
pub fn main() !void {
|
||||||
std.debug.print("Running WPT test suite\n", .{});
|
std.debug.print("Running WPT test suite\n", .{});
|
||||||
|
|
||||||
const alloc = std.testing.allocator;
|
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||||
|
defer _ = gpa.deinit();
|
||||||
|
const alloc = gpa.allocator();
|
||||||
|
|
||||||
// initialize VM JS lib.
|
// initialize VM JS lib.
|
||||||
const vm = jsruntime.VM.init();
|
const vm = jsruntime.VM.init();
|
||||||
@@ -92,7 +94,7 @@ test "WPT tests suite" {
|
|||||||
run += 1;
|
run += 1;
|
||||||
|
|
||||||
// create an arena and deinit it for each test case.
|
// create an arena and deinit it for each test case.
|
||||||
var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
|
var arena = std.heap.ArenaAllocator.init(alloc);
|
||||||
defer arena.deinit();
|
defer arena.deinit();
|
||||||
|
|
||||||
// TODO I don't use testing.expect here b/c I want to execute all the
|
// TODO I don't use testing.expect here b/c I want to execute all the
|
||||||
@@ -120,8 +122,8 @@ test "WPT tests suite" {
|
|||||||
|
|
||||||
if (failures > 0) {
|
if (failures > 0) {
|
||||||
std.debug.print("{d}/{d} tests failures\n", .{ failures, run });
|
std.debug.print("{d}/{d} tests failures\n", .{ failures, run });
|
||||||
|
std.os.exit(1);
|
||||||
}
|
}
|
||||||
try std.testing.expect(failures == 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// runWPT parses the given HTML file, starts a js env and run the first script
|
// runWPT parses the given HTML file, starts a js env and run the first script
|
||||||
|
|||||||
Reference in New Issue
Block a user