Commit 83f300218f

Andrew Kelley <andrew@ziglang.org>
2022-06-08 02:58:18
upgrade behavior test to stage2 fn ptr semantics
1 parent bac132b
Changed files (1)
test
behavior
bugs
test/behavior/bugs/920.zig
@@ -1,14 +1,24 @@
+const builtin = @import("builtin");
 const std = @import("std");
 const Random = std.rand.Random;
 
+const zeroCaseFn = switch (builtin.zig_backend) {
+    .stage1 => fn (*Random, f64) f64,
+    else => *const fn (*Random, f64) f64,
+};
+const pdfFn = switch (builtin.zig_backend) {
+    .stage1 => fn (f64) f64,
+    else => *const fn (f64) f64,
+};
+
 const ZigTable = struct {
     r: f64,
     x: [257]f64,
     f: [257]f64,
 
-    pdf: fn (f64) f64,
+    pdf: pdfFn,
     is_symmetric: bool,
-    zero_case: fn (*Random, f64) f64,
+    zero_case: zeroCaseFn,
 };
 
 fn ZigTableGen(comptime is_symmetric: bool, comptime r: f64, comptime v: f64, comptime f: fn (f64) f64, comptime f_inv: fn (f64) f64, comptime zero_case: fn (*Random, f64) f64) ZigTable {
@@ -56,7 +66,11 @@ const NormalDist = blk: {
 };
 
 test "bug 920 fixed" {
-    if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO
+    if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+    if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
+    if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+    if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+    if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
 
     const NormalDist1 = blk: {
         break :blk ZigTableGen(true, norm_r, norm_v, norm_f, norm_f_inv, norm_zero_case);