diff --git a/test/tests.zig b/test/tests.zig index ee12cc60fce65b16557d59d8094d2a77d18a2de2..f5245f4e4da6d8d0fa8559184a6037b799670dc8 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -20,6 +20,7 @@ pub const StackTracesContext = @import("src/StackTrace.zig"); pub const DebuggerContext = @import("src/Debugger.zig"); const TestTarget = struct { + linkage: ?std.builtin.LinkMode = null, target: std.Target.Query = .{}, optimize_mode: std.builtin.OptimizeMode = .Debug, link_libc: ?bool = null, @@ -30,8 +31,9 @@ const TestTarget = struct { strip: ?bool = null, skip_modules: []const []const u8 = &.{}, - // This is intended for targets that are known to be slow to compile, or require a newer LLVM - // version than is present on the CI machines, etc. + // This is intended for targets that, for any reason, shouldn't be run as part of a normal test + // invocation. This could be because of a slow backend, requiring a newer LLVM version, being + // too niche, etc. extra_target: bool = false, }; @@ -240,13 +242,32 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .x86_64, + .os_tag = .linux, + .abi = .musl, + }, + .linkage = .dynamic, + .link_libc = true, + }, + .{ + .target = .{ + .cpu_arch = .x86_64, + .os_tag = .linux, + .abi = .muslx32, + }, + .link_libc = true, + }, .{ .target = .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .muslx32, }, + .linkage = .dynamic, .link_libc = true, + .extra_target = true, }, .{ .target = .{ @@ -273,6 +294,17 @@ const test_targets = blk: { }, .link_libc = true, }, + // https://github.com/ziglang/zig/issues/7935 + // .{ + // .target = .{ + // .cpu_arch = .x86, + // .os_tag = .linux, + // .abi = .musl, + // }, + // .linkage = .dynamic, + // .link_libc = true, + // .extra_target = true, + // }, .{ .target = .{ .cpu_arch = .x86, @@ -297,6 +329,15 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .aarch64, + .os_tag = .linux, + .abi = .musl, + }, + .linkage = .dynamic, + .link_libc = true, + }, .{ .target = .{ .cpu_arch = .aarch64, @@ -329,6 +370,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .aarch64_be, + .os_tag = .linux, + .abi = .musl, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .aarch64_be, @@ -360,6 +411,17 @@ const test_targets = blk: { }, .link_libc = true, }, + // Crashes in weird ways when applying relocations. + // .{ + // .target = .{ + // .cpu_arch = .arm, + // .os_tag = .linux, + // .abi = .musleabi, + // }, + // .linkage = .dynamic, + // .link_libc = true, + // .extra_target = true, + // }, .{ .target = .{ .cpu_arch = .arm, @@ -368,6 +430,17 @@ const test_targets = blk: { }, .link_libc = true, }, + // Crashes in weird ways when applying relocations. + // .{ + // .target = .{ + // .cpu_arch = .arm, + // .os_tag = .linux, + // .abi = .musleabihf, + // }, + // .linkage = .dynamic, + // .link_libc = true, + // .extra_target = true, + // }, .{ .target = .{ .cpu_arch = .arm, @@ -407,6 +480,17 @@ const test_targets = blk: { }, .link_libc = true, }, + // Crashes in weird ways when applying relocations. + // .{ + // .target = .{ + // .cpu_arch = .armeb, + // .os_tag = .linux, + // .abi = .musleabi, + // }, + // .linkage = .dynamic, + // .link_libc = true, + // .extra_target = true, + // }, .{ .target = .{ .cpu_arch = .armeb, @@ -415,6 +499,17 @@ const test_targets = blk: { }, .link_libc = true, }, + // Crashes in weird ways when applying relocations. + // .{ + // .target = .{ + // .cpu_arch = .armeb, + // .os_tag = .linux, + // .abi = .musleabihf, + // }, + // .linkage = .dynamic, + // .link_libc = true, + // .extra_target = true, + // }, .{ .target = .{ .cpu_arch = .armeb, @@ -516,6 +611,19 @@ const test_targets = blk: { // https://github.com/llvm/llvm-project/pull/111217 .skip_modules = &.{"std"}, }, + // Currently crashes in qemu-hexagon. + // .{ + // .target = .{ + // .cpu_arch = .hexagon, + // .os_tag = .linux, + // .abi = .musl, + // }, + // .linkage = .dynamic, + // .link_libc = true, + // // https://github.com/llvm/llvm-project/pull/111217 + // .skip_modules = &.{"std"}, + // .extra_target = true, + // }, .{ .target = .{ @@ -534,6 +642,17 @@ const test_targets = blk: { .link_libc = true, .skip_modules = &.{"std"}, }, + .{ + .target = .{ + .cpu_arch = .loongarch64, + .os_tag = .linux, + .abi = .musl, + }, + .linkage = .dynamic, + .link_libc = true, + .skip_modules = &.{"std"}, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .loongarch64, @@ -566,6 +685,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .mips, + .os_tag = .linux, + .abi = .musleabi, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .mips, @@ -574,6 +703,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .mips, + .os_tag = .linux, + .abi = .musleabihf, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .mips, @@ -613,6 +752,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .mipsel, + .os_tag = .linux, + .abi = .musleabi, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .mipsel, @@ -621,6 +770,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .mipsel, + .os_tag = .linux, + .abi = .musleabihf, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .mipsel, @@ -653,6 +812,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .mips64, + .os_tag = .linux, + .abi = .muslabi64, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .mips64, @@ -677,6 +846,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .mips64el, + .os_tag = .linux, + .abi = .muslabi64, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .mips64el, @@ -708,13 +887,37 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .powerpc, + .os_tag = .linux, + .abi = .musleabi, + }, + .linkage = .dynamic, + .link_libc = true, + // https://github.com/ziglang/zig/issues/2256 + .skip_modules = &.{"std"}, + .extra_target = true, + }, + .{ + .target = .{ + .cpu_arch = .powerpc, + .os_tag = .linux, + .abi = .musleabihf, + }, + .link_libc = true, + }, .{ .target = .{ .cpu_arch = .powerpc, .os_tag = .linux, .abi = .musleabihf, }, + .linkage = .dynamic, .link_libc = true, + // https://github.com/ziglang/zig/issues/2256 + .skip_modules = &.{"std"}, + .extra_target = true, }, .{ .target = .{ @@ -752,6 +955,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .powerpc64, + .os_tag = .linux, + .abi = .musl, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, // Requires ELFv1 linker support. // .{ // .target = .{ @@ -776,6 +989,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .powerpc64le, + .os_tag = .linux, + .abi = .musl, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .powerpc64le, @@ -814,6 +1037,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .riscv32, + .os_tag = .linux, + .abi = .musl, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .riscv32, @@ -852,6 +1085,16 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .riscv64, + .os_tag = .linux, + .abi = .musl, + }, + .linkage = .dynamic, + .link_libc = true, + .extra_target = true, + }, .{ .target = .{ .cpu_arch = .riscv64, @@ -885,6 +1128,17 @@ const test_targets = blk: { }, .link_libc = true, }, + // Currently hangs in qemu-s390x. + // .{ + // .target = .{ + // .cpu_arch = .s390x, + // .os_tag = .linux, + // .abi = .musl, + // }, + // .linkage = .dynamic, + // .link_libc = true, + // .extra_target = true, + // }, .{ .target = .{ .cpu_arch = .s390x, @@ -1518,6 +1772,7 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step { .use_lld = test_target.use_lld, .zig_lib_dir = b.path("lib"), }); + these_tests.linkage = test_target.linkage; if (options.no_builtin) these_tests.no_builtin = true; if (options.build_options) |build_options| { these_tests.root_module.addOptions("build_options", build_options); @@ -1532,11 +1787,14 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step { else ""; const use_lld = if (test_target.use_lld == false) "-no-lld" else ""; + const linkage_name = if (test_target.linkage) |linkage| switch (linkage) { + inline else => |t| "-" ++ @tagName(t), + } else ""; const use_pic = if (test_target.pic == true) "-pic" else ""; for (options.include_paths) |include_path| these_tests.addIncludePath(b.path(include_path)); - const qualified_name = b.fmt("{s}-{s}-{s}-{s}{s}{s}{s}{s}{s}", .{ + const qualified_name = b.fmt("{s}-{s}-{s}-{s}{s}{s}{s}{s}{s}{s}", .{ options.name, triple_txt, model_txt, @@ -1545,6 +1803,7 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step { single_threaded_suffix, backend_suffix, use_lld, + linkage_name, use_pic, });