mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
spirv: make rusticl the primary testing implementation
This commit is contained in:
parent
eb2d61d02e
commit
37b0aa600a
@ -407,12 +407,12 @@ pub fn flush(self: *Module, file: std.fs.File, target: std.Target) !void {
|
|||||||
var types_constants = try self.cache.materialize(self);
|
var types_constants = try self.cache.materialize(self);
|
||||||
defer types_constants.deinit(self.gpa);
|
defer types_constants.deinit(self.gpa);
|
||||||
|
|
||||||
// TODO: Vulkan doesn't support initializer kernel
|
// // TODO: Pass global variables as function parameters
|
||||||
var init_func = if (target.os.tag != .vulkan)
|
// var init_func = if (target.os.tag != .vulkan)
|
||||||
try self.initializer(&entry_points)
|
// try self.initializer(&entry_points)
|
||||||
else
|
// else
|
||||||
Section{};
|
// Section{};
|
||||||
defer init_func.deinit(self.gpa);
|
// defer init_func.deinit(self.gpa);
|
||||||
|
|
||||||
const header = [_]Word{
|
const header = [_]Word{
|
||||||
spec.magic_number,
|
spec.magic_number,
|
||||||
@ -458,7 +458,6 @@ pub fn flush(self: *Module, file: std.fs.File, target: std.Target) !void {
|
|||||||
self.sections.types_globals_constants.toWords(),
|
self.sections.types_globals_constants.toWords(),
|
||||||
globals.toWords(),
|
globals.toWords(),
|
||||||
self.sections.functions.toWords(),
|
self.sections.functions.toWords(),
|
||||||
init_func.toWords(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var iovc_buffers: [buffers.len]std.os.iovec_const = undefined;
|
var iovc_buffers: [buffers.len]std.os.iovec_const = undefined;
|
||||||
|
|||||||
@ -756,7 +756,6 @@ test "extern variable with non-pointer opaque type" {
|
|||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
|
||||||
if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
|
||||||
|
|
||||||
@export(var_to_export, .{ .name = "opaque_extern_var" });
|
@export(var_to_export, .{ .name = "opaque_extern_var" });
|
||||||
@ -1195,7 +1194,6 @@ test "integer compare" {
|
|||||||
|
|
||||||
test "reference to inferred local variable works as expected" {
|
test "reference to inferred local variable works as expected" {
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
|
||||||
|
|
||||||
const Crasher = struct {
|
const Crasher = struct {
|
||||||
lets_crash: u64 = 0,
|
lets_crash: u64 = 0,
|
||||||
|
|||||||
@ -5,6 +5,7 @@ var result: []const u8 = "wrong";
|
|||||||
|
|
||||||
test "pass string literal byvalue to a generic var param" {
|
test "pass string literal byvalue to a generic var param" {
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
start();
|
start();
|
||||||
blowUpStack(10);
|
blowUpStack(10);
|
||||||
|
|||||||
@ -1262,6 +1262,7 @@ test "implicit cast from *T to ?*anyopaque" {
|
|||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
var a: u8 = 1;
|
var a: u8 = 1;
|
||||||
incrementVoidPtrValue(&a);
|
incrementVoidPtrValue(&a);
|
||||||
|
|||||||
@ -124,6 +124,7 @@ test "debug info for optional error set" {
|
|||||||
|
|
||||||
test "implicit cast to optional to error union to return result loc" {
|
test "implicit cast to optional to error union to return result loc" {
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const S = struct {
|
const S = struct {
|
||||||
fn entry() !void {
|
fn entry() !void {
|
||||||
@ -950,6 +951,7 @@ test "returning an error union containing a type with no runtime bits" {
|
|||||||
test "try used in recursive function with inferred error set" {
|
test "try used in recursive function with inferred error set" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
|
||||||
|
|
||||||
const Value = union(enum) {
|
const Value = union(enum) {
|
||||||
values: []const @This(),
|
values: []const @This(),
|
||||||
|
|||||||
@ -127,6 +127,7 @@ test "cmp f16" {
|
|||||||
test "cmp f32/f64" {
|
test "cmp f32/f64" {
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
try testCmp(f32);
|
try testCmp(f32);
|
||||||
try comptime testCmp(f32);
|
try comptime testCmp(f32);
|
||||||
@ -978,6 +979,7 @@ test "@abs f32/f64" {
|
|||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
try testFabs(f32);
|
try testFabs(f32);
|
||||||
try comptime testFabs(f32);
|
try comptime testFabs(f32);
|
||||||
|
|||||||
@ -50,7 +50,6 @@ test "global loads can affect liveness" {
|
|||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
|
||||||
|
|
||||||
const S = struct {
|
const S = struct {
|
||||||
const ByRef = struct {
|
const ByRef = struct {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ pub const EmptyStruct = struct {};
|
|||||||
|
|
||||||
test "optional pointer to size zero struct" {
|
test "optional pointer to size zero struct" {
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
var e = EmptyStruct{};
|
var e = EmptyStruct{};
|
||||||
const o: ?*EmptyStruct = &e;
|
const o: ?*EmptyStruct = &e;
|
||||||
@ -35,6 +36,8 @@ test "optional pointer to size zero struct" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "equality compare optional pointers" {
|
test "equality compare optional pointers" {
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
try testNullPtrsEql();
|
try testNullPtrsEql();
|
||||||
try comptime testNullPtrsEql();
|
try comptime testNullPtrsEql();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -216,6 +216,7 @@ test "assign null directly to C pointer and test null equality" {
|
|||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
var x: [*c]i32 = null;
|
var x: [*c]i32 = null;
|
||||||
_ = &x;
|
_ = &x;
|
||||||
|
|||||||
@ -41,7 +41,6 @@ test "anon field init" {
|
|||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
|
||||||
|
|
||||||
const Foo = .{
|
const Foo = .{
|
||||||
.T1 = struct {},
|
.T1 = struct {},
|
||||||
@ -90,7 +89,6 @@ test "top level decl" {
|
|||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
|
||||||
|
|
||||||
try expectEqualStrings(
|
try expectEqualStrings(
|
||||||
"behavior.typename.A_Struct",
|
"behavior.typename.A_Struct",
|
||||||
@ -140,7 +138,6 @@ test "fn param" {
|
|||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
|
||||||
|
|
||||||
// https://github.com/ziglang/zig/issues/675
|
// https://github.com/ziglang/zig/issues/675
|
||||||
try expectEqualStrings(
|
try expectEqualStrings(
|
||||||
@ -211,7 +208,6 @@ test "local variable" {
|
|||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
|
||||||
|
|
||||||
const Foo = struct { a: u32 };
|
const Foo = struct { a: u32 };
|
||||||
const Bar = union { a: u32 };
|
const Bar = union { a: u32 };
|
||||||
@ -239,7 +235,6 @@ test "anon name strategy used in sub expression" {
|
|||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
|
||||||
|
|
||||||
const S = struct {
|
const S = struct {
|
||||||
fn getTheName() []const u8 {
|
fn getTheName() []const u8 {
|
||||||
|
|||||||
@ -104,6 +104,7 @@ test "returned undef is 0xaa bytes when runtime safety is enabled" {
|
|||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const Rect = struct {
|
const Rect = struct {
|
||||||
x: f32,
|
x: f32,
|
||||||
|
|||||||
@ -372,6 +372,7 @@ test "load vector elements via comptime index" {
|
|||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const S = struct {
|
const S = struct {
|
||||||
fn doTheTest() !void {
|
fn doTheTest() !void {
|
||||||
@ -393,6 +394,7 @@ test "store vector elements via comptime index" {
|
|||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const S = struct {
|
const S = struct {
|
||||||
fn doTheTest() !void {
|
fn doTheTest() !void {
|
||||||
|
|||||||
@ -38,6 +38,8 @@ fn staticWhileLoop2() i32 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "while with continue expression" {
|
test "while with continue expression" {
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
|
||||||
|
|
||||||
var sum: i32 = 0;
|
var sum: i32 = 0;
|
||||||
{
|
{
|
||||||
var i: i32 = 0;
|
var i: i32 = 0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user