authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-09-17 17:22:47+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-09-17 18:43:24+02:00
log2c3d87b168bf522f538e78325fdae71c320e6e20
treefae55c865e9cfea0aff848b65e0de3a9c2e456ab
parent5391541f11570dc444bfb79e5cf0e89aa872d0b8

macho: test empty translation units


4 files changed, 32 insertions(+), 0 deletions(-)

test/link.zig+4
...@@ -74,6 +74,10 @@ fn addMachOCases(cases: *tests.StandaloneContext) void {...@@ -74,6 +74,10 @@ fn addMachOCases(cases: *tests.StandaloneContext) void {
74 .build_modes = true,74 .build_modes = true,
75 });75 });
7676
77 cases.addBuildFile("test/link/macho/empty/build.zig", .{
78 .build_modes = true,
79 });
80
77 cases.addBuildFile("test/link/macho/entry/build.zig", .{81 cases.addBuildFile("test/link/macho/entry/build.zig", .{
78 .build_modes = true,82 .build_modes = true,
79 });83 });
test/link/macho/empty/build.zig created+22
...@@ -0,0 +1,22 @@
1const std = @import("std");
2const Builder = std.build.Builder;
3const LibExeObjectStep = std.build.LibExeObjStep;
4
5pub fn build(b: *Builder) void {
6 const mode = b.standardReleaseOptions();
7 const target: std.zig.CrossTarget = .{ .os_tag = .macos };
8
9 const test_step = b.step("test", "Test the program");
10 test_step.dependOn(b.getInstallStep());
11
12 const exe = b.addExecutable("test", null);
13 exe.addCSourceFile("main.c", &[0][]const u8{});
14 exe.addCSourceFile("empty.c", &[0][]const u8{});
15 exe.setBuildMode(mode);
16 exe.setTarget(target);
17 exe.linkLibC();
18
19 const run_cmd = exe.run();
20 run_cmd.expectStdOutEqual("Hello!\n");
21 test_step.dependOn(&run_cmd.step);
22}
test/link/macho/empty/empty.c created
test/link/macho/empty/main.c created+6
...@@ -0,0 +1,6 @@
1#include <stdio.h>
2
3int main(int argc, char* argv[]) {
4 printf("Hello!\n");
5 return 0;
6}