Merge branch 'zig1' into zig0-0.15.2

This commit is contained in:
2026-02-19 12:00:06 +00:00

View File

@@ -1617,13 +1617,13 @@ fn addZig0TestStep(
test_timeout: ?[]const u8,
exe_options: *std.Build.Step.Options,
) void {
// Step 1: Compile Zig test code to .o (cached independently of C objects).
const test_mod = b.createModule(.{
.root_source_file = b.path("stage0_test_root.zig"),
.optimize = optimize,
.target = target,
});
test_mod.addIncludePath(b.path("stage0"));
addZig0CSources(b, test_mod, cc, optimize);
test_mod.linkSystemLibrary("c", .{});
// Re-export module rooted in src/ (can resolve compiler-internal imports)
@@ -1642,33 +1642,50 @@ fn addZig0TestStep(
zig_internals_mod.addOptions("build_options", exe_options);
test_mod.addImport("zig_internals", zig_internals_mod);
const timeout: ?[]const u8 = test_timeout orelse if (valgrind) null else "300";
const test_exe = b.addTest(.{
const test_obj = b.addTest(.{
.root_module = test_mod,
.emit_object = true,
.use_llvm = false,
.use_lld = false,
});
if (valgrind) {
test_exe.setExecCmd(&.{
"valgrind",
"--error-exitcode=2",
"--leak-check=full",
"--show-leak-kinds=all",
"--errors-for-leak-kinds=all",
"--track-fds=yes",
"--quiet",
null,
});
} else {
test_exe.setExecCmd(&.{ "timeout", timeout orelse "10", null });
}
// Step 2: Link test_obj + C objects into final executable.
const link_mod = b.createModule(.{
.target = target,
.optimize = optimize,
});
link_mod.addObject(test_obj);
addZig0CSources(b, link_mod, cc, optimize);
link_mod.linkSystemLibrary("c", .{});
const test_exe = b.addExecutable(.{
.name = "test",
.root_module = link_mod,
});
const timeout: ?[]const u8 = test_timeout orelse if (valgrind) null else "300";
if (no_exec) {
const install = b.addInstallArtifact(test_exe, .{});
step.dependOn(&install.step);
} else {
const run = b.addRunArtifact(test_exe);
run.step.name = b.fmt("test ({s})", .{cc});
// Step 3: Run with test IPC protocol.
const run = std.Build.Step.Run.create(b, b.fmt("test ({s})", .{cc}));
if (valgrind) {
run.addArgs(&.{
"valgrind",
"--error-exitcode=2",
"--leak-check=full",
"--show-leak-kinds=all",
"--errors-for-leak-kinds=all",
"--track-fds=yes",
"--quiet",
});
} else if (timeout) |t| {
run.addArgs(&.{ "timeout", t });
}
run.addArtifactArg(test_exe);
run.enableTestRunnerMode();
step.dependOn(&run.step);
}
}