Commit cdf0a2af58
Changed files (15)
test/link/wasm/archive/build.zig
@@ -1,15 +1,24 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
- const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
+
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
// The code in question will pull-in compiler-rt,
// and therefore link with its archive file.
const lib = b.addSharedLibrary(.{
.name = "main",
.root_source_file = .{ .path = "main.zig" },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = optimize,
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
});
lib.use_llvm = false;
test/link/wasm/basic-features/build.zig
@@ -1,11 +1,13 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
// Library with explicitly set cpu features
const lib = b.addSharedLibrary(.{
.name = "lib",
.root_source_file = .{ .path = "main.zig" },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = .Debug,
.target = .{
.cpu_arch = .wasm32,
.cpu_model = .{ .explicit = &std.Target.wasm.cpu.mvp },
@@ -24,4 +26,5 @@ pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Run linker test");
test_step.dependOn(&check.step);
+ b.default_step = test_step;
}
test/link/wasm/bss/build.zig
@@ -1,14 +1,16 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ b.default_step = test_step;
const lib = b.addSharedLibrary(.{
.name = "lib",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = .Debug,
});
lib.use_llvm = false;
lib.use_lld = false;
@@ -36,5 +38,6 @@ pub fn build(b: *std.Build) void {
check_lib.checkNext("name .rodata");
check_lib.checkNext("index 1"); // bss section always last
check_lib.checkNext("name .bss");
+
test_step.dependOn(&check_lib.step);
}
test/link/wasm/export/build.zig
@@ -1,8 +1,18 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
- const optimize = b.standardOptimizeOption(.{});
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
+
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
const no_export = b.addSharedLibrary(.{
.name = "no-export",
.root_source_file = .{ .path = "main.zig" },
@@ -50,7 +60,6 @@ pub fn build(b: *std.Build) void {
check_force_export.checkNext("name foo");
check_force_export.checkNext("kind function");
- const test_step = b.step("test", "Run linker test");
test_step.dependOn(&check_no_export.step);
test_step.dependOn(&check_dynamic_export.step);
test_step.dependOn(&check_force_export.step);
test/link/wasm/export-data/build.zig
@@ -2,7 +2,12 @@ const std = @import("std");
pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ b.default_step = test_step;
+
+ if (@import("builtin").os.tag == .windows) {
+ // TODO: Fix open handle in wasm-linker refraining rename from working on Windows.
+ return;
+ }
const lib = b.addSharedLibrary(.{
.name = "lib",
test/link/wasm/extern/build.zig
@@ -1,10 +1,22 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
+
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
const exe = b.addExecutable(.{
.name = "extern",
.root_source_file = .{ .path = "main.zig" },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = optimize,
.target = .{ .cpu_arch = .wasm32, .os_tag = .wasi },
});
exe.addCSourceFile("foo.c", &.{});
@@ -15,6 +27,5 @@ pub fn build(b: *std.Build) void {
run.skip_foreign_checks = true;
run.expectStdOutEqual("Result: 30");
- const test_step = b.step("test", "Run linker test");
test_step.dependOn(&run.step);
}
test/link/wasm/extern-mangle/build.zig
@@ -1,18 +1,24 @@
const std = @import("std");
pub fn build(b: *std.Build) void {
- const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
const lib = b.addSharedLibrary(.{
.name = "lib",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = optimize,
});
lib.import_symbols = true; // import `a` and `b`
lib.rdynamic = true; // export `foo`
- lib.install();
const check_lib = lib.checkObject(.wasm);
check_lib.checkStart("Section import");
test/link/wasm/function-table/build.zig
@@ -1,13 +1,20 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
- const optimize = b.standardOptimizeOption(.{});
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
- const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
const import_table = b.addSharedLibrary(.{
- .name = "lib",
+ .name = "import_table",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
.optimize = optimize,
@@ -17,7 +24,7 @@ pub fn build(b: *std.Build) void {
import_table.import_table = true;
const export_table = b.addSharedLibrary(.{
- .name = "lib",
+ .name = "export_table",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
.optimize = optimize,
@@ -27,7 +34,7 @@ pub fn build(b: *std.Build) void {
export_table.export_table = true;
const regular_table = b.addSharedLibrary(.{
- .name = "lib",
+ .name = "regular_table",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
.optimize = optimize,
test/link/wasm/infer-features/build.zig
@@ -1,12 +1,12 @@
const std = @import("std");
-pub fn build(b: *std.Build) void {
- const optimize = b.standardOptimizeOption(.{});
+pub const requires_stage2 = true;
+pub fn build(b: *std.Build) void {
// Wasm Object file which we will use to infer the features from
const c_obj = b.addObject(.{
.name = "c_obj",
- .optimize = optimize,
+ .optimize = .Debug,
.target = .{
.cpu_arch = .wasm32,
.cpu_model = .{ .explicit = &std.Target.wasm.cpu.bleeding_edge },
@@ -20,7 +20,7 @@ pub fn build(b: *std.Build) void {
const lib = b.addSharedLibrary(.{
.name = "lib",
.root_source_file = .{ .path = "main.zig" },
- .optimize = optimize,
+ .optimize = .Debug,
.target = .{
.cpu_arch = .wasm32,
.cpu_model = .{ .explicit = &std.Target.wasm.cpu.mvp },
@@ -45,4 +45,5 @@ pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Run linker test");
test_step.dependOn(&check.step);
+ b.default_step = test_step;
}
test/link/wasm/producers/build.zig
@@ -1,24 +1,31 @@
const std = @import("std");
const builtin = @import("builtin");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
- const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
+
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
const lib = b.addSharedLibrary(.{
.name = "lib",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = optimize,
});
lib.use_llvm = false;
lib.use_lld = false;
lib.strip = false;
lib.install();
- const zig_version = builtin.zig_version;
- var version_buf: [100]u8 = undefined;
- const version_fmt = std.fmt.bufPrint(&version_buf, "version {}", .{zig_version}) catch unreachable;
+ const version_fmt = "version " ++ builtin.zig_version_string;
const check_lib = lib.checkObject(.wasm);
check_lib.checkStart("name producers");
test/link/wasm/segments/build.zig
@@ -1,14 +1,23 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
- const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
+
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
const lib = b.addSharedLibrary(.{
.name = "lib",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = optimize,
});
lib.use_llvm = false;
lib.use_lld = false;
test/link/wasm/stack_pointer/build.zig
@@ -1,14 +1,23 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
- const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
+
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
const lib = b.addSharedLibrary(.{
.name = "lib",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = optimize,
});
lib.use_llvm = false;
lib.use_lld = false;
test/link/wasm/type/build.zig
@@ -1,14 +1,23 @@
const std = @import("std");
+pub const requires_stage2 = true;
+
pub fn build(b: *std.Build) void {
- const test_step = b.step("test", "Test");
- test_step.dependOn(b.getInstallStep());
+ const test_step = b.step("test", "Test it");
+ b.default_step = test_step;
+
+ add(b, test_step, .Debug);
+ add(b, test_step, .ReleaseFast);
+ add(b, test_step, .ReleaseSmall);
+ add(b, test_step, .ReleaseSafe);
+}
+fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.OptimizeMode) void {
const lib = b.addSharedLibrary(.{
.name = "lib",
.root_source_file = .{ .path = "lib.zig" },
.target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
- .optimize = b.standardOptimizeOption(.{}),
+ .optimize = optimize,
});
lib.use_llvm = false;
lib.use_lld = false;
test/link.zig
@@ -20,197 +20,179 @@ pub const cases = [_]Case{
.build_root = "test/link/interdependent_static_c_libs",
.import = @import("link/interdependent_static_c_libs/build.zig"),
},
-};
-//pub fn addCases(cases: *Standalone) void {
-// addWasmCases(cases);
-// addMachOCases(cases);
-//}
-//
-//fn addWasmCases(cases: *Standalone) void {
-// cases.addBuildFile("test/link/wasm/archive/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/basic-features/build.zig", .{
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/bss/build.zig", .{
-// .build_modes = false,
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/export/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// });
-//
-// // TODO: Fix open handle in wasm-linker refraining rename from working on Windows.
-// if (builtin.os.tag != .windows) {
-// cases.addBuildFile("test/link/wasm/export-data/build.zig", .{});
-// }
-//
-// cases.addBuildFile("test/link/wasm/extern/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// .use_emulation = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/extern-mangle/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/function-table/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/infer-features/build.zig", .{
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/producers/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/segments/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/stack_pointer/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// });
-//
-// cases.addBuildFile("test/link/wasm/type/build.zig", .{
-// .build_modes = true,
-// .requires_stage2 = true,
-// });
-//}
-//
-//fn addMachOCases(cases: *tests.StandaloneContext) void {
-// cases.addBuildFile("test/link/macho/bugs/13056/build.zig", .{
-// .build_modes = true,
-// .requires_macos_sdk = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/bugs/13457/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/dead_strip/build.zig", .{
-// .build_modes = false,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/dead_strip_dylibs/build.zig", .{
-// .build_modes = true,
-// .requires_macos_sdk = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/dylib/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/empty/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/entry/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/headerpad/build.zig", .{
-// .build_modes = true,
-// .requires_macos_sdk = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/linksection/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/needed_framework/build.zig", .{
-// .build_modes = true,
-// .requires_macos_sdk = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/needed_library/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/objc/build.zig", .{
-// .build_modes = true,
-// .requires_macos_sdk = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/objcpp/build.zig", .{
-// .build_modes = true,
-// .requires_macos_sdk = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/pagezero/build.zig", .{
-// .build_modes = false,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/search_strategy/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/stack_size/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/strict_validation/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/tls/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/unwind_info/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/uuid/build.zig", .{
-// .build_modes = false,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/weak_library/build.zig", .{
-// .build_modes = true,
-// .requires_symlinks = true,
-// });
-//
-// cases.addBuildFile("test/link/macho/weak_framework/build.zig", .{
-// .build_modes = true,
-// .requires_macos_sdk = true,
-// .requires_symlinks = true,
-// });
-//}
+ // WASM Cases
+ .{
+ .build_root = "test/link/wasm/archive",
+ .import = @import("link/wasm/archive/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/basic-features",
+ .import = @import("link/wasm/basic-features/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/bss",
+ .import = @import("link/wasm/bss/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/export",
+ .import = @import("link/wasm/export/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/export-data",
+ .import = @import("link/wasm/export-data/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/extern",
+ .import = @import("link/wasm/extern/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/extern-mangle",
+ .import = @import("link/wasm/extern-mangle/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/function-table",
+ .import = @import("link/wasm/function-table/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/infer-features",
+ .import = @import("link/wasm/infer-features/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/producers",
+ .import = @import("link/wasm/producers/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/segments",
+ .import = @import("link/wasm/segments/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/stack_pointer",
+ .import = @import("link/wasm/stack_pointer/build.zig"),
+ },
+ .{
+ .build_root = "test/link/wasm/type",
+ .import = @import("link/wasm/type/build.zig"),
+ },
+
+ // Mach-O Cases
+ // cases.addBuildFile("test/link/macho/bugs/13056/build.zig", .{
+ // .build_modes = true,
+ // .requires_macos_sdk = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/bugs/13457/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/dead_strip/build.zig", .{
+ // .build_modes = false,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/dead_strip_dylibs/build.zig", .{
+ // .build_modes = true,
+ // .requires_macos_sdk = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/dylib/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/empty/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/entry/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/headerpad/build.zig", .{
+ // .build_modes = true,
+ // .requires_macos_sdk = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/linksection/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/needed_framework/build.zig", .{
+ // .build_modes = true,
+ // .requires_macos_sdk = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/needed_library/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/objc/build.zig", .{
+ // .build_modes = true,
+ // .requires_macos_sdk = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/objcpp/build.zig", .{
+ // .build_modes = true,
+ // .requires_macos_sdk = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/pagezero/build.zig", .{
+ // .build_modes = false,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/search_strategy/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/stack_size/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/strict_validation/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/tls/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/unwind_info/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/uuid/build.zig", .{
+ // .build_modes = false,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/weak_library/build.zig", .{
+ // .build_modes = true,
+ // .requires_symlinks = true,
+ // });
+ //
+ // cases.addBuildFile("test/link/macho/weak_framework/build.zig", .{
+ // .build_modes = true,
+ // .requires_macos_sdk = true,
+ // .requires_symlinks = true,
+ // });
+};
const std = @import("std");
const builtin = @import("builtin");
test/tests.zig
@@ -599,18 +599,21 @@ pub fn addLinkTests(
_ = test_filter;
_ = optimize_modes;
_ = enable_macos_sdk;
- _ = omit_stage2;
_ = enable_symlinks_windows;
const step = b.step("test-link", "Run the linker tests");
inline for (link.cases) |link_test| {
- const dep = b.anonymousDependency(link_test.build_root, link_test.import, .{});
- const dep_step = dep.builder.default_step;
- assert(mem.startsWith(u8, dep.builder.dep_prefix, "test."));
- const dep_prefix_adjusted = dep.builder.dep_prefix["test.".len..];
- dep_step.name = b.fmt("{s}{s}", .{ dep_prefix_adjusted, dep_step.name });
- step.dependOn(dep_step);
+ const requires_stage2 = @hasDecl(link_test.import, "requires_stage2") and
+ link_test.import.requires_stage2;
+ if (!requires_stage2 or !omit_stage2) {
+ const dep = b.anonymousDependency(link_test.build_root, link_test.import, .{});
+ const dep_step = dep.builder.default_step;
+ assert(mem.startsWith(u8, dep.builder.dep_prefix, "test."));
+ const dep_prefix_adjusted = dep.builder.dep_prefix["test.".len..];
+ dep_step.name = b.fmt("{s}{s}", .{ dep_prefix_adjusted, dep_step.name });
+ step.dependOn(dep_step);
+ }
}
return step;