zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 3fb301b16a51504bea1aa89efe856a2c2df6f293 (tree)
parent dfe9cae4eb9ebd1409759f82a6f7ab9336a6da6b
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Fri, 27 Oct 2023 12:26:18 -0700

categorize fn ptr behavior test

move a function pointer test from bugs/xxx.zig to fn.zig

Diffstat:
Mtest/behavior.zig | 1-
Dtest/behavior/bugs/11227.zig | 11-----------
Mtest/behavior/fn.zig | 17+++++++++++++++++
3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/test/behavior.zig b/test/behavior.zig @@ -253,7 +253,6 @@ test { builtin.zig_backend != .stage2_c and builtin.zig_backend != .stage2_spirv64) { - _ = @import("behavior/bugs/11227.zig"); _ = @import("behavior/bugs/14198.zig"); _ = @import("behavior/export.zig"); } diff --git a/test/behavior/bugs/11227.zig b/test/behavior/bugs/11227.zig @@ -1,11 +0,0 @@ -const std = @import("std"); -const builtin = @import("builtin"); - -fn foo() u32 { - return 11227; -} -const bar = foo; -test "pointer to alias behaves same as pointer to function" { - var a = &bar; - try std.testing.expect(foo() == a()); -} diff --git a/test/behavior/fn.zig b/test/behavior/fn.zig @@ -574,3 +574,20 @@ test "pass and return comptime-only types" { try expectEqual(null, S.returnNull(null)); try expectEqual(@as(u0, 0), S.returnUndefined(undefined)); } + +test "pointer to alias behaves same as pointer to function" { + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_x86_64) 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_spirv64) return error.SkipZigTest; + + const S = struct { + fn foo() u32 { + return 11227; + } + const bar = foo; + }; + var a = &S.bar; + try std.testing.expect(S.foo() == a()); +}