diff --git a/build.zig b/build.zig index b494a4ad7a..83aabb6c41 100644 --- a/build.zig +++ b/build.zig @@ -442,8 +442,6 @@ pub fn build(b: *std.Build) !void { .skip_stage2 = true, // TODO get all these passing })); - _ = enable_symlinks_windows; - _ = enable_macos_sdk; test_step.dependOn(tests.addCompareOutputTests(b, test_filter, optimization_modes)); //test_step.dependOn(tests.addStandaloneTests( // b, @@ -453,15 +451,10 @@ pub fn build(b: *std.Build) !void { // enable_macos_sdk, // target, // skip_stage2_tests, - // b.enable_darling, - // b.enable_qemu, - // b.enable_rosetta, - // b.enable_wasmtime, - // b.enable_wine, // enable_symlinks_windows, //)); test_step.dependOn(tests.addCAbiTests(b, skip_non_native, skip_release)); - //test_step.dependOn(tests.addLinkTests(b, test_filter, optimization_modes, enable_macos_sdk, skip_stage2_tests, enable_symlinks_windows)); + test_step.dependOn(tests.addLinkTests(b, test_filter, optimization_modes, enable_macos_sdk, skip_stage2_tests, enable_symlinks_windows)); test_step.dependOn(tests.addStackTraceTests(b, test_filter, optimization_modes)); test_step.dependOn(tests.addCliTests(b, test_filter, optimization_modes)); test_step.dependOn(tests.addAssembleAndLinkTests(b, test_filter, optimization_modes)); diff --git a/test/link.zig b/test/link.zig index c787e8b1ae..d6d42a53e8 100644 --- a/test/link.zig +++ b/test/link.zig @@ -1,213 +1,220 @@ +pub const Case = struct { + build_root: []const u8, + import: type, +}; + +pub const cases = [_]Case{ + .{ + .build_root = "test/link/bss", + .import = @import("link/bss/build.zig"), + }, + .{ + .build_root = "test/link/common_symbols", + .import = @import("link/common_symbols/build.zig"), + }, + .{ + .build_root = "test/link/common_symbols_alignment", + .import = @import("link/common_symbols_alignment/build.zig"), + }, + .{ + .build_root = "test/link/interdependent_static_c_libs", + .import = @import("link/interdependent_static_c_libs/build.zig"), + }, + //.{ + // .build_root = "test/link/static_lib_as_system_lib", + // .import = @import("link/static_lib_as_system_lib/build.zig"), + //}, +}; + +//pub fn addCases(cases: *Standalone) void { +// addWasmCases(cases); +// addMachOCases(cases); +//} +// +//fn addWasmCases(cases: *Standalone) void { +// cases.addBuildFile("test/link/wasm/archive/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/basic-features/build.zig", .{ +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/bss/build.zig", .{ +// .build_modes = false, +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/export/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// }); +// +// // TODO: Fix open handle in wasm-linker refraining rename from working on Windows. +// if (builtin.os.tag != .windows) { +// cases.addBuildFile("test/link/wasm/export-data/build.zig", .{}); +// } +// +// cases.addBuildFile("test/link/wasm/extern/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// .use_emulation = true, +// }); +// +// cases.addBuildFile("test/link/wasm/extern-mangle/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/function-table/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/infer-features/build.zig", .{ +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/producers/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/segments/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/stack_pointer/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// }); +// +// cases.addBuildFile("test/link/wasm/type/build.zig", .{ +// .build_modes = true, +// .requires_stage2 = true, +// }); +//} +// +//fn addMachOCases(cases: *tests.StandaloneContext) void { +// cases.addBuildFile("test/link/macho/bugs/13056/build.zig", .{ +// .build_modes = true, +// .requires_macos_sdk = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/bugs/13457/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/dead_strip/build.zig", .{ +// .build_modes = false, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/dead_strip_dylibs/build.zig", .{ +// .build_modes = true, +// .requires_macos_sdk = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/dylib/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/empty/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/entry/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/headerpad/build.zig", .{ +// .build_modes = true, +// .requires_macos_sdk = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/linksection/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/needed_framework/build.zig", .{ +// .build_modes = true, +// .requires_macos_sdk = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/needed_library/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/objc/build.zig", .{ +// .build_modes = true, +// .requires_macos_sdk = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/objcpp/build.zig", .{ +// .build_modes = true, +// .requires_macos_sdk = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/pagezero/build.zig", .{ +// .build_modes = false, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/search_strategy/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/stack_size/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/strict_validation/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/tls/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/unwind_info/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/uuid/build.zig", .{ +// .build_modes = false, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/weak_library/build.zig", .{ +// .build_modes = true, +// .requires_symlinks = true, +// }); +// +// cases.addBuildFile("test/link/macho/weak_framework/build.zig", .{ +// .build_modes = true, +// .requires_macos_sdk = true, +// .requires_symlinks = true, +// }); +//} + const std = @import("std"); const builtin = @import("builtin"); -const tests = @import("tests.zig"); - -pub fn addCases(cases: *tests.StandaloneContext) void { - cases.addBuildFile("test/link/bss/build.zig", .{ - .build_modes = false, // we only guarantee zerofill for undefined in Debug - }); - - cases.addBuildFile("test/link/common_symbols/build.zig", .{ - .build_modes = true, - }); - - cases.addBuildFile("test/link/common_symbols_alignment/build.zig", .{ - .build_modes = true, - }); - - cases.addBuildFile("test/link/interdependent_static_c_libs/build.zig", .{ - .build_modes = true, - }); - - cases.addBuildFile("test/link/static_lib_as_system_lib/build.zig", .{ - .build_modes = true, - }); - - addWasmCases(cases); - addMachOCases(cases); -} - -fn addWasmCases(cases: *tests.StandaloneContext) void { - cases.addBuildFile("test/link/wasm/archive/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/basic-features/build.zig", .{ - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/bss/build.zig", .{ - .build_modes = false, - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/export/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - }); - - // TODO: Fix open handle in wasm-linker refraining rename from working on Windows. - if (builtin.os.tag != .windows) { - cases.addBuildFile("test/link/wasm/export-data/build.zig", .{}); - } - - cases.addBuildFile("test/link/wasm/extern/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - .use_emulation = true, - }); - - cases.addBuildFile("test/link/wasm/extern-mangle/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/function-table/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/infer-features/build.zig", .{ - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/producers/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/segments/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/stack_pointer/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - }); - - cases.addBuildFile("test/link/wasm/type/build.zig", .{ - .build_modes = true, - .requires_stage2 = true, - }); -} - -fn addMachOCases(cases: *tests.StandaloneContext) void { - cases.addBuildFile("test/link/macho/bugs/13056/build.zig", .{ - .build_modes = true, - .requires_macos_sdk = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/bugs/13457/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/dead_strip/build.zig", .{ - .build_modes = false, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/dead_strip_dylibs/build.zig", .{ - .build_modes = true, - .requires_macos_sdk = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/dylib/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/empty/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/entry/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/headerpad/build.zig", .{ - .build_modes = true, - .requires_macos_sdk = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/linksection/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/needed_framework/build.zig", .{ - .build_modes = true, - .requires_macos_sdk = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/needed_library/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/objc/build.zig", .{ - .build_modes = true, - .requires_macos_sdk = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/objcpp/build.zig", .{ - .build_modes = true, - .requires_macos_sdk = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/pagezero/build.zig", .{ - .build_modes = false, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/search_strategy/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/stack_size/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/strict_validation/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/tls/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/unwind_info/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/uuid/build.zig", .{ - .build_modes = false, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/weak_library/build.zig", .{ - .build_modes = true, - .requires_symlinks = true, - }); - - cases.addBuildFile("test/link/macho/weak_framework/build.zig", .{ - .build_modes = true, - .requires_macos_sdk = true, - .requires_symlinks = true, - }); -} diff --git a/test/link/bss/build.zig b/test/link/bss/build.zig index 0df9c1d323..86600b58f5 100644 --- a/test/link/bss/build.zig +++ b/test/link/bss/build.zig @@ -1,17 +1,17 @@ const std = @import("std"); pub fn build(b: *std.Build) void { - const optimize = b.standardOptimizeOption(.{}); const test_step = b.step("test", "Test"); + b.default_step = test_step; const exe = b.addExecutable(.{ .name = "bss", .root_source_file = .{ .path = "main.zig" }, - .optimize = optimize, + .optimize = .Debug, }); - b.default_step.dependOn(&exe.step); const run = exe.run(); run.expectStdOutEqual("0, 1, 0\n"); + test_step.dependOn(&run.step); } diff --git a/test/link/bss/main.zig b/test/link/bss/main.zig index c901f0bb27..d2ecffe982 100644 --- a/test/link/bss/main.zig +++ b/test/link/bss/main.zig @@ -1,7 +1,7 @@ const std = @import("std"); // Stress test zerofill layout -var buffer: [0x1000000]u64 = undefined; +var buffer: [0x1000000]u64 = [1]u64{0} ** 0x1000000; pub fn main() anyerror!void { buffer[0x10] = 1; diff --git a/test/link/common_symbols/build.zig b/test/link/common_symbols/build.zig index ee9dd94ebd..e3c302f0f7 100644 --- a/test/link/common_symbols/build.zig +++ b/test/link/common_symbols/build.zig @@ -1,8 +1,16 @@ const std = @import("std"); pub fn build(b: *std.Build) void { - const optimize = b.standardOptimizeOption(.{}); + const test_step = b.step("test", "Test it"); + b.default_step = test_step; + add(b, test_step, .Debug); + add(b, test_step, .ReleaseFast); + add(b, test_step, .ReleaseSmall); + add(b, test_step, .ReleaseSafe); +} + +fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void { const lib_a = b.addStaticLibrary(.{ .name = "a", .optimize = optimize, @@ -16,6 +24,5 @@ pub fn build(b: *std.Build) void { }); test_exe.linkLibrary(lib_a); - const test_step = b.step("test", "Test it"); test_step.dependOn(&test_exe.step); } diff --git a/test/link/common_symbols_alignment/build.zig b/test/link/common_symbols_alignment/build.zig index f6efdc784b..7d1d813447 100644 --- a/test/link/common_symbols_alignment/build.zig +++ b/test/link/common_symbols_alignment/build.zig @@ -1,23 +1,28 @@ const std = @import("std"); pub fn build(b: *std.Build) void { - const optimize = b.standardOptimizeOption(.{}); - const target = b.standardTargetOptions(.{}); + const test_step = b.step("test", "Test it"); + b.default_step = test_step; + add(b, test_step, .Debug); + add(b, test_step, .ReleaseFast); + add(b, test_step, .ReleaseSmall); + add(b, test_step, .ReleaseSafe); +} + +fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void { const lib_a = b.addStaticLibrary(.{ .name = "a", .optimize = optimize, - .target = target, + .target = .{}, }); lib_a.addCSourceFiles(&.{"a.c"}, &.{"-fcommon"}); const test_exe = b.addTest(.{ .root_source_file = .{ .path = "main.zig" }, .optimize = optimize, - .target = target, }); test_exe.linkLibrary(lib_a); - const test_step = b.step("test", "Test it"); test_step.dependOn(&test_exe.step); } diff --git a/test/link/interdependent_static_c_libs/build.zig b/test/link/interdependent_static_c_libs/build.zig index d8962a8e08..c4118c1ca4 100644 --- a/test/link/interdependent_static_c_libs/build.zig +++ b/test/link/interdependent_static_c_libs/build.zig @@ -1,13 +1,20 @@ const std = @import("std"); pub fn build(b: *std.Build) void { - const optimize = b.standardOptimizeOption(.{}); - const target = b.standardTargetOptions(.{}); + const test_step = b.step("test", "Test it"); + b.default_step = test_step; + add(b, test_step, .Debug); + add(b, test_step, .ReleaseFast); + add(b, test_step, .ReleaseSmall); + add(b, test_step, .ReleaseSafe); +} + +fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void { const lib_a = b.addStaticLibrary(.{ .name = "a", .optimize = optimize, - .target = target, + .target = .{}, }); lib_a.addCSourceFile("a.c", &[_][]const u8{}); lib_a.addIncludePath("."); @@ -15,7 +22,7 @@ pub fn build(b: *std.Build) void { const lib_b = b.addStaticLibrary(.{ .name = "b", .optimize = optimize, - .target = target, + .target = .{}, }); lib_b.addCSourceFile("b.c", &[_][]const u8{}); lib_b.addIncludePath("."); @@ -23,12 +30,10 @@ pub fn build(b: *std.Build) void { const test_exe = b.addTest(.{ .root_source_file = .{ .path = "main.zig" }, .optimize = optimize, - .target = target, }); test_exe.linkLibrary(lib_a); test_exe.linkLibrary(lib_b); test_exe.addIncludePath("."); - const test_step = b.step("test", "Test it"); test_step.dependOn(&test_exe.step); } diff --git a/test/link/static_lib_as_system_lib/build.zig b/test/link/static_lib_as_system_lib/build.zig index b6cf32d711..1957d2e134 100644 --- a/test/link/static_lib_as_system_lib/build.zig +++ b/test/link/static_lib_as_system_lib/build.zig @@ -1,13 +1,20 @@ const std = @import("std"); pub fn build(b: *std.Build) void { - const optimize = b.standardOptimizeOption(.{}); - const target = b.standardTargetOptions(.{}); + const test_step = b.step("test", "Test it"); + b.default_step = test_step; + add(b, test_step, .Debug); + add(b, test_step, .ReleaseFast); + add(b, test_step, .ReleaseSmall); + add(b, test_step, .ReleaseSafe); +} + +fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void { const lib_a = b.addStaticLibrary(.{ .name = "a", .optimize = optimize, - .target = target, + .target = .{}, }); lib_a.addCSourceFile("a.c", &[_][]const u8{}); lib_a.addIncludePath("."); @@ -16,14 +23,12 @@ pub fn build(b: *std.Build) void { const test_exe = b.addTest(.{ .root_source_file = .{ .path = "main.zig" }, .optimize = optimize, - .target = target, + .target = .{}, }); test_exe.linkSystemLibrary("a"); // force linking liba.a as -la test_exe.addSystemIncludePath("."); - const search_path = std.fs.path.join(b.allocator, &[_][]const u8{ b.install_path, "lib" }) catch unreachable; + const search_path = std.fs.path.join(b.allocator, &[_][]const u8{ b.install_path, "lib" }) catch @panic("OOM"); test_exe.addLibraryPath(search_path); - const test_step = b.step("test", "Test it"); - test_step.dependOn(b.getInstallStep()); test_step.dependOn(&test_exe.step); } diff --git a/test/tests.zig b/test/tests.zig index 1e99e5c2a8..d5ee83b447 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -1,16 +1,9 @@ const std = @import("std"); const builtin = @import("builtin"); -const debug = std.debug; +const assert = std.debug.assert; const CrossTarget = std.zig.CrossTarget; -const io = std.io; -const fs = std.fs; const mem = std.mem; -const fmt = std.fmt; -const ArrayList = std.ArrayList; const OptimizeMode = std.builtin.OptimizeMode; -const CompileStep = std.Build.CompileStep; -const Allocator = mem.Allocator; -const ExecError = std.Build.ExecError; const Step = std.Build.Step; // Cases @@ -574,15 +567,10 @@ pub fn addStandaloneTests( enable_macos_sdk: bool, target: std.zig.CrossTarget, omit_stage2: bool, - enable_darling: bool, - enable_qemu: bool, - enable_rosetta: bool, - enable_wasmtime: bool, - enable_wine: bool, enable_symlinks_windows: bool, ) *Step { const cases = b.allocator.create(StandaloneContext) catch @panic("OOM"); - cases.* = StandaloneContext{ + cases.* = .{ .b = b, .step = b.step("test-standalone", "Run the standalone tests"), .test_index = 0, @@ -592,11 +580,6 @@ pub fn addStandaloneTests( .enable_macos_sdk = enable_macos_sdk, .target = target, .omit_stage2 = omit_stage2, - .enable_darling = enable_darling, - .enable_qemu = enable_qemu, - .enable_rosetta = enable_rosetta, - .enable_wasmtime = enable_wasmtime, - .enable_wine = enable_wine, .enable_symlinks_windows = enable_symlinks_windows, }; @@ -613,21 +596,24 @@ pub fn addLinkTests( omit_stage2: bool, enable_symlinks_windows: bool, ) *Step { - const cases = b.allocator.create(StandaloneContext) catch @panic("OOM"); - cases.* = StandaloneContext{ - .b = b, - .step = b.step("test-link", "Run the linker tests"), - .test_index = 0, - .test_filter = test_filter, - .optimize_modes = optimize_modes, - .skip_non_native = true, - .enable_macos_sdk = enable_macos_sdk, - .target = .{}, - .omit_stage2 = omit_stage2, - .enable_symlinks_windows = enable_symlinks_windows, - }; - link.addCases(cases); - return cases.step; + _ = test_filter; + _ = optimize_modes; + _ = enable_macos_sdk; + _ = omit_stage2; + _ = enable_symlinks_windows; + + const step = b.step("test-link", "Run the linker tests"); + + inline for (link.cases) |link_test| { + const dep = b.anonymousDependency(link_test.build_root, link_test.import, .{}); + const dep_step = dep.builder.default_step; + assert(mem.startsWith(u8, dep.builder.dep_prefix, "test.")); + const dep_prefix_adjusted = dep.builder.dep_prefix["test.".len..]; + dep_step.name = b.fmt("{s}{s}", .{ dep_prefix_adjusted, dep_step.name }); + step.dependOn(dep_step); + } + + return step; } pub fn addCliTests(b: *std.Build, test_filter: ?[]const u8, optimize_modes: []const OptimizeMode) *Step { @@ -761,7 +747,7 @@ pub fn addCliTests(b: *std.Build, test_filter: ?[]const u8, optimize_modes: []co const unformatted_code = " // no reason for indent"; const s = std.fs.path.sep_str; - var dir = fs.cwd().openDir(tmp_path, .{}) catch @panic("unhandled"); + var dir = std.fs.cwd().openDir(tmp_path, .{}) catch @panic("unhandled"); defer dir.close(); dir.writeFile("fmt1.zig", unformatted_code) catch @panic("unhandled"); dir.writeFile("fmt2.zig", unformatted_code) catch @panic("unhandled"); @@ -791,7 +777,7 @@ pub fn addCliTests(b: *std.Build, test_filter: ?[]const u8, optimize_modes: []co run3.step.dependOn(&run2.step); const unformatted_code_utf16 = "\xff\xfe \x00 \x00 \x00 \x00/\x00/\x00 \x00n\x00o\x00 \x00r\x00e\x00a\x00s\x00o\x00n\x00"; - const fmt4_path = fs.path.join(b.allocator, &.{ tmp_path, "fmt4.zig" }) catch @panic("OOM"); + const fmt4_path = std.fs.path.join(b.allocator, &.{ tmp_path, "fmt4.zig" }) catch @panic("OOM"); const write4 = b.addWriteFiles(); write4.addBytesToSource(unformatted_code_utf16, fmt4_path); write4.step.dependOn(&run3.step);