authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-04-25 11:41:38+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-04-25 21:54:48+02:00
log1af476d5d8568dac9d62983e3b619877a8fa22ac
treea879f7ee225f0eda76389c1dd999a3a841d32481
parentcc022047c338229549d6464098e6e7bff63097b0
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

behavior: re-enable a bunch of behavior tests that now pass

closes https://github.com/ziglang/zig/issues/9660 closes https://github.com/ziglang/zig/issues/21050 closes https://github.com/ziglang/zig/issues/21090 closes https://github.com/ziglang/zig/issues/21091

14 files changed, 6 insertions(+), 71 deletions(-)

test/behavior/align.zig-1
......@@ -317,7 +317,6 @@ test "@alignCast functions" {
317317
318318 // function alignment is a compile error on wasm
319319 if (native_arch.isWasm()) return error.SkipZigTest;
320 if (native_arch.isThumb()) return error.SkipZigTest;
321320
322321 try expect(fnExpectsOnly1(simple4) == 0x19);
323322}
test/behavior/asm.zig+1-4
......@@ -246,12 +246,9 @@ test "extern output types (x86_64)" {
246246 }
247247}
248248
249test "riscv abi register aliases as clobbers" {
249test "abi register aliases as clobbers (RISC-V)" {
250250 if (!builtin.target.cpu.arch.isRISCV()) return error.SkipZigTest;
251251 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
252 if (builtin.zig_backend == .stage2_c and builtin.os.tag == .windows) return error.SkipZigTest;
253
254 if (!comptime builtin.cpu.arch.isRISCV()) return error.SkipZigTest;
255252
256253 // Verify that ABI alias names are accepted as clobbers for RISC-V.
257254 asm volatile ("" ::: .{ .ra = true, .sp = true, .gp = true, .tp = true });
test/behavior/basic.zig+1-5
......@@ -1407,11 +1407,7 @@ test "allocation and looping over 3-byte integer" {
14071407 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
14081408 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
14091409 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1410
1411 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag.isDarwin()) {
1412 return error.SkipZigTest; // TODO
1413 }
1414 if (builtin.cpu.arch == .s390x and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; // TODO
1410 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag.isDarwin()) return error.SkipZigTest; // TODO
14151411
14161412 try expect(@sizeOf(u24) == 4);
14171413 try expect(@sizeOf([1]u24) == 4);
test/behavior/field_parent_ptr.zig-1
......@@ -1757,7 +1757,6 @@ test "@fieldParentPtr packed union" {
17571757 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
17581758 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
17591759 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1760 if (builtin.target.cpu.arch.endian() == .big) return error.SkipZigTest; // TODO
17611760
17621761 const C = packed union {
17631762 a: packed struct(u32) {
test/behavior/floatop.zig+4-10
......@@ -136,7 +136,6 @@ test "cmp f32" {
136136test "cmp f64" {
137137 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
138138 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
139 if (builtin.cpu.arch.isArm() and builtin.target.abi.float() == .soft) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21234
140139
141140 try testCmp(f64);
142141 try comptime testCmp(f64);
......@@ -155,7 +154,6 @@ test "cmp f128" {
155154test "cmp f80/c_longdouble" {
156155 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
157156 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
158 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
159157 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
160158 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
161159
......@@ -223,8 +221,7 @@ test "vector cmp f16" {
223221 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
224222 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
225223 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
226 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
227 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
224 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isArm()) return error.SkipZigTest;
228225 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
229226
230227 try testCmpVector(f16);
......@@ -236,8 +233,8 @@ test "vector cmp f32" {
236233 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
237234 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
238235 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
239 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
240 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
236 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isArm()) return error.SkipZigTest;
237 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
241238 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
242239
243240 try testCmpVector(f32);
......@@ -248,8 +245,6 @@ test "vector cmp f64" {
248245 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
249246 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
250247 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
251 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
252 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
253248 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
254249
255250 try testCmpVector(f64);
......@@ -262,8 +257,7 @@ test "vector cmp f128" {
262257 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
263258 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
264259 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
265 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
266 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
260 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .powerpc64le) return error.SkipZigTest;
267261 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
268262
269263 try testCmpVector(f128);
test/behavior/generics.zig-4
......@@ -305,8 +305,6 @@ test "generic function instantiation non-duplicates" {
305305 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
306306 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
307307
308 if (builtin.os.tag == .wasi) return error.SkipZigTest;
309
310308 const S = struct {
311309 fn copy(comptime T: type, dest: []T, source: []const T) void {
312310 @export(&foo, .{ .name = "test_generic_instantiation_non_dupe" });
......@@ -323,8 +321,6 @@ test "generic function instantiation non-duplicates" {
323321test "generic instantiation of tagged union with only one field" {
324322 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
325323
326 if (builtin.os.tag == .wasi) return error.SkipZigTest;
327
328324 const S = struct {
329325 const U = union(enum) {
330326 s: []const u8,
test/behavior/math.zig-2
......@@ -2425,7 +2425,6 @@ test "runtime comparison to NaN is comptime-known" {
24252425 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
24262426 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
24272427 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2428 if (builtin.cpu.arch.isArm() and builtin.target.abi.float() == .soft) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21234
24292428
24302429 const S = struct {
24312430 fn doTheTest(comptime F: type, x: F) void {
......@@ -2454,7 +2453,6 @@ test "runtime int comparison to inf is comptime-known" {
24542453 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
24552454 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
24562455 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2457 if (builtin.cpu.arch.isArm() and builtin.target.abi.float() == .soft) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21234
24582456
24592457 const S = struct {
24602458 fn doTheTest(comptime F: type, x: u32) void {
test/behavior/maximum_minimum.zig-2
......@@ -138,8 +138,6 @@ test "@min/max for floats" {
138138 };
139139
140140 inline for (.{ f16, f32, f64, f80, f128, c_longdouble }) |T| {
141 if (T == c_longdouble and builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21090
142
143141 try S.doTheTest(T);
144142 try comptime S.doTheTest(T);
145143 }
test/behavior/packed-struct.zig-1
......@@ -1196,7 +1196,6 @@ test "packed struct with signed field" {
11961196
11971197test "assign packed struct initialized with RLS to packed struct literal field" {
11981198 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1199 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isWasm()) return error.SkipZigTest;
12001199 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
12011200 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
12021201
test/behavior/saturating_arithmetic.zig-10
......@@ -147,11 +147,6 @@ test "saturating multiplication <= 32 bits" {
147147 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
148148 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
149149
150 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isWasm()) {
151 // https://github.com/ziglang/zig/issues/9660
152 return error.SkipZigTest;
153 }
154
155150 try testSatMul(u8, 0, maxInt(u8), 0);
156151 try testSatMul(u8, 1 << 7, 1 << 7, maxInt(u8));
157152 try testSatMul(u8, maxInt(u8) - 1, 2, maxInt(u8));
......@@ -246,11 +241,6 @@ test "saturating multiplication" {
246241 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
247242 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
248243
249 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isWasm()) {
250 // https://github.com/ziglang/zig/issues/9660
251 return error.SkipZigTest;
252 }
253
254244 const S = struct {
255245 fn doTheTest() !void {
256246 try testSatMul(i8, -3, 10, -30);
test/behavior/struct.zig-2
......@@ -404,7 +404,6 @@ test "packed struct 24bits" {
404404 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
405405 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
406406 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
407 if (builtin.cpu.arch.isArm()) return error.SkipZigTest; // TODO
408407 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
409408 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO
410409
......@@ -921,7 +920,6 @@ test "tuple assigned to variable" {
921920
922921test "comptime struct field" {
923922 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
924 if (builtin.cpu.arch.isArm()) return error.SkipZigTest; // TODO
925923
926924 const T = struct {
927925 a: i32,
test/behavior/union.zig-3
......@@ -1592,7 +1592,6 @@ test "memset packed union" {
15921592
15931593 try comptime S.doTheTest();
15941594
1595 if (builtin.cpu.arch.isWasm()) return error.SkipZigTest; // TODO
15961595 try S.doTheTest();
15971596}
15981597
......@@ -1750,8 +1749,6 @@ test "reinterpret packed union" {
17501749 try comptime S.doTheTest();
17511750
17521751 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1753 if (builtin.cpu.arch.isWasm()) return error.SkipZigTest; // TODO
1754 if (builtin.cpu.arch.endian() == .big) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21050
17551752 try S.doTheTest();
17561753}
17571754
test/behavior/vector.zig-23
......@@ -7,7 +7,6 @@ const expect = std.testing.expect;
77const expectEqual = std.testing.expectEqual;
88
99test "implicit cast vector to array - bool" {
10 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
1110 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1211
1312 const S = struct {
......@@ -622,11 +621,6 @@ test "vector bitwise not operator" {
622621 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
623622 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
624623
625 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) {
626 // https://github.com/ziglang/zig/issues/24061
627 return error.SkipZigTest;
628 }
629
630624 const S = struct {
631625 fn doTheTestNot(comptime T: type, x: @Vector(4, T)) !void {
632626 const y = ~x;
......@@ -660,11 +654,6 @@ test "vector boolean not operator" {
660654 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
661655 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
662656
663 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) {
664 // https://github.com/ziglang/zig/issues/24061
665 return error.SkipZigTest;
666 }
667
668657 const S = struct {
669658 fn doTheTestNot(comptime T: type, x: @Vector(4, T)) !void {
670659 const y = !x;
......@@ -759,7 +748,6 @@ test "vector reduce operation" {
759748 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
760749 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
761750 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
762 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21091
763751 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isSPARC()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/23719
764752
765753 const S = struct {
......@@ -1096,9 +1084,6 @@ test "saturating multiplication" {
10961084 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
10971085 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
10981086
1099 // TODO: once #9660 has been solved, remove this line
1100 if (builtin.target.cpu.arch.isWasm()) return error.SkipZigTest;
1101
11021087 const S = struct {
11031088 fn doTheTest() !void {
11041089 // Broken out to avoid https://github.com/ziglang/zig/issues/11251
......@@ -1165,7 +1150,6 @@ test "@addWithOverflow" {
11651150 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
11661151 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
11671152 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
1168 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
11691153
11701154 const S = struct {
11711155 fn doTheTest() !void {
......@@ -1213,7 +1197,6 @@ test "@subWithOverflow" {
12131197 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
12141198 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
12151199 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
1216 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
12171200
12181201 const S = struct {
12191202 fn doTheTest() !void {
......@@ -1244,7 +1227,6 @@ test "@mulWithOverflow" {
12441227 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
12451228 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
12461229 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1247 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
12481230
12491231 const S = struct {
12501232 fn doTheTest() !void {
......@@ -1265,7 +1247,6 @@ test "@shlWithOverflow" {
12651247 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
12661248 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
12671249 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1268 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
12691250
12701251 const S = struct {
12711252 fn doTheTest() !void {
......@@ -1347,7 +1328,6 @@ test "byte vector initialized in inline function" {
13471328 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
13481329 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
13491330 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1350 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
13511331 if (builtin.cpu.arch == .hexagon and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
13521332
13531333 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .x86_64 and comptime builtin.cpu.has(.x86, .avx512f)) {
......@@ -1463,7 +1443,6 @@ test "store packed vector element" {
14631443 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
14641444 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
14651445 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1466 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
14671446
14681447 var v = @Vector(4, u1){ 1, 1, 1, 1 };
14691448 try expectEqual(@Vector(4, u1){ 1, 1, 1, 1 }, v);
......@@ -1496,7 +1475,6 @@ test "store vector with memset" {
14961475 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; // TODO
14971476 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
14981477 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1499 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
15001478
15011479 var a: [5]@Vector(2, i1) = undefined;
15021480 var b: [5]@Vector(2, u2) = undefined;
......@@ -1596,7 +1574,6 @@ test "bitcast to vector with different child type" {
15961574 }
15971575 };
15981576
1599 // Originally reported at https://github.com/ziglang/zig/issues/8184
16001577 try S.doTheTest();
16011578 try comptime S.doTheTest();
16021579}
test/behavior/wrapping_arithmetic.zig-3
......@@ -82,9 +82,6 @@ test "wrapping multiplication" {
8282 if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
8383 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
8484
85 // TODO: once #9660 has been solved, remove this line
86 if (builtin.cpu.arch.isWasm()) return error.SkipZigTest;
87
8885 const S = struct {
8986 fn doTheTest() !void {
9087 try testWrapMul(i8, -3, 10, -30);