| author | |
| committer | |
| log | 6322dbd5bf112356efdf2ec64c5471d6e8586a74 |
| tree | d6fd887508e79e51e5e142b20099cc6ad29a654b |
| parent | 0adcfd60f4fcfd01c74a6477cbcef187ce06f533 |
| parent | ff06de4c897e0b51c4d1f044746d43397500be69 |
| signature |
* compiler: test runner: fix tests never fails on crippled architectures
* riscv64: skip failing tests
* riscv64: enable test summary printing18 files changed, 37 insertions(+), 2 deletions(-)
lib/compiler/test_runner.zig+2-1| ... | @@ -292,6 +292,7 @@ pub fn mainSimple() anyerror!void { | ... | @@ -292,6 +292,7 @@ pub fn mainSimple() anyerror!void { |
| 292 | }; | 292 | }; |
| 293 | // is the backend capable of using std.fmt.format to print a summary at the end? | 293 | // is the backend capable of using std.fmt.format to print a summary at the end? |
| 294 | const print_summary = switch (builtin.zig_backend) { | 294 | const print_summary = switch (builtin.zig_backend) { |
| 295 | .stage2_riscv64 => true, | ||
| 295 | else => false, | 296 | else => false, |
| 296 | }; | 297 | }; |
| 297 | 298 | ||
| ... | @@ -309,7 +310,7 @@ pub fn mainSimple() anyerror!void { | ... | @@ -309,7 +310,7 @@ pub fn mainSimple() anyerror!void { |
| 309 | stderr.writeAll("... ") catch {}; | 310 | stderr.writeAll("... ") catch {}; |
| 310 | stderr.writeAll("PASS\n") catch {}; | 311 | stderr.writeAll("PASS\n") catch {}; |
| 311 | } | 312 | } |
| 312 | } else |err| if (enable_print) { | 313 | } else |err| { |
| 313 | if (enable_print) { | 314 | if (enable_print) { |
| 314 | stderr.writeAll(test_fn.name) catch {}; | 315 | stderr.writeAll(test_fn.name) catch {}; |
| 315 | stderr.writeAll("... ") catch {}; | 316 | stderr.writeAll("... ") catch {}; |
test/behavior/align.zig+2| ... | @@ -409,6 +409,7 @@ test "struct field explicit alignment" { | ... | @@ -409,6 +409,7 @@ test "struct field explicit alignment" { |
| 409 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 409 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 410 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 410 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 411 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; // flaky | 411 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; // flaky |
| 412 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 412 | 413 | ||
| 413 | const S = struct { | 414 | const S = struct { |
| 414 | const Node = struct { | 415 | const Node = struct { |
| ... | @@ -532,6 +533,7 @@ test "alignment of zero-bit types is respected" { | ... | @@ -532,6 +533,7 @@ test "alignment of zero-bit types is respected" { |
| 532 | if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; | 533 | if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; |
| 533 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 534 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 534 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; | 535 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; |
| 536 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 535 | 537 | ||
| 536 | const S = struct { arr: [0]usize = .{} }; | 538 | const S = struct { arr: [0]usize = .{} }; |
| 537 | 539 |
test/behavior/atomics.zig+2| ... | @@ -153,6 +153,7 @@ test "atomic load and rmw with enum" { | ... | @@ -153,6 +153,7 @@ test "atomic load and rmw with enum" { |
| 153 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 153 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 154 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 154 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 155 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 155 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 156 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 156 | 157 | ||
| 157 | const Value = enum(u8) { a, b, c }; | 158 | const Value = enum(u8) { a, b, c }; |
| 158 | var x = Value.a; | 159 | var x = Value.a; |
| ... | @@ -188,6 +189,7 @@ test "atomicrmw with floats" { | ... | @@ -188,6 +189,7 @@ test "atomicrmw with floats" { |
| 188 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 189 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 189 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 190 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 190 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 191 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 192 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 191 | 193 | ||
| 192 | try testAtomicRmwFloat(); | 194 | try testAtomicRmwFloat(); |
| 193 | try comptime testAtomicRmwFloat(); | 195 | try comptime testAtomicRmwFloat(); |
test/behavior/bitcast.zig+1| ... | @@ -477,6 +477,7 @@ test "@bitCast of packed struct of bools all true" { | ... | @@ -477,6 +477,7 @@ test "@bitCast of packed struct of bools all true" { |
| 477 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 477 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 478 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 478 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 479 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; // TODO | 479 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; // TODO |
| 480 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 480 | 481 | ||
| 481 | const P = packed struct { | 482 | const P = packed struct { |
| 482 | b0: bool, | 483 | b0: bool, |
test/behavior/cast.zig+2| ... | @@ -1793,6 +1793,7 @@ test "peer type resolution: array and vector with same child type" { | ... | @@ -1793,6 +1793,7 @@ test "peer type resolution: array and vector with same child type" { |
| 1793 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1793 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1794 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 1794 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1795 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 1795 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 1796 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1796 | 1797 | ||
| 1797 | var arr: [2]u32 = .{ 0, 1 }; | 1798 | var arr: [2]u32 = .{ 0, 1 }; |
| 1798 | var vec: @Vector(2, u32) = .{ 2, 3 }; | 1799 | var vec: @Vector(2, u32) = .{ 2, 3 }; |
| ... | @@ -1931,6 +1932,7 @@ test "peer type resolution: vector and optional vector" { | ... | @@ -1931,6 +1932,7 @@ test "peer type resolution: vector and optional vector" { |
| 1931 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | 1932 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1932 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 1933 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1933 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; // TODO | 1934 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; // TODO |
| 1935 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1934 | 1936 | ||
| 1935 | var a: ?@Vector(3, u32) = .{ 0, 1, 2 }; | 1937 | var a: ?@Vector(3, u32) = .{ 0, 1, 2 }; |
| 1936 | var b: @Vector(3, u32) = .{ 3, 4, 5 }; | 1938 | var b: @Vector(3, u32) = .{ 3, 4, 5 }; |
test/behavior/cast_int.zig+3| ... | @@ -35,6 +35,7 @@ test "coerce i8 to i32 and @intCast back" { | ... | @@ -35,6 +35,7 @@ test "coerce i8 to i32 and @intCast back" { |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | test "coerce non byte-sized integers accross 32bits boundary" { | 37 | test "coerce non byte-sized integers accross 32bits boundary" { |
| 38 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 38 | { | 39 | { |
| 39 | var v: u21 = 6417; | 40 | var v: u21 = 6417; |
| 40 | _ = &v; | 41 | _ = &v; |
| ... | @@ -166,6 +167,7 @@ const Piece = packed struct { | ... | @@ -166,6 +167,7 @@ const Piece = packed struct { |
| 166 | test "load non byte-sized optional value" { | 167 | test "load non byte-sized optional value" { |
| 167 | // Originally reported at https://github.com/ziglang/zig/issues/14200 | 168 | // Originally reported at https://github.com/ziglang/zig/issues/14200 |
| 168 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 169 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 170 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 169 | 171 | ||
| 170 | // note: this bug is triggered by the == operator, expectEqual will hide it | 172 | // note: this bug is triggered by the == operator, expectEqual will hide it |
| 171 | const opt: ?Piece = try Piece.charToPiece('p'); | 173 | const opt: ?Piece = try Piece.charToPiece('p'); |
| ... | @@ -181,6 +183,7 @@ test "load non byte-sized optional value" { | ... | @@ -181,6 +183,7 @@ test "load non byte-sized optional value" { |
| 181 | test "load non byte-sized value in struct" { | 183 | test "load non byte-sized value in struct" { |
| 182 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 184 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 183 | if (builtin.cpu.arch.endian() != .little) return error.SkipZigTest; // packed struct TODO | 185 | if (builtin.cpu.arch.endian() != .little) return error.SkipZigTest; // packed struct TODO |
| 186 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 184 | 187 | ||
| 185 | // note: this bug is triggered by the == operator, expectEqual will hide it | 188 | // note: this bug is triggered by the == operator, expectEqual will hide it |
| 186 | // using ptrCast not to depend on unitialised memory state | 189 | // using ptrCast not to depend on unitialised memory state |
test/behavior/enum.zig+1| ... | @@ -1121,6 +1121,7 @@ test "bit field access with enum fields" { | ... | @@ -1121,6 +1121,7 @@ test "bit field access with enum fields" { |
| 1121 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 1121 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 1122 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 1122 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1123 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 1123 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 1124 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1124 | 1125 | ||
| 1125 | var data = bit_field_1; | 1126 | var data = bit_field_1; |
| 1126 | try expect(getA(&data) == A.Two); | 1127 | try expect(getA(&data) == A.Two); |
test/behavior/error.zig+1| ... | @@ -1087,6 +1087,7 @@ test "result location initialization of error union with OPV payload" { | ... | @@ -1087,6 +1087,7 @@ test "result location initialization of error union with OPV payload" { |
| 1087 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1087 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1088 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 1088 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1089 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 1089 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 1090 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1090 | 1091 | ||
| 1091 | const S = struct { | 1092 | const S = struct { |
| 1092 | x: u0, | 1093 | x: u0, |
test/behavior/generics.zig+1| ... | @@ -412,6 +412,7 @@ test "generic struct as parameter type" { | ... | @@ -412,6 +412,7 @@ test "generic struct as parameter type" { |
| 412 | 412 | ||
| 413 | test "slice as parameter type" { | 413 | test "slice as parameter type" { |
| 414 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 414 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 415 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 415 | 416 | ||
| 416 | const S = struct { | 417 | const S = struct { |
| 417 | fn internComptimeString(comptime str: []const u8) *const []const u8 { | 418 | fn internComptimeString(comptime str: []const u8) *const []const u8 { |
test/behavior/math.zig+4-1| ... | @@ -66,7 +66,7 @@ test "@clz" { | ... | @@ -66,7 +66,7 @@ test "@clz" { |
| 66 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 66 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 67 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 67 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 68 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 68 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 69 | 69 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | |
| 70 | try testClz(); | 70 | try testClz(); |
| 71 | try comptime testClz(); | 71 | try comptime testClz(); |
| 72 | } | 72 | } |
| ... | @@ -870,6 +870,7 @@ test "@addWithOverflow" { | ... | @@ -870,6 +870,7 @@ test "@addWithOverflow" { |
| 870 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 870 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 871 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 871 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 872 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 872 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 873 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 873 | 874 | ||
| 874 | try testAddWithOverflow(u8, 250, 100, 94, 1); | 875 | try testAddWithOverflow(u8, 250, 100, 94, 1); |
| 875 | try testAddWithOverflow(u8, 100, 150, 250, 0); | 876 | try testAddWithOverflow(u8, 100, 150, 250, 0); |
| ... | @@ -931,6 +932,7 @@ test "@addWithOverflow > 64 bits" { | ... | @@ -931,6 +932,7 @@ test "@addWithOverflow > 64 bits" { |
| 931 | test "small int addition" { | 932 | test "small int addition" { |
| 932 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 933 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 933 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 934 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 935 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 934 | 936 | ||
| 935 | var x: u2 = 0; | 937 | var x: u2 = 0; |
| 936 | try expect(x == 0); | 938 | try expect(x == 0); |
| ... | @@ -958,6 +960,7 @@ fn testMulWithOverflow(comptime T: type, a: T, b: T, mul: T, bit: u1) !void { | ... | @@ -958,6 +960,7 @@ fn testMulWithOverflow(comptime T: type, a: T, b: T, mul: T, bit: u1) !void { |
| 958 | test "basic @mulWithOverflow" { | 960 | test "basic @mulWithOverflow" { |
| 959 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 961 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 960 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 962 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 963 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 961 | 964 | ||
| 962 | try testMulWithOverflow(u8, 86, 3, 2, 1); | 965 | try testMulWithOverflow(u8, 86, 3, 2, 1); |
| 963 | try testMulWithOverflow(u8, 85, 3, 255, 0); | 966 | try testMulWithOverflow(u8, 85, 3, 255, 0); |
test/behavior/optional.zig+1| ... | @@ -641,6 +641,7 @@ test "result location initialization of optional with OPV payload" { | ... | @@ -641,6 +641,7 @@ test "result location initialization of optional with OPV payload" { |
| 641 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 641 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 642 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 642 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 643 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 643 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 644 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 644 | 645 | ||
| 645 | const S = struct { | 646 | const S = struct { |
| 646 | x: u0, | 647 | x: u0, |
test/behavior/packed-struct.zig+5| ... | @@ -429,6 +429,7 @@ test "nested packed struct field pointers" { | ... | @@ -429,6 +429,7 @@ test "nested packed struct field pointers" { |
| 429 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 429 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 430 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 430 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 431 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // ubsan unaligned pointer access | 431 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // ubsan unaligned pointer access |
| 432 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 432 | if (native_endian != .little) return error.SkipZigTest; // Byte aligned packed struct field pointers have not been implemented yet | 433 | if (native_endian != .little) return error.SkipZigTest; // Byte aligned packed struct field pointers have not been implemented yet |
| 433 | 434 | ||
| 434 | const S2 = packed struct { | 435 | const S2 = packed struct { |
| ... | @@ -953,6 +954,7 @@ test "pointer to container level packed struct field" { | ... | @@ -953,6 +954,7 @@ test "pointer to container level packed struct field" { |
| 953 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 954 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 954 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 955 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 955 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 956 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 957 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 956 | 958 | ||
| 957 | const S = packed struct(u32) { | 959 | const S = packed struct(u32) { |
| 958 | test_bit: bool, | 960 | test_bit: bool, |
| ... | @@ -997,6 +999,7 @@ test "bitcast back and forth" { | ... | @@ -997,6 +999,7 @@ test "bitcast back and forth" { |
| 997 | test "field access of packed struct smaller than its abi size inside struct initialized with rls" { | 999 | test "field access of packed struct smaller than its abi size inside struct initialized with rls" { |
| 998 | // Originally reported at https://github.com/ziglang/zig/issues/14200 | 1000 | // Originally reported at https://github.com/ziglang/zig/issues/14200 |
| 999 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 1001 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 1002 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1000 | 1003 | ||
| 1001 | const S = struct { | 1004 | const S = struct { |
| 1002 | ps: packed struct { x: i2, y: i2 }, | 1005 | ps: packed struct { x: i2, y: i2 }, |
| ... | @@ -1146,6 +1149,7 @@ test "assignment to non-byte-aligned field in packed struct" { | ... | @@ -1146,6 +1149,7 @@ test "assignment to non-byte-aligned field in packed struct" { |
| 1146 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1149 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1147 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1150 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1148 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 1151 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 1152 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1149 | 1153 | ||
| 1150 | const Frame = packed struct { | 1154 | const Frame = packed struct { |
| 1151 | num: u20, | 1155 | num: u20, |
| ... | @@ -1360,6 +1364,7 @@ test "byte-aligned packed relocation" { | ... | @@ -1360,6 +1364,7 @@ test "byte-aligned packed relocation" { |
| 1360 | 1364 | ||
| 1361 | test "packed struct store of comparison result" { | 1365 | test "packed struct store of comparison result" { |
| 1362 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 1366 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 1367 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1363 | 1368 | ||
| 1364 | const S1 = packed struct { | 1369 | const S1 = packed struct { |
| 1365 | val1: u3, | 1370 | val1: u3, |
test/behavior/packed-union.zig+2| ... | @@ -8,6 +8,7 @@ test "flags in packed union" { | ... | @@ -8,6 +8,7 @@ test "flags in packed union" { |
| 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_sparc64) return error.SkipZigTest; | 9 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; |
| 10 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 10 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 11 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 11 | 12 | ||
| 12 | try testFlagsInPackedUnion(); | 13 | try testFlagsInPackedUnion(); |
| 13 | try comptime testFlagsInPackedUnion(); | 14 | try comptime testFlagsInPackedUnion(); |
| ... | @@ -50,6 +51,7 @@ test "flags in packed union at offset" { | ... | @@ -50,6 +51,7 @@ test "flags in packed union at offset" { |
| 50 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 51 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 51 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; | 52 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; |
| 52 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 53 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 54 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 53 | 55 | ||
| 54 | try testFlagsInPackedUnionAtOffset(); | 56 | try testFlagsInPackedUnionAtOffset(); |
| 55 | try comptime testFlagsInPackedUnionAtOffset(); | 57 | try comptime testFlagsInPackedUnionAtOffset(); |
test/behavior/popcount.zig+1| ... | @@ -8,6 +8,7 @@ test "@popCount integers" { | ... | @@ -8,6 +8,7 @@ test "@popCount integers" { |
| 8 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 8 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 9 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 9 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 10 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 10 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 11 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 11 | 12 | ||
| 12 | try comptime testPopCountIntegers(); | 13 | try comptime testPopCountIntegers(); |
| 13 | try testPopCountIntegers(); | 14 | try testPopCountIntegers(); |
test/behavior/src.zig+2| ... | @@ -40,6 +40,8 @@ test "@src used as a comptime parameter" { | ... | @@ -40,6 +40,8 @@ test "@src used as a comptime parameter" { |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | test "@src in tuple passed to anytype function" { | 42 | test "@src in tuple passed to anytype function" { |
| 43 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 44 | |||
| 43 | const S = struct { | 45 | const S = struct { |
| 44 | fn Foo(a: anytype) u32 { | 46 | fn Foo(a: anytype) u32 { |
| 45 | return a[0].line; | 47 | return a[0].line; |
test/behavior/struct.zig+5| ... | @@ -424,6 +424,7 @@ test "packed struct 24bits" { | ... | @@ -424,6 +424,7 @@ test "packed struct 24bits" { |
| 424 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 424 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 425 | if (builtin.cpu.arch.isArm()) return error.SkipZigTest; // TODO | 425 | if (builtin.cpu.arch.isArm()) return error.SkipZigTest; // TODO |
| 426 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 426 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 427 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 427 | 428 | ||
| 428 | comptime { | 429 | comptime { |
| 429 | std.debug.assert(@sizeOf(Foo24Bits) == @sizeOf(u24)); | 430 | std.debug.assert(@sizeOf(Foo24Bits) == @sizeOf(u24)); |
| ... | @@ -526,6 +527,7 @@ test "implicit cast packed struct field to const ptr" { | ... | @@ -526,6 +527,7 @@ test "implicit cast packed struct field to const ptr" { |
| 526 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 527 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 527 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 528 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 528 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 529 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 530 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 529 | 531 | ||
| 530 | const LevelUpMove = packed struct { | 532 | const LevelUpMove = packed struct { |
| 531 | move_id: u9, | 533 | move_id: u9, |
| ... | @@ -590,6 +592,7 @@ test "bit field access" { | ... | @@ -590,6 +592,7 @@ test "bit field access" { |
| 590 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 592 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 591 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 593 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 592 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 594 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 595 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 593 | 596 | ||
| 594 | var data = bit_field_1; | 597 | var data = bit_field_1; |
| 595 | try expect(getA(&data) == 1); | 598 | try expect(getA(&data) == 1); |
| ... | @@ -713,6 +716,7 @@ test "pointer to packed struct member in a stack variable" { | ... | @@ -713,6 +716,7 @@ test "pointer to packed struct member in a stack variable" { |
| 713 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 716 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 714 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 717 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 715 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 718 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 719 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 716 | 720 | ||
| 717 | const S = packed struct { | 721 | const S = packed struct { |
| 718 | a: u2, | 722 | a: u2, |
| ... | @@ -1525,6 +1529,7 @@ test "optional generic function label struct field" { | ... | @@ -1525,6 +1529,7 @@ test "optional generic function label struct field" { |
| 1525 | test "struct fields get automatically reordered" { | 1529 | test "struct fields get automatically reordered" { |
| 1526 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 1530 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 1527 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; | 1531 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; |
| 1532 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1528 | 1533 | ||
| 1529 | const S1 = struct { | 1534 | const S1 = struct { |
| 1530 | a: u32, | 1535 | a: u32, |
test/behavior/threadlocal.zig+1| ... | @@ -9,6 +9,7 @@ test "thread local variable" { | ... | @@ -9,6 +9,7 @@ test "thread local variable" { |
| 9 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 9 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 10 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 10 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 11 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt == .coff) return error.SkipZigTest; // TODO | 11 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt == .coff) return error.SkipZigTest; // TODO |
| 12 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 12 | 13 | ||
| 13 | if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .macos) { | 14 | if (builtin.zig_backend == .stage2_x86_64 and builtin.os.tag == .macos) { |
| 14 | // Fails due to register hazards. | 15 | // Fails due to register hazards. |
test/behavior/union.zig+1| ... | @@ -1841,6 +1841,7 @@ test "reinterpret packed union" { | ... | @@ -1841,6 +1841,7 @@ test "reinterpret packed union" { |
| 1841 | 1841 | ||
| 1842 | test "reinterpret packed union inside packed struct" { | 1842 | test "reinterpret packed union inside packed struct" { |
| 1843 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; | 1843 | if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest; |
| 1844 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 1844 | 1845 | ||
| 1845 | const U = packed union { | 1846 | const U = packed union { |
| 1846 | a: u7, | 1847 | a: u7, |