authorgravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2024-01-13 18:44:44+01:00
committergravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2024-02-04 19:09:33+01:00
log9fbba0e01a5e89ce4b4be940539b6b05a7fb3931
tree1d2fb941e27f7b6cfe7b541407b0971daf051d0e
parent1d548aa2aab472f14013e67e29c6d898a7b31998
signaturebadge-check Signed by SSH key SHA256:ZS52FNyUv2WUXvO4njmVaFVO46RHojFuOrxRc4LuKzg

spirv: update tests


27 files changed, 52 insertions(+), 26 deletions(-)

test/behavior/align.zig+3-4
...@@ -18,7 +18,6 @@ test "global variable alignment" {...@@ -18,7 +18,6 @@ test "global variable alignment" {
18test "large alignment of local constant" {18test "large alignment of local constant" {
19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
20 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;20 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
21 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // flaky
2221
23 const x: f32 align(128) = 12.34;22 const x: f32 align(128) = 12.34;
24 try std.testing.expect(@intFromPtr(&x) % 128 == 0);23 try std.testing.expect(@intFromPtr(&x) % 128 == 0);
...@@ -27,7 +26,7 @@ test "large alignment of local constant" {...@@ -27,7 +26,7 @@ test "large alignment of local constant" {
27test "slicing array of length 1 can not assume runtime index is always zero" {26test "slicing array of length 1 can not assume runtime index is always zero" {
28 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO27 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
29 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO28 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
30 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;29 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // flaky
3130
32 var runtime_index: usize = 1;31 var runtime_index: usize = 1;
33 _ = &runtime_index;32 _ = &runtime_index;
...@@ -512,7 +511,7 @@ test "struct field explicit alignment" {...@@ -512,7 +511,7 @@ test "struct field explicit alignment" {
512 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;511 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
513 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;512 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
514 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO513 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
515 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;514 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // flaky
516515
517 const S = struct {516 const S = struct {
518 const Node = struct {517 const Node = struct {
...@@ -581,7 +580,7 @@ test "comptime alloc alignment" {...@@ -581,7 +580,7 @@ test "comptime alloc alignment" {
581 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO580 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
582 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO581 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
583 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO582 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
584 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;583 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // flaky
585 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch == .x86) {584 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch == .x86) {
586 // https://github.com/ziglang/zig/issues/18034585 // https://github.com/ziglang/zig/issues/18034
587 return error.SkipZigTest;586 return error.SkipZigTest;
test/behavior/array.zig-2
...@@ -768,8 +768,6 @@ test "array init with no result pointer sets field result types" {...@@ -768,8 +768,6 @@ test "array init with no result pointer sets field result types" {
768}768}
769769
770test "runtime side-effects in comptime-known array init" {770test "runtime side-effects in comptime-known array init" {
771 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
772
773 var side_effects: u4 = 0;771 var side_effects: u4 = 0;
774 const init = [4]u4{772 const init = [4]u4{
775 blk: {773 blk: {
test/behavior/basic.zig+1
...@@ -1222,6 +1222,7 @@ test "integer compare" {...@@ -1222,6 +1222,7 @@ test "integer compare" {
12221222
1223test "reference to inferred local variable works as expected" {1223test "reference to inferred local variable works as expected" {
1224 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1224 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1225 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12251226
1226 const Crasher = struct {1227 const Crasher = struct {
1227 lets_crash: u64 = 0,1228 lets_crash: u64 = 0,
test/behavior/builtin_functions_returning_void_or_noreturn.zig+1
...@@ -11,6 +11,7 @@ test {...@@ -11,6 +11,7 @@ test {
11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
12 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO12 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
13 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO13 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO
14 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1415
15 var val: u8 = undefined;16 var val: u8 = undefined;
16 try testing.expectEqual({}, @atomicStore(u8, &val, 0, .Unordered));17 try testing.expectEqual({}, @atomicStore(u8, &val, 0, .Unordered));
test/behavior/cast.zig+1-6
...@@ -759,6 +759,7 @@ test "peer type resolution: error union and error set" {...@@ -759,6 +759,7 @@ test "peer type resolution: error union and error set" {
759 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO759 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
760 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO760 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
761 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO761 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
762 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
762763
763 const a: error{Three} = undefined;764 const a: error{Three} = undefined;
764 const b: error{ One, Two }!u32 = undefined;765 const b: error{ One, Two }!u32 = undefined;
...@@ -1730,7 +1731,6 @@ test "peer type resolution: array with smaller child type and vector with larger...@@ -1730,7 +1731,6 @@ test "peer type resolution: array with smaller child type and vector with larger
1730 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1731 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1731 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO1732 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1732 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1733 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1733 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
17341734
1735 var arr: [2]u8 = .{ 0, 1 };1735 var arr: [2]u8 = .{ 0, 1 };
1736 var vec: @Vector(2, u64) = .{ 2, 3 };1736 var vec: @Vector(2, u64) = .{ 2, 3 };
...@@ -2318,7 +2318,6 @@ test "@floatCast on vector" {...@@ -2318,7 +2318,6 @@ test "@floatCast on vector" {
2318 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2318 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2319 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2319 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2320 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2320 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2321 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2322 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf) return error.SkipZigTest;2321 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf) return error.SkipZigTest;
23232322
2324 const S = struct {2323 const S = struct {
...@@ -2339,7 +2338,6 @@ test "@ptrFromInt on vector" {...@@ -2339,7 +2338,6 @@ test "@ptrFromInt on vector" {
2339 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2338 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2340 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2339 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2341 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2340 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2342 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
23432341
2344 const S = struct {2342 const S = struct {
2345 fn doTheTest() !void {2343 fn doTheTest() !void {
...@@ -2363,7 +2361,6 @@ test "@intFromPtr on vector" {...@@ -2363,7 +2361,6 @@ test "@intFromPtr on vector" {
2363 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2361 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2364 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2362 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2365 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2363 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2366 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
23672364
2368 const S = struct {2365 const S = struct {
2369 fn doTheTest() !void {2366 fn doTheTest() !void {
...@@ -2387,7 +2384,6 @@ test "@floatFromInt on vector" {...@@ -2387,7 +2384,6 @@ test "@floatFromInt on vector" {
2387 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2384 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2388 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2385 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2389 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2386 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2390 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2391 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf) return error.SkipZigTest;2387 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf) return error.SkipZigTest;
23922388
2393 const S = struct {2389 const S = struct {
...@@ -2408,7 +2404,6 @@ test "@intFromFloat on vector" {...@@ -2408,7 +2404,6 @@ test "@intFromFloat on vector" {
2408 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2404 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2409 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2405 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2410 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2406 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2411 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
24122407
2413 const S = struct {2408 const S = struct {
2414 fn doTheTest() !void {2409 fn doTheTest() !void {
test/behavior/destructure.zig+1
...@@ -1,4 +1,5 @@...@@ -1,4 +1,5 @@
1const std = @import("std");1const std = @import("std");
2const builtin = @import("builtin");
2const assert = std.debug.assert;3const assert = std.debug.assert;
3const expect = std.testing.expect;4const expect = std.testing.expect;
45
test/behavior/duplicated_test_names.zig+2
...@@ -15,5 +15,7 @@ comptime {...@@ -15,5 +15,7 @@ comptime {
15test "thingy" {}15test "thingy" {}
1616
17test thingy {17test thingy {
18 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
19
18 if (thingy(1, 2) != 3) unreachable;20 if (thingy(1, 2) != 3) unreachable;
19}21}
test/behavior/eval.zig-1
...@@ -489,7 +489,6 @@ test "comptime bitwise operators" {...@@ -489,7 +489,6 @@ test "comptime bitwise operators" {
489489
490test "comptime shlWithOverflow" {490test "comptime shlWithOverflow" {
491 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO491 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
492 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
493492
494 const ct_shifted = @shlWithOverflow(~@as(u64, 0), 16)[0];493 const ct_shifted = @shlWithOverflow(~@as(u64, 0), 16)[0];
495 var a = ~@as(u64, 0);494 var a = ~@as(u64, 0);
test/behavior/export_builtin.zig-3
...@@ -6,7 +6,6 @@ test "exporting enum type and value" {...@@ -6,7 +6,6 @@ test "exporting enum type and value" {
6 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
8 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
109
11 const S = struct {10 const S = struct {
12 const E = enum(c_int) { one, two };11 const E = enum(c_int) { one, two };
...@@ -22,7 +21,6 @@ test "exporting with internal linkage" {...@@ -22,7 +21,6 @@ test "exporting with internal linkage" {
22 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;21 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
23 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;22 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
24 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;23 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
25 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2624
27 const S = struct {25 const S = struct {
28 fn foo() callconv(.C) void {}26 fn foo() callconv(.C) void {}
...@@ -37,7 +35,6 @@ test "exporting using field access" {...@@ -37,7 +35,6 @@ test "exporting using field access" {
37 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;35 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
38 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;36 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
39 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;37 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
40 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
4138
42 const S = struct {39 const S = struct {
43 const Inner = struct {40 const Inner = struct {
test/behavior/export_keyword.zig+1
...@@ -23,6 +23,7 @@ const PackedUnion = packed union {...@@ -23,6 +23,7 @@ const PackedUnion = packed union {
2323
24test "packed struct, enum, union parameters in extern function" {24test "packed struct, enum, union parameters in extern function" {
25 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO25 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
26 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2627
27 testPackedStuff(&(PackedStruct{28 testPackedStuff(&(PackedStruct{
28 .a = 1,29 .a = 1,
test/behavior/extern.zig+2
...@@ -5,6 +5,7 @@ const expect = std.testing.expect;...@@ -5,6 +5,7 @@ const expect = std.testing.expect;
5test "anyopaque extern symbol" {5test "anyopaque extern symbol" {
6 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
8 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
89
9 const a = @extern(*anyopaque, .{ .name = "a_mystery_symbol" });10 const a = @extern(*anyopaque, .{ .name = "a_mystery_symbol" });
10 const b: *i32 = @alignCast(@ptrCast(a));11 const b: *i32 = @alignCast(@ptrCast(a));
...@@ -17,6 +18,7 @@ test "function extern symbol" {...@@ -17,6 +18,7 @@ test "function extern symbol" {
17 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;18 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
18 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;19 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
19 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf) return error.SkipZigTest;20 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf) return error.SkipZigTest;
21 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2022
21 const a = @extern(*const fn () callconv(.C) i32, .{ .name = "a_mystery_function" });23 const a = @extern(*const fn () callconv(.C) i32, .{ .name = "a_mystery_function" });
22 try expect(a() == 4567);24 try expect(a() == 4567);
test/behavior/for.zig+1
...@@ -456,6 +456,7 @@ test "inline for on tuple pointer" {...@@ -456,6 +456,7 @@ test "inline for on tuple pointer" {
456 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO456 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
457 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO457 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
458 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO458 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
459 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
459460
460 const S = struct { u32, u32, u32 };461 const S = struct { u32, u32, u32 };
461 var s: S = .{ 100, 200, 300 };462 var s: S = .{ 100, 200, 300 };
test/behavior/globals.zig-2
...@@ -8,7 +8,6 @@ test "store to global array" {...@@ -8,7 +8,6 @@ test "store to global array" {
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;10 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
11 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1211
13 try expect(pos[1] == 0.0);12 try expect(pos[1] == 0.0);
14 pos = [2]f32{ 0.0, 1.0 };13 pos = [2]f32{ 0.0, 1.0 };
...@@ -21,7 +20,6 @@ test "store to global vector" {...@@ -21,7 +20,6 @@ test "store to global vector" {
21 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;20 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
22 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
23 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;22 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
24 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2523
26 try expect(vpos[1] == 0.0);24 try expect(vpos[1] == 0.0);
27 vpos = @Vector(2, f32){ 0.0, 1.0 };25 vpos = @Vector(2, f32){ 0.0, 1.0 };
test/behavior/hasdecl.zig+5
...@@ -1,4 +1,5 @@...@@ -1,4 +1,5 @@
1const std = @import("std");1const std = @import("std");
2const builtin = @import("builtin");
2const expect = std.testing.expect;3const expect = std.testing.expect;
34
4const Foo = @import("hasdecl/foo.zig");5const Foo = @import("hasdecl/foo.zig");
...@@ -11,6 +12,8 @@ const Bar = struct {...@@ -11,6 +12,8 @@ const Bar = struct {
11};12};
1213
13test "@hasDecl" {14test "@hasDecl" {
15 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
16
14 try expect(@hasDecl(Foo, "public_thing"));17 try expect(@hasDecl(Foo, "public_thing"));
15 try expect(!@hasDecl(Foo, "private_thing"));18 try expect(!@hasDecl(Foo, "private_thing"));
16 try expect(!@hasDecl(Foo, "no_thing"));19 try expect(!@hasDecl(Foo, "no_thing"));
...@@ -21,6 +24,8 @@ test "@hasDecl" {...@@ -21,6 +24,8 @@ test "@hasDecl" {
21}24}
2225
23test "@hasDecl using a sliced string literal" {26test "@hasDecl using a sliced string literal" {
27 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
28
24 try expect(@hasDecl(@This(), "std") == true);29 try expect(@hasDecl(@This(), "std") == true);
25 try expect(@hasDecl(@This(), "std"[0..0]) == false);30 try expect(@hasDecl(@This(), "std"[0..0]) == false);
26 try expect(@hasDecl(@This(), "std"[0..1]) == false);31 try expect(@hasDecl(@This(), "std"[0..1]) == false);
test/behavior/import.zig+9
...@@ -1,17 +1,24 @@...@@ -1,17 +1,24 @@
1const std = @import("std");1const std = @import("std");
2const builtin = @import("builtin");
2const expect = std.testing.expect;3const expect = std.testing.expect;
3const expectEqual = std.testing.expectEqual;4const expectEqual = std.testing.expectEqual;
4const a_namespace = @import("import/a_namespace.zig");5const a_namespace = @import("import/a_namespace.zig");
56
6test "call fn via namespace lookup" {7test "call fn via namespace lookup" {
8 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9
7 try expect(@as(i32, 1234) == a_namespace.foo());10 try expect(@as(i32, 1234) == a_namespace.foo());
8}11}
912
10test "importing the same thing gives the same import" {13test "importing the same thing gives the same import" {
14 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
15
11 try expect(@import("std") == @import("std"));16 try expect(@import("std") == @import("std"));
12}17}
1318
14test "import in non-toplevel scope" {19test "import in non-toplevel scope" {
20 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
21
15 const S = struct {22 const S = struct {
16 usingnamespace @import("import/a_namespace.zig");23 usingnamespace @import("import/a_namespace.zig");
17 };24 };
...@@ -19,5 +26,7 @@ test "import in non-toplevel scope" {...@@ -19,5 +26,7 @@ test "import in non-toplevel scope" {
19}26}
2027
21test "import empty file" {28test "import empty file" {
29 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
30
22 _ = @import("import/empty.zig");31 _ = @import("import/empty.zig");
23}32}
test/behavior/int_div.zig+2
...@@ -6,6 +6,7 @@ test "integer division" {...@@ -6,6 +6,7 @@ test "integer division" {
6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
8 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
910
10 try testDivision();11 try testDivision();
11 try comptime testDivision();12 try comptime testDivision();
...@@ -96,6 +97,7 @@ test "large integer division" {...@@ -96,6 +97,7 @@ test "large integer division" {
96 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;97 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
97 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;98 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
98 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;99 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
100 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
99101
100 {102 {
101 var numerator: u256 = 99999999999999999997315645440;103 var numerator: u256 = 99999999999999999997315645440;
test/behavior/math.zig-3
...@@ -602,7 +602,6 @@ fn testUnsignedNegationWrappingEval(x: u16) !void {...@@ -602,7 +602,6 @@ fn testUnsignedNegationWrappingEval(x: u16) !void {
602test "negation wrapping" {602test "negation wrapping" {
603 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO603 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
604 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO604 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
605 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
606605
607 try expectEqual(@as(u1, 1), negateWrap(u1, 1));606 try expectEqual(@as(u1, 1), negateWrap(u1, 1));
608}607}
...@@ -770,7 +769,6 @@ test "@addWithOverflow" {...@@ -770,7 +769,6 @@ test "@addWithOverflow" {
770test "small int addition" {769test "small int addition" {
771 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO770 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
772 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO771 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
773 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
774772
775 var x: u2 = 0;773 var x: u2 = 0;
776 try expect(x == 0);774 try expect(x == 0);
...@@ -1564,7 +1562,6 @@ test "vector integer addition" {...@@ -1564,7 +1562,6 @@ test "vector integer addition" {
1564 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1562 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1565 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1563 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1566 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1564 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1567 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
15681565
1569 const S = struct {1566 const S = struct {
1570 fn doTheTest() !void {1567 fn doTheTest() !void {
test/behavior/namespace_depends_on_compile_var.zig+2
...@@ -3,6 +3,8 @@ const builtin = @import("builtin");...@@ -3,6 +3,8 @@ const builtin = @import("builtin");
3const expect = std.testing.expect;3const expect = std.testing.expect;
44
5test "namespace depends on compile var" {5test "namespace depends on compile var" {
6 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
7
6 if (some_namespace.a_bool) {8 if (some_namespace.a_bool) {
7 try expect(some_namespace.a_bool);9 try expect(some_namespace.a_bool);
8 } else {10 } else {
test/behavior/optional.zig+1
...@@ -451,6 +451,7 @@ test "Optional slice passed to function" {...@@ -451,6 +451,7 @@ test "Optional slice passed to function" {
451 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO451 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
452 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO452 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
453 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO453 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
454 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
454455
455 const S = struct {456 const S = struct {
456 fn foo(a: ?[]const u8) !void {457 fn foo(a: ?[]const u8) !void {
test/behavior/pub_enum.zig+4
...@@ -3,6 +3,8 @@ const other = @import("pub_enum/other.zig");...@@ -3,6 +3,8 @@ const other = @import("pub_enum/other.zig");
3const expect = @import("std").testing.expect;3const expect = @import("std").testing.expect;
44
5test "pub enum" {5test "pub enum" {
6 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
7
6 try pubEnumTest(other.APubEnum.Two);8 try pubEnumTest(other.APubEnum.Two);
7}9}
8fn pubEnumTest(foo: other.APubEnum) !void {10fn pubEnumTest(foo: other.APubEnum) !void {
...@@ -10,5 +12,7 @@ fn pubEnumTest(foo: other.APubEnum) !void {...@@ -10,5 +12,7 @@ fn pubEnumTest(foo: other.APubEnum) !void {
10}12}
1113
12test "cast with imported symbol" {14test "cast with imported symbol" {
15 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
16
13 try expect(@as(other.size_t, 42) == 42);17 try expect(@as(other.size_t, 42) == 42);
14}18}
test/behavior/slice_sentinel_comptime.zig+2
...@@ -1,3 +1,5 @@...@@ -1,3 +1,5 @@
1const builtin = @import("builtin");
2
1test "comptime slice-sentinel in bounds (unterminated)" {3test "comptime slice-sentinel in bounds (unterminated)" {
2 // array4 // array
3 comptime {5 comptime {
test/behavior/struct.zig+2-2
...@@ -1744,8 +1744,6 @@ test "struct init with no result pointer sets field result types" {...@@ -1744,8 +1744,6 @@ test "struct init with no result pointer sets field result types" {
1744}1744}
17451745
1746test "runtime side-effects in comptime-known struct init" {1746test "runtime side-effects in comptime-known struct init" {
1747 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1748
1749 var side_effects: u4 = 0;1747 var side_effects: u4 = 0;
1750 const S = struct { a: u4, b: u4, c: u4, d: u4 };1748 const S = struct { a: u4, b: u4, c: u4, d: u4 };
1751 const init = S{1749 const init = S{
...@@ -2056,6 +2054,8 @@ test "struct field default value is a call" {...@@ -2056,6 +2054,8 @@ test "struct field default value is a call" {
2056}2054}
20572055
2058test "aggregate initializers should allow initializing comptime fields, verifying equality" {2056test "aggregate initializers should allow initializing comptime fields, verifying equality" {
2057 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2058
2059 var x: u32 = 15;2059 var x: u32 = 15;
2060 _ = &x;2060 _ = &x;
2061 const T = @TypeOf(.{ @as(i32, -1234), @as(u32, 5678), x });2061 const T = @TypeOf(.{ @as(i32, -1234), @as(u32, 5678), x });
test/behavior/switch_on_captured_error.zig+4
...@@ -5,6 +5,8 @@ const expectError = std.testing.expectError;...@@ -5,6 +5,8 @@ const expectError = std.testing.expectError;
5const expectEqual = std.testing.expectEqual;5const expectEqual = std.testing.expectEqual;
66
7test "switch on error union catch capture" {7test "switch on error union catch capture" {
8 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9
8 const S = struct {10 const S = struct {
9 const Error = error{ A, B, C };11 const Error = error{ A, B, C };
10 fn doTheTest() !void {12 fn doTheTest() !void {
...@@ -257,6 +259,8 @@ test "switch on error union catch capture" {...@@ -257,6 +259,8 @@ test "switch on error union catch capture" {
257}259}
258260
259test "switch on error union if else capture" {261test "switch on error union if else capture" {
262 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
263
260 const S = struct {264 const S = struct {
261 const Error = error{ A, B, C };265 const Error = error{ A, B, C };
262 fn doTheTest() !void {266 fn doTheTest() !void {
test/behavior/tuple.zig-1
...@@ -483,7 +483,6 @@ test "empty tuple type" {...@@ -483,7 +483,6 @@ test "empty tuple type" {
483483
484test "tuple with comptime fields with non empty initializer" {484test "tuple with comptime fields with non empty initializer" {
485 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO485 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
486 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
487486
488 const a: struct { comptime comptime_int = 0 } = .{0};487 const a: struct { comptime comptime_int = 0 } = .{0};
489 _ = a;488 _ = a;
test/behavior/union.zig+2-1
...@@ -1119,6 +1119,7 @@ test "@unionInit on union with tag but no fields" {...@@ -1119,6 +1119,7 @@ test "@unionInit on union with tag but no fields" {
1119 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1119 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1120 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1120 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1121 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1121 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1122 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11221123
1123 const S = struct {1124 const S = struct {
1124 const Type = enum(u8) { no_op = 105 };1125 const Type = enum(u8) { no_op = 105 };
...@@ -2059,7 +2060,6 @@ test "store of comptime reinterpreted memory to packed union" {...@@ -2059,7 +2060,6 @@ test "store of comptime reinterpreted memory to packed union" {
20592060
2060test "union field is a pointer to an aligned version of itself" {2061test "union field is a pointer to an aligned version of itself" {
2061 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2062 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2062 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
20632063
2064 const E = union {2064 const E = union {
2065 next: *align(1) @This(),2065 next: *align(1) @This(),
...@@ -2181,6 +2181,7 @@ test "create union(enum) from other union(enum)" {...@@ -2181,6 +2181,7 @@ test "create union(enum) from other union(enum)" {
2181 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO2181 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
2182 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2182 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2183 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2183 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2184 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
21842185
2185 const string = "hello world";2186 const string = "hello world";
2186 const TempRef = struct {2187 const TempRef = struct {
test/behavior/vector.zig-1
...@@ -1060,7 +1060,6 @@ test "@addWithOverflow" {...@@ -1060,7 +1060,6 @@ test "@addWithOverflow" {
1060 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1060 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1061 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1061 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1062 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1062 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1063 // if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10641063
1065 const S = struct {1064 const S = struct {
1066 fn doTheTest() !void {1065 fn doTheTest() !void {
test/behavior/wrapping_arithmetic.zig+6
...@@ -5,6 +5,8 @@ const maxInt = std.math.maxInt;...@@ -5,6 +5,8 @@ const maxInt = std.math.maxInt;
5const expect = std.testing.expect;5const expect = std.testing.expect;
66
7test "wrapping add" {7test "wrapping add" {
8 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9
8 const S = struct {10 const S = struct {
9 fn doTheTest() !void {11 fn doTheTest() !void {
10 try testWrapAdd(i8, -3, 10, 7);12 try testWrapAdd(i8, -3, 10, 7);
...@@ -40,6 +42,8 @@ test "wrapping add" {...@@ -40,6 +42,8 @@ test "wrapping add" {
40}42}
4143
42test "wrapping subtraction" {44test "wrapping subtraction" {
45 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
46
43 const S = struct {47 const S = struct {
44 fn doTheTest() !void {48 fn doTheTest() !void {
45 try testWrapSub(i8, -3, 10, -13);49 try testWrapSub(i8, -3, 10, -13);
...@@ -73,6 +77,8 @@ test "wrapping subtraction" {...@@ -73,6 +77,8 @@ test "wrapping subtraction" {
73}77}
7478
75test "wrapping multiplication" {79test "wrapping multiplication" {
80 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
81
76 // TODO: once #9660 has been solved, remove this line82 // TODO: once #9660 has been solved, remove this line
77 if (builtin.cpu.arch == .wasm32) return error.SkipZigTest;83 if (builtin.cpu.arch == .wasm32) return error.SkipZigTest;
7884