commit 6bdb45beafbd72a4f70092257dd1e15a5c356558 (tree)
parent a216c74131c439d7aa64b7a2a6be95aa753adb65
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Thu, 26 Mar 2026 08:47:48 +0100
test: don't run test-zigc on targets that don't support libzigc
Diffstat:
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/test/tests.zig b/test/tests.zig
@@ -36,6 +36,25 @@ const TestTarget = struct {
// invocation. This could be because of a slow backend, requiring a newer LLVM version, being
// too niche, etc.
extra_target: bool = false,
+
+ pub fn supportsModule(
+ self: *const TestTarget,
+ target: *const std.Build.ResolvedTarget,
+ name: []const u8,
+ ) bool {
+ if (mem.eql(u8, name, "zigc")) {
+ if (target.result.isMuslLibC()) return self.linkage == .static or (self.linkage == null and !target.query.isNative());
+ if (target.result.isMinGW()) return true;
+ if (target.result.isWasiLibC()) return true;
+ return false;
+ }
+ if (mem.eql(u8, name, "std")) {
+ if (target.result.cpu.arch.isSpirV()) return false;
+ return true;
+ }
+
+ return true;
+ }
};
const test_targets = blk: {
@@ -1463,7 +1482,6 @@ const test_targets = blk: {
// }) catch unreachable,
// .use_llvm = false,
// .use_lld = false,
- // .skip_modules = &.{ "c-import", "zigc", "std" },
//},
// WASI Targets
@@ -2355,8 +2373,12 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
},
};
const resolved_target = b.resolveTargetQuery(test_target.target);
- const triple_txt = resolved_target.query.zigTriple(b.allocator) catch @panic("OOM");
- addOneModuleTest(b, step, test_target, &resolved_target, triple_txt, options);
+
+ if (test_target.supportsModule(&resolved_target, options.name)) {
+ const triple_txt = resolved_target.query.zigTriple(b.allocator) catch @panic("OOM");
+ addOneModuleTest(b, step, test_target, &resolved_target, triple_txt, options);
+ }
+
return step;
}
@@ -2368,13 +2390,16 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
}
const resolved_target = b.resolveTargetQuery(test_target.target);
- const target = &resolved_target.result;
+
+ if (!test_target.supportsModule(&resolved_target, options.name)) continue;
if (!options.test_extra_targets and test_target.extra_target) continue;
if (options.skip_non_native and !test_target.target.isNative())
continue;
+ const target = &resolved_target.result;
+
if (options.skip_spirv and target.cpu.arch.isSpirV()) continue;
if (options.skip_wasm and target.cpu.arch.isWasm()) continue;