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 {...@@ -36,6 +36,25 @@ const TestTarget = struct {
36 // invocation. This could be because of a slow backend, requiring a newer LLVM version, being36 // invocation. This could be because of a slow backend, requiring a newer LLVM version, being
37 // too niche, etc.37 // too niche, etc.
38 extra_target: bool = false,38 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 }
39};58};
4059
41const test_targets = blk: {60const test_targets = blk: {
...@@ -1463,7 +1482,6 @@ const test_targets = blk: {...@@ -1463,7 +1482,6 @@ const test_targets = blk: {
1463 // }) catch unreachable,1482 // }) catch unreachable,
1464 // .use_llvm = false,1483 // .use_llvm = false,
1465 // .use_lld = false,1484 // .use_lld = false,
1466 // .skip_modules = &.{ "c-import", "zigc", "std" },
1467 //},1485 //},
14681486
1469 // WASI Targets1487 // WASI Targets
...@@ -2355,8 +2373,12 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {...@@ -2355,8 +2373,12 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
2355 },2373 },
2356 };2374 };
2357 const resolved_target = b.resolveTargetQuery(test_target.target);2375 const resolved_target = b.resolveTargetQuery(test_target.target);
2358 const triple_txt = resolved_target.query.zigTriple(b.allocator) catch @panic("OOM");2376
2359 addOneModuleTest(b, step, test_target, &resolved_target, triple_txt, options);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
2360 return step;2382 return step;
2361 }2383 }
23622384
...@@ -2368,13 +2390,16 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {...@@ -2368,13 +2390,16 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
2368 }2390 }
23692391
2370 const resolved_target = b.resolveTargetQuery(test_target.target);2392 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
2373 if (!options.test_extra_targets and test_target.extra_target) continue;2396 if (!options.test_extra_targets and test_target.extra_target) continue;
23742397
2375 if (options.skip_non_native and !test_target.target.isNative())2398 if (options.skip_non_native and !test_target.target.isNative())
2376 continue;2399 continue;
23772400
2401 const target = &resolved_target.result;
2402
2378 if (options.skip_spirv and target.cpu.arch.isSpirV()) continue;2403 if (options.skip_spirv and target.cpu.arch.isSpirV()) continue;
2379 if (options.skip_wasm and target.cpu.arch.isWasm()) continue;2404 if (options.skip_wasm and target.cpu.arch.isWasm()) continue;
23802405