macho: test empty translation units

This commit is contained in:
Jakub Konka 2022-09-17 17:22:47 +02:00
parent 5391541f11
commit 2c3d87b168
4 changed files with 32 additions and 0 deletions

View File

@ -74,6 +74,10 @@ fn addMachOCases(cases: *tests.StandaloneContext) void {
.build_modes = true,
});
cases.addBuildFile("test/link/macho/empty/build.zig", .{
.build_modes = true,
});
cases.addBuildFile("test/link/macho/entry/build.zig", .{
.build_modes = true,
});

View File

@ -0,0 +1,22 @@
const std = @import("std");
const Builder = std.build.Builder;
const LibExeObjectStep = std.build.LibExeObjStep;
pub fn build(b: *Builder) void {
const mode = b.standardReleaseOptions();
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test the program");
test_step.dependOn(b.getInstallStep());
const exe = b.addExecutable("test", null);
exe.addCSourceFile("main.c", &[0][]const u8{});
exe.addCSourceFile("empty.c", &[0][]const u8{});
exe.setBuildMode(mode);
exe.setTarget(target);
exe.linkLibC();
const run_cmd = exe.run();
run_cmd.expectStdOutEqual("Hello!\n");
test_step.dependOn(&run_cmd.step);
}

View File

View File

@ -0,0 +1,6 @@
#include <stdio.h>
int main(int argc, char* argv[]) {
printf("Hello!\n");
return 0;
}