upgrade behavior test to stage2 fn ptr semantics

This commit is contained in:
Andrew Kelley 2022-06-07 17:58:18 -07:00
parent bac132bc8f
commit 83f300218f

View File

@ -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);