authorgravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2021-07-31 16:39:48+02:00
committergravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2021-08-01 11:07:23+02:00
loga861b7d160737acb60913d2ff7ed316f19af9066
treef41549f5f4c36095147348c0d76befee6e4c01ff
parent61de59e121ebd5ad2a8af871ddb1d785c3694481
signaturelock-open Commit is signed but in an unrecognized format.

wasm: Test cases for optionals


1 files changed, 54 insertions(+), 0 deletions(-)

test/stage2/wasm.zig+54
......@@ -644,4 +644,58 @@ pub fn addCases(ctx: *TestContext) !void {
644644 \\}
645645 , "5\n");
646646 }
647
648 {
649 var case = ctx.exe("wasm optionals", wasi);
650
651 case.addCompareOutput(
652 \\pub export fn _start() u32 {
653 \\ var x: ?u32 = 5;
654 \\ var y: u32 = 0;
655 \\ if (x) |val| {
656 \\ y = val;
657 \\ }
658 \\ return y;
659 \\}
660 , "5\n");
661
662 case.addCompareOutput(
663 \\pub export fn _start() u32 {
664 \\ var x: ?u32 = null;
665 \\ var y: u32 = 0;
666 \\ if (x) |val| {
667 \\ y = val;
668 \\ }
669 \\ return y;
670 \\}
671 , "0\n");
672
673 case.addCompareOutput(
674 \\pub export fn _start() u32 {
675 \\ var x: ?u32 = 5;
676 \\ return x.?;
677 \\}
678 , "5\n");
679
680 case.addCompareOutput(
681 \\pub export fn _start() u32 {
682 \\ var x: u32 = 5;
683 \\ var y: ?u32 = x;
684 \\ return y.?;
685 \\}
686 , "5\n");
687
688 case.addCompareOutput(
689 \\pub export fn _start() u32 {
690 \\ var val: ?u32 = 5;
691 \\ while (val) |*v| {
692 \\ v.* -= 1;
693 \\ if (v.* == 2) {
694 \\ val = null;
695 \\ }
696 \\ }
697 \\ return 0;
698 \\}
699 , "0\n");
700 }
647701}