2025-05-16 15:07:25 +01:00

34 lines
1.0 KiB
Zig

pub fn build(b: *std.Build) void {
// To avoid having to explicitly link required system libraries into the final test
// executable (e.g. ntdll on Windows), we'll just link everything with libc here.
const test_obj = b.addTest(.{
.emit_object = true,
.root_module = b.createModule(.{
.root_source_file = b.path("src/main.zig"),
.target = b.graph.host,
.link_libc = true,
}),
});
const test_exe_mod = b.createModule(.{
.root_source_file = null,
.target = b.graph.host,
.link_libc = true,
});
test_exe_mod.addObject(test_obj);
const test_exe = b.addExecutable(.{
.name = "test",
.root_module = test_exe_mod,
});
const test_step = b.step("test", "Test the program");
b.default_step = test_step;
const test_run = b.addRunArtifact(test_exe);
test_run.addCheck(.{ .expect_stderr_match = "All 3 tests passed." });
test_step.dependOn(&test_run.step);
}
const std = @import("std");