From 95cc457d977c3a4671adfe61d482465cd262d17f Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 26 Mar 2021 23:54:36 -0700 Subject: [PATCH] stage2: enable passing tests --- test/stage2/llvm.zig | 212 +++++++++++++++++++++---------------------- test/stage2/wasm.zig | 108 +++++++++++----------- 2 files changed, 160 insertions(+), 160 deletions(-) diff --git a/test/stage2/llvm.zig b/test/stage2/llvm.zig index 8ac9f2747f..4b00ed124c 100644 --- a/test/stage2/llvm.zig +++ b/test/stage2/llvm.zig @@ -61,55 +61,55 @@ pub fn addCases(ctx: *TestContext) !void { } { - var case = ctx.exeUsingLlvmBackend("blocks", linux_x64); + var case = ctx.exeUsingLlvmBackend("blocks", linux_x64); - case.addCompareOutput( - \\fn assert(ok: bool) void { - \\ if (!ok) unreachable; - \\} - \\ - \\fn foo(ok: bool) i32 { - \\ const val: i32 = blk: { - \\ var x: i32 = 1; - \\ if (!ok) break :blk x + 9; - \\ break :blk x + 19; - \\ }; - \\ return val + 10; - \\} - \\ - \\export fn main() c_int { - \\ assert(foo(false) == 20); - \\ assert(foo(true) == 30); - \\ return 0; - \\} - , ""); + case.addCompareOutput( + \\fn assert(ok: bool) void { + \\ if (!ok) unreachable; + \\} + \\ + \\fn foo(ok: bool) i32 { + \\ const val: i32 = blk: { + \\ var x: i32 = 1; + \\ if (!ok) break :blk x + 9; + \\ break :blk x + 19; + \\ }; + \\ return val + 10; + \\} + \\ + \\export fn main() c_int { + \\ assert(foo(false) == 20); + \\ assert(foo(true) == 30); + \\ return 0; + \\} + , ""); } { - var case = ctx.exeUsingLlvmBackend("nested blocks", linux_x64); + var case = ctx.exeUsingLlvmBackend("nested blocks", linux_x64); - case.addCompareOutput( - \\fn assert(ok: bool) void { - \\ if (!ok) unreachable; - \\} - \\ - \\fn foo(ok: bool) i32 { - \\ var val: i32 = blk: { - \\ const val2: i32 = another: { - \\ if (!ok) break :blk 10; - \\ break :another 10; - \\ }; - \\ break :blk val2 + 10; - \\ }; - \\ return val; - \\} - \\ - \\export fn main() c_int { - \\ assert(foo(false) == 10); - \\ assert(foo(true) == 20); - \\ return 0; - \\} - , ""); + case.addCompareOutput( + \\fn assert(ok: bool) void { + \\ if (!ok) unreachable; + \\} + \\ + \\fn foo(ok: bool) i32 { + \\ var val: i32 = blk: { + \\ const val2: i32 = another: { + \\ if (!ok) break :blk 10; + \\ break :another 10; + \\ }; + \\ break :blk val2 + 10; + \\ }; + \\ return val; + \\} + \\ + \\export fn main() c_int { + \\ assert(foo(false) == 10); + \\ assert(foo(true) == 20); + \\ return 0; + \\} + , ""); } { @@ -134,70 +134,70 @@ pub fn addCases(ctx: *TestContext) !void { } { - var case = ctx.exeUsingLlvmBackend("optionals", linux_x64); + var case = ctx.exeUsingLlvmBackend("optionals", linux_x64); - case.addCompareOutput( - \\fn assert(ok: bool) void { - \\ if (!ok) unreachable; - \\} - \\ - \\export fn main() c_int { - \\ var opt_val: ?i32 = 10; - \\ var null_val: ?i32 = null; - \\ - \\ var val1: i32 = opt_val.?; - \\ const val1_1: i32 = opt_val.?; - \\ var ptr_val1 = &(opt_val.?); - \\ const ptr_val1_1 = &(opt_val.?); - \\ - \\ var val2: i32 = null_val orelse 20; - \\ const val2_2: i32 = null_val orelse 20; - \\ - \\ var value: i32 = 20; - \\ var ptr_val2 = &(null_val orelse value); - \\ - \\ const val3 = opt_val orelse 30; - \\ var val3_var = opt_val orelse 30; - \\ - \\ assert(val1 == 10); - \\ assert(val1_1 == 10); - \\ assert(ptr_val1.* == 10); - \\ assert(ptr_val1_1.* == 10); - \\ - \\ assert(val2 == 20); - \\ assert(val2_2 == 20); - \\ assert(ptr_val2.* == 20); - \\ - \\ assert(val3 == 10); - \\ assert(val3_var == 10); - \\ - \\ (null_val orelse val2) = 1234; - \\ assert(val2 == 1234); - \\ - \\ (opt_val orelse val2) = 5678; - \\ assert(opt_val.? == 5678); - \\ - \\ return 0; - \\} - , ""); + case.addCompareOutput( + \\fn assert(ok: bool) void { + \\ if (!ok) unreachable; + \\} + \\ + \\export fn main() c_int { + \\ var opt_val: ?i32 = 10; + \\ var null_val: ?i32 = null; + \\ + \\ var val1: i32 = opt_val.?; + \\ const val1_1: i32 = opt_val.?; + \\ var ptr_val1 = &(opt_val.?); + \\ const ptr_val1_1 = &(opt_val.?); + \\ + \\ var val2: i32 = null_val orelse 20; + \\ const val2_2: i32 = null_val orelse 20; + \\ + \\ var value: i32 = 20; + \\ var ptr_val2 = &(null_val orelse value); + \\ + \\ const val3 = opt_val orelse 30; + \\ var val3_var = opt_val orelse 30; + \\ + \\ assert(val1 == 10); + \\ assert(val1_1 == 10); + \\ assert(ptr_val1.* == 10); + \\ assert(ptr_val1_1.* == 10); + \\ + \\ assert(val2 == 20); + \\ assert(val2_2 == 20); + \\ assert(ptr_val2.* == 20); + \\ + \\ assert(val3 == 10); + \\ assert(val3_var == 10); + \\ + \\ (null_val orelse val2) = 1234; + \\ assert(val2 == 1234); + \\ + \\ (opt_val orelse val2) = 5678; + \\ assert(opt_val.? == 5678); + \\ + \\ return 0; + \\} + , ""); } - //{ - // var case = ctx.exeUsingLlvmBackend("for loop", linux_x64); + { + var case = ctx.exeUsingLlvmBackend("for loop", linux_x64); - // case.addCompareOutput( - // \\fn assert(ok: bool) void { - // \\ if (!ok) unreachable; - // \\} - // \\ - // \\export fn main() c_int { - // \\ var x: u32 = 0; - // \\ for ("hello") |_| { - // \\ x += 1; - // \\ } - // \\ assert("hello".len == x); - // \\ return 0; - // \\} - // , ""); - //} + case.addCompareOutput( + \\fn assert(ok: bool) void { + \\ if (!ok) unreachable; + \\} + \\ + \\export fn main() c_int { + \\ var x: u32 = 0; + \\ for ("hello") |_| { + \\ x += 1; + \\ } + \\ assert("hello".len == x); + \\ return 0; + \\} + , ""); + } } diff --git a/test/stage2/wasm.zig b/test/stage2/wasm.zig index 4830576fe5..06ede2d735 100644 --- a/test/stage2/wasm.zig +++ b/test/stage2/wasm.zig @@ -43,24 +43,24 @@ pub fn addCases(ctx: *TestContext) !void { "42\n", ); - //case.addCompareOutput( - // \\export fn _start() f32 { - // \\ bar(); - // \\ foo(); - // \\ return 42.0; - // \\} - // \\fn foo() void { - // \\ bar(); - // \\ bar(); - // \\ bar(); - // \\} - // \\fn bar() void {} - //, - //// This is what you get when you take the bits of the IEE-754 - //// representation of 42.0 and reinterpret them as an unsigned - //// integer. Guess that's a bug in wasmtime. - // "1109917696\n", - //); + case.addCompareOutput( + \\export fn _start() f32 { + \\ bar(); + \\ foo(); + \\ return 42.0; + \\} + \\fn foo() void { + \\ bar(); + \\ bar(); + \\ bar(); + \\} + \\fn bar() void {} + , + // This is what you get when you take the bits of the IEE-754 + // representation of 42.0 and reinterpret them as an unsigned + // integer. Guess that's a bug in wasmtime. + "1109917696\n", + ); case.addCompareOutput( \\export fn _start() u32 { @@ -71,33 +71,33 @@ pub fn addCases(ctx: *TestContext) !void { , "5\n"); } - //{ - // var case = ctx.exe("wasm locals", wasi); + { + var case = ctx.exe("wasm locals", wasi); - // case.addCompareOutput( - // \\export fn _start() u32 { - // \\ var i: u32 = 5; - // \\ var y: f32 = 42.0; - // \\ var x: u32 = 10; - // \\ return i; - // \\} - // , "5\n"); + case.addCompareOutput( + \\export fn _start() u32 { + \\ var i: u32 = 5; + \\ var y: f32 = 42.0; + \\ var x: u32 = 10; + \\ return i; + \\} + , "5\n"); - // case.addCompareOutput( - // \\export fn _start() u32 { - // \\ var i: u32 = 5; - // \\ var y: f32 = 42.0; - // \\ var x: u32 = 10; - // \\ foo(i, x); - // \\ i = x; - // \\ return i; - // \\} - // \\fn foo(x: u32, y: u32) void { - // \\ var i: u32 = 10; - // \\ i = x; - // \\} - // , "10\n"); - //} + case.addCompareOutput( + \\export fn _start() u32 { + \\ var i: u32 = 5; + \\ var y: f32 = 42.0; + \\ var x: u32 = 10; + \\ foo(i, x); + \\ i = x; + \\ return i; + \\} + \\fn foo(x: u32, y: u32) void { + \\ var i: u32 = 10; + \\ i = x; + \\} + , "10\n"); + } { var case = ctx.exe("wasm binary operands", wasi); @@ -202,16 +202,16 @@ pub fn addCases(ctx: *TestContext) !void { \\} , "10\n"); - //case.addCompareOutput( - // \\export fn _start() u32 { - // \\ var i: u32 = 0; - // \\ while(i < @as(u32, 10)){ - // \\ var x: u32 = 1; - // \\ i += x; - // \\ if (i == @as(u32, 5)) break; - // \\ } - // \\ return i; - // \\} - //, "5\n"); + case.addCompareOutput( + \\export fn _start() u32 { + \\ var i: u32 = 0; + \\ while(i < @as(u32, 10)){ + \\ var x: u32 = 1; + \\ i += x; + \\ if (i == @as(u32, 5)) break; + \\ } + \\ return i; + \\} + , "5\n"); } }