diff --git a/test/compile_errors.zig b/test/compile_errors.zig index 17a9e0663e..77438e5bb0 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -7504,4 +7504,22 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { , &[_][]const u8{ ":3:52: error: slice '[]const u8' cannot have its bytes reinterpreted", }); + + cases.add("wasmMemorySize is a compile error in non-Wasm targets", + \\export fn foo() void { + \\ _ = @wasmMemorySize(); + \\ return; + \\} + , &[_][]const u8{ + "tmp.zig:2:9: error: @wasmMemorySize is a wasm32 feature only", + }); + + cases.add("wasmMemoryGrow is a compile error in non-Wasm targets", + \\export fn foo() void { + \\ _ = @wasmMemoryGrow(1); + \\ return; + \\} + , &[_][]const u8{ + "tmp.zig:2:9: error: @wasmMemoryGrow is a wasm32 feature only", + }); } diff --git a/test/stage1/behavior.zig b/test/stage1/behavior.zig index 83bd2ddce8..1620aa52df 100644 --- a/test/stage1/behavior.zig +++ b/test/stage1/behavior.zig @@ -126,6 +126,9 @@ comptime { _ = @import("behavior/var_args.zig"); _ = @import("behavior/vector.zig"); _ = @import("behavior/void.zig"); + if (builtin.arch == .wasm32) { + _ = @import("behavior/wasm.zig"); + } _ = @import("behavior/while.zig"); _ = @import("behavior/widening.zig"); } diff --git a/test/stage1/behavior/wasm.zig b/test/stage1/behavior/wasm.zig new file mode 100644 index 0000000000..c55700c7c0 --- /dev/null +++ b/test/stage1/behavior/wasm.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const expect = std.testing.expect; + +test "memory size and grow" { + var prev = @wasmMemorySize(); + expect(prev == @wasmMemoryGrow(1)); + expect(prev + 1 == @wasmMemorySize()); +}