| ... | @@ -113,6 +113,13 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -113,6 +113,13 @@ pub fn addCases(ctx: *TestContext) !void { |
| 113 | \\} | 113 | \\} |
| 114 | , "25\n"); | 114 | , "25\n"); |
| 115 | | 115 | |
| | 116 | case.addCompareOutput( |
| | 117 | \\pub export fn _start() i32 { |
| | 118 | \\ var i: i32 = 2147483647; |
| | 119 | \\ return i +% 1; |
| | 120 | \\} |
| | 121 | , "-2147483648\n"); |
| | 122 | |
| 116 | case.addCompareOutput( | 123 | case.addCompareOutput( |
| 117 | \\pub export fn _start() u32 { | 124 | \\pub export fn _start() u32 { |
| 118 | \\ var i: u32 = 5; | 125 | \\ var i: u32 = 5; |
| ... | @@ -133,6 +140,13 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -133,6 +140,13 @@ pub fn addCases(ctx: *TestContext) !void { |
| 133 | \\} | 140 | \\} |
| 134 | , "15\n"); | 141 | , "15\n"); |
| 135 | | 142 | |
| | 143 | case.addCompareOutput( |
| | 144 | \\pub export fn _start() i32 { |
| | 145 | \\ var i: i32 = -2147483648; |
| | 146 | \\ return i -% 1; |
| | 147 | \\} |
| | 148 | , "2147483647\n"); |
| | 149 | |
| 136 | case.addCompareOutput( | 150 | case.addCompareOutput( |
| 137 | \\pub export fn _start() u32 { | 151 | \\pub export fn _start() u32 { |
| 138 | \\ var i: u32 = 5; | 152 | \\ var i: u32 = 5; |
| ... | @@ -157,6 +171,13 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -157,6 +171,13 @@ pub fn addCases(ctx: *TestContext) !void { |
| 157 | \\} | 171 | \\} |
| 158 | , "350\n"); | 172 | , "350\n"); |
| 159 | | 173 | |
| | 174 | case.addCompareOutput( |
| | 175 | \\pub export fn _start() i32 { |
| | 176 | \\ var i: i32 = 2147483647; |
| | 177 | \\ return i *% 2; |
| | 178 | \\} |
| | 179 | , "-2\n"); |
| | 180 | |
| 160 | case.addCompareOutput( | 181 | case.addCompareOutput( |
| 161 | \\pub export fn _start() u32 { | 182 | \\pub export fn _start() u32 { |
| 162 | \\ var i: u32 = 352; | 183 | \\ var i: u32 = 352; |
| ... | @@ -612,4 +633,15 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -612,4 +633,15 @@ pub fn addCases(ctx: *TestContext) !void { |
| 612 | \\} | 633 | \\} |
| 613 | , "42\n"); | 634 | , "42\n"); |
| 614 | } | 635 | } |
| | 636 | |
| | 637 | { |
| | 638 | var case = ctx.exe("wasm integer widening", wasi); |
| | 639 | |
| | 640 | case.addCompareOutput( |
| | 641 | \\pub export fn _start() u64 { |
| | 642 | \\ var x: u32 = 5; |
| | 643 | \\ return x; |
| | 644 | \\} |
| | 645 | , "5\n"); |
| | 646 | } |
| 615 | } | 647 | } |