authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-08-17 09:00:23+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-08-17 09:00:26+02:00
logd84282174c449325b4bc43fed4d65289445399d4
tree58dd1fe1ef5698e427b44a59a8a5be0a03487756
parenta12abc6d6c8b89a09befdcbd9019247ccc3bd641

link-test: move tls test to macho/tls

This test was always really testing correct behavior of our in-house MachO linker to begin with.

7 files changed, 43 insertions(+), 47 deletions(-)

test/link.zig+4-9
...@@ -3,11 +3,6 @@ const builtin = @import("builtin");...@@ -3,11 +3,6 @@ const builtin = @import("builtin");
3const tests = @import("tests.zig");3const tests = @import("tests.zig");
44
5pub fn addCases(cases: *tests.StandaloneContext) void {5pub fn addCases(cases: *tests.StandaloneContext) void {
6 if (builtin.os.tag == .windows) {
7 // https://github.com/ziglang/zig/issues/12421
8 return;
9 }
10
11 cases.addBuildFile("test/link/bss/build.zig", .{6 cases.addBuildFile("test/link/bss/build.zig", .{
12 .build_modes = false, // we only guarantee zerofill for undefined in Debug7 .build_modes = false, // we only guarantee zerofill for undefined in Debug
13 });8 });
...@@ -28,10 +23,6 @@ pub fn addCases(cases: *tests.StandaloneContext) void {...@@ -28,10 +23,6 @@ pub fn addCases(cases: *tests.StandaloneContext) void {
28 .build_modes = true,23 .build_modes = true,
29 });24 });
3025
31 cases.addBuildFile("test/link/tls/build.zig", .{
32 .build_modes = true,
33 });
34
35 cases.addBuildFile("test/link/wasm/type/build.zig", .{26 cases.addBuildFile("test/link/wasm/type/build.zig", .{
36 .build_modes = true,27 .build_modes = true,
37 .requires_stage2 = true,28 .requires_stage2 = true,
...@@ -115,4 +106,8 @@ pub fn addCases(cases: *tests.StandaloneContext) void {...@@ -115,4 +106,8 @@ pub fn addCases(cases: *tests.StandaloneContext) void {
115 .build_modes = true,106 .build_modes = true,
116 .requires_macos_sdk = true,107 .requires_macos_sdk = true,
117 });108 });
109
110 cases.addBuildFile("test/link/macho/tls/build.zig", .{
111 .build_modes = true,
112 });
118}113}
test/link/macho/tls/a.c created+5
...@@ -0,0 +1,5 @@
1_Thread_local int a;
2
3int getA() {
4 return a;
5}
test/link/macho/tls/build.zig created+19
...@@ -0,0 +1,19 @@
1const Builder = @import("std").build.Builder;
2
3pub fn build(b: *Builder) void {
4 const mode = b.standardReleaseOptions();
5 const target: std.zig.CrossTarget = .{ .os_tag = .macos };
6
7 const lib = b.addSharedLibrary("a", null, b.version(1, 0, 0));
8 lib.setBuildMode(mode);
9 lib.addCSourceFile("a.c", &.{});
10 lib.linkLibC();
11
12 const test_exe = b.addTest("main.zig");
13 test_exe.setBuildMode(mode);
14 test_exe.linkLibrary(lib);
15 test_exe.linkLibC();
16
17 const test_step = b.step("test", "Test it");
18 test_step.dependOn(&test_exe.step);
19}
test/link/macho/tls/main.zig created+15
...@@ -0,0 +1,15 @@
1const std = @import("std");
2
3extern threadlocal var a: i32;
4extern fn getA() i32;
5
6fn getA2() i32 {
7 return a;
8}
9
10test {
11 a = 2;
12 try std.testing.expect(getA() == 2);
13 try std.testing.expect(2 == getA2());
14 try std.testing.expect(getA() == getA2());
15}
test/link/tls/a.c deleted-5
...@@ -1,5 +0,0 @@
1_Thread_local int a;
2
3int getA() {
4 return a;
5}
test/link/tls/build.zig deleted-18
...@@ -1,18 +0,0 @@
1const Builder = @import("std").build.Builder;
2
3pub fn build(b: *Builder) void {
4 const mode = b.standardReleaseOptions();
5
6 const lib = b.addSharedLibrary("a", null, b.version(1, 0, 0));
7 lib.setBuildMode(mode);
8 lib.addCSourceFile("a.c", &.{});
9 lib.linkLibC();
10
11 const test_exe = b.addTest("main.zig");
12 test_exe.setBuildMode(mode);
13 test_exe.linkLibrary(lib);
14 test_exe.linkLibC();
15
16 const test_step = b.step("test", "Test it");
17 test_step.dependOn(&test_exe.step);
18}
test/link/tls/main.zig deleted-15
...@@ -1,15 +0,0 @@
1const std = @import("std");
2
3extern threadlocal var a: i32;
4extern fn getA() i32;
5
6fn getA2() i32 {
7 return a;
8}
9
10test {
11 a = 2;
12 try std.testing.expect(getA() == 2);
13 try std.testing.expect(2 == getA2());
14 try std.testing.expect(getA() == getA2());
15}