authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-03-26 08:47:48+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-03-26 08:48:38+01:00
log6bdb45beafbd72a4f70092257dd1e15a5c356558
tree1da015ff1eb9529788727343a7ad316210600254
parenta216c74131c439d7aa64b7a2a6be95aa753adb65
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

test: don't run test-zigc on targets that don't support libzigc


1 files changed, 29 insertions(+), 4 deletions(-)

test/tests.zig+29-4
......@@ -36,6 +36,25 @@ const TestTarget = struct {
3636 // invocation. This could be because of a slow backend, requiring a newer LLVM version, being
3737 // too niche, etc.
3838 extra_target: bool = false,
39
40 pub fn supportsModule(
41 self: *const TestTarget,
42 target: *const std.Build.ResolvedTarget,
43 name: []const u8,
44 ) bool {
45 if (mem.eql(u8, name, "zigc")) {
46 if (target.result.isMuslLibC()) return self.linkage == .static or (self.linkage == null and !target.query.isNative());
47 if (target.result.isMinGW()) return true;
48 if (target.result.isWasiLibC()) return true;
49 return false;
50 }
51 if (mem.eql(u8, name, "std")) {
52 if (target.result.cpu.arch.isSpirV()) return false;
53 return true;
54 }
55
56 return true;
57 }
3958};
4059
4160const test_targets = blk: {
......@@ -1463,7 +1482,6 @@ const test_targets = blk: {
14631482 // }) catch unreachable,
14641483 // .use_llvm = false,
14651484 // .use_lld = false,
1466 // .skip_modules = &.{ "c-import", "zigc", "std" },
14671485 //},
14681486
14691487 // WASI Targets
......@@ -2355,8 +2373,12 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
23552373 },
23562374 };
23572375 const resolved_target = b.resolveTargetQuery(test_target.target);
2358 const triple_txt = resolved_target.query.zigTriple(b.allocator) catch @panic("OOM");
2359 addOneModuleTest(b, step, test_target, &resolved_target, triple_txt, options);
2376
2377 if (test_target.supportsModule(&resolved_target, options.name)) {
2378 const triple_txt = resolved_target.query.zigTriple(b.allocator) catch @panic("OOM");
2379 addOneModuleTest(b, step, test_target, &resolved_target, triple_txt, options);
2380 }
2381
23602382 return step;
23612383 }
23622384
......@@ -2368,13 +2390,16 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
23682390 }
23692391
23702392 const resolved_target = b.resolveTargetQuery(test_target.target);
2371 const target = &resolved_target.result;
2393
2394 if (!test_target.supportsModule(&resolved_target, options.name)) continue;
23722395
23732396 if (!options.test_extra_targets and test_target.extra_target) continue;
23742397
23752398 if (options.skip_non_native and !test_target.target.isNative())
23762399 continue;
23772400
2401 const target = &resolved_target.result;
2402
23782403 if (options.skip_spirv and target.cpu.arch.isSpirV()) continue;
23792404 if (options.skip_wasm and target.cpu.arch.isWasm()) continue;
23802405