aboutsummaryrefslogtreecommitdiff
path: root/test/standalone/test_obj_link_run/build.zig
blob: 19d52ce68c3f26be07565f5f313b4834248798ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
pub fn build(b: *std.Build) void {
    const is_windows = b.graph.host.result.os.tag == .windows;

    const test_obj = b.addTest(.{
        .emit_object = true,
        .root_module = b.createModule(.{
            .root_source_file = b.path("src/main.zig"),
            .target = b.graph.host,
        }),
    });
    if (is_windows) {
        test_obj.linkSystemLibrary("ntdll");
        test_obj.linkSystemLibrary("kernel32");
        test_obj.linkSystemLibrary("ws2_32");
    }

    const test_exe_mod = b.createModule(.{
        .root_source_file = null,
        .target = b.graph.host,
    });
    test_exe_mod.addObject(test_obj);
    const test_exe = b.addExecutable(.{
        .name = "test",
        .root_module = test_exe_mod,
    });

    const test_step = b.step("test", "Test the program");
    b.default_step = test_step;

    const test_run = b.addRunArtifact(test_exe);
    test_run.addCheck(.{ .expect_stderr_match = "All 3 tests passed." });
    test_step.dependOn(&test_run.step);
}

const std = @import("std");