Skip to content

Commit 8f00bc9

Browse files
committed
link-tests: put macho search strategy tests into one test case
1 parent dfdb807 commit 8f00bc9

File tree

7 files changed

+33
-74
lines changed

7 files changed

+33
-74
lines changed

test/link.zig

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,7 @@ pub fn addCases(cases: *tests.StandaloneContext) void {
6161
.build_modes = true,
6262
});
6363

64-
cases.addBuildFile("test/link/macho/search_paths_first/build.zig", .{
65-
.build_modes = true,
66-
});
67-
68-
cases.addBuildFile("test/link/macho/search_dylibs_first/build.zig", .{
64+
cases.addBuildFile("test/link/macho/search_strategy/build.zig", .{
6965
.build_modes = true,
7066
});
7167
}

test/link/macho/search_paths_first/a.c

Lines changed: 0 additions & 7 deletions
This file was deleted.

test/link/macho/search_paths_first/build.zig

Lines changed: 0 additions & 41 deletions
This file was deleted.

test/link/macho/search_paths_first/main.c

Lines changed: 0 additions & 9 deletions
This file was deleted.

test/link/macho/search_dylibs_first/build.zig renamed to test/link/macho/search_strategy/build.zig

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,43 @@
11
const std = @import("std");
22
const Builder = std.build.Builder;
3+
const LibExeObjectStep = std.build.LibExeObjStep;
34

45
pub fn build(b: *Builder) void {
56
const mode = b.standardReleaseOptions();
67

78
const test_step = b.step("test", "Test");
89
test_step.dependOn(b.getInstallStep());
910

11+
{
12+
// -search_dylibs_first
13+
const exe = createScenario(b, mode);
14+
exe.search_strategy = .dylibs_first;
15+
16+
const check = exe.checkObject(.macho);
17+
check.checkStart("cmd LOAD_DYLIB");
18+
check.checkNext("name @rpath/liba.dylib");
19+
20+
test_step.dependOn(&check.step);
21+
22+
const run = exe.run();
23+
run.cwd = b.pathFromRoot(".");
24+
run.expectStdOutEqual("Hello world");
25+
test_step.dependOn(&run.step);
26+
}
27+
28+
{
29+
// -search_paths_first
30+
const exe = createScenario(b, mode);
31+
exe.search_strategy = .paths_first;
32+
33+
const run = exe.run();
34+
run.cwd = b.pathFromRoot(".");
35+
run.expectStdOutEqual("Hello world");
36+
test_step.dependOn(&run.step);
37+
}
38+
}
39+
40+
fn createScenario(b: *Builder, mode: std.builtin.Mode) *LibExeObjectStep {
1041
const static = b.addStaticLibrary("a", null);
1142
static.setBuildMode(mode);
1243
static.addCSourceFile("a.c", &.{});
@@ -33,16 +64,5 @@ pub fn build(b: *Builder) void {
3364
exe.addLibraryPath(b.pathFromRoot("zig-out/static"));
3465
exe.addLibraryPath(b.pathFromRoot("zig-out/dynamic"));
3566
exe.addRPath(b.pathFromRoot("zig-out/dynamic"));
36-
exe.search_strategy = .dylibs_first;
37-
38-
const check = exe.checkObject(.macho);
39-
check.checkStart("cmd LOAD_DYLIB");
40-
check.checkNext("name @rpath/liba.dylib");
41-
42-
test_step.dependOn(&check.step);
43-
44-
const run = exe.run();
45-
run.cwd = b.pathFromRoot(".");
46-
run.expectStdOutEqual("Hello world");
47-
test_step.dependOn(&run.step);
67+
return exe;
4868
}

0 commit comments

Comments
 (0)