diff --git a/test/link.zig b/test/link.zig index aa0ed4817e..2b098c9b5d 100644 --- a/test/link.zig +++ b/test/link.zig @@ -104,6 +104,10 @@ pub const cases = [_]Case{ .build_root = "test/link/macho/entry", .import = @import("link/macho/entry/build.zig"), }, + .{ + .build_root = "test/link/macho/entry_in_archive", + .import = @import("link/macho/entry_in_archive/build.zig"), + }, .{ .build_root = "test/link/macho/headerpad", .import = @import("link/macho/headerpad/build.zig"), diff --git a/test/link/macho/entry_in_archive/build.zig b/test/link/macho/entry_in_archive/build.zig new file mode 100644 index 0000000000..f1eb775c0c --- /dev/null +++ b/test/link/macho/entry_in_archive/build.zig @@ -0,0 +1,35 @@ +const std = @import("std"); + +pub const requires_symlinks = true; + +pub fn build(b: *std.Build) void { + 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 = b.addStaticLibrary(.{ + .name = "main", + .optimize = optimize, + .target = .{ .os_tag = .macos }, + }); + lib.addCSourceFile("main.c", &.{}); + lib.linkLibC(); + + const exe = b.addExecutable(.{ + .name = "main", + .optimize = optimize, + .target = .{ .os_tag = .macos }, + }); + exe.linkLibrary(lib); + exe.linkLibC(); + + const run = exe.run(); + run.expectExitCode(0); + test_step.dependOn(&run.step); +} diff --git a/test/link/macho/entry_in_archive/main.c b/test/link/macho/entry_in_archive/main.c new file mode 100644 index 0000000000..b9f6deb5be --- /dev/null +++ b/test/link/macho/entry_in_archive/main.c @@ -0,0 +1,5 @@ +#include + +int main(int argc, char* argv[]) { + return 0; +}