From a861b7d160737acb60913d2ff7ed316f19af9066 Mon Sep 17 00:00:00 2001 From: Luuk de Gram Date: Sat, 31 Jul 2021 16:39:48 +0200 Subject: [PATCH] wasm: Test cases for optionals --- test/stage2/wasm.zig | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/test/stage2/wasm.zig b/test/stage2/wasm.zig index b0099c392c..a9f7984893 100644 --- a/test/stage2/wasm.zig +++ b/test/stage2/wasm.zig @@ -644,4 +644,58 @@ pub fn addCases(ctx: *TestContext) !void { \\} , "5\n"); } + + { + var case = ctx.exe("wasm optionals", wasi); + + case.addCompareOutput( + \\pub export fn _start() u32 { + \\ var x: ?u32 = 5; + \\ var y: u32 = 0; + \\ if (x) |val| { + \\ y = val; + \\ } + \\ return y; + \\} + , "5\n"); + + case.addCompareOutput( + \\pub export fn _start() u32 { + \\ var x: ?u32 = null; + \\ var y: u32 = 0; + \\ if (x) |val| { + \\ y = val; + \\ } + \\ return y; + \\} + , "0\n"); + + case.addCompareOutput( + \\pub export fn _start() u32 { + \\ var x: ?u32 = 5; + \\ return x.?; + \\} + , "5\n"); + + case.addCompareOutput( + \\pub export fn _start() u32 { + \\ var x: u32 = 5; + \\ var y: ?u32 = x; + \\ return y.?; + \\} + , "5\n"); + + case.addCompareOutput( + \\pub export fn _start() u32 { + \\ var val: ?u32 = 5; + \\ while (val) |*v| { + \\ v.* -= 1; + \\ if (v.* == 2) { + \\ val = null; + \\ } + \\ } + \\ return 0; + \\} + , "0\n"); + } }