wasm: Test cases for optionals

This commit is contained in:
Luuk de Gram 2021-07-31 16:39:48 +02:00
parent 61de59e121
commit a861b7d160
No known key found for this signature in database
GPG Key ID: A8CFE58E4DC7D664

View File

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