| ... | ... | @@ -479,68 +479,66 @@ pub fn addCases(ctx: *TestContext) !void { |
| 479 | 479 | , "30\n"); |
| 480 | 480 | } |
| 481 | 481 | |
| 482 | | // This test case is disabled until the codegen for switch is reworked |
| 483 | | // to take advantage of br_table rather than a series of br_if opcodes. |
| 484 | | //{ |
| 485 | | // var case = ctx.exe("wasm switch", wasi); |
| 486 | | |
| 487 | | // case.addCompareOutput( |
| 488 | | // \\pub export fn _start() u32 { |
| 489 | | // \\ var val: u32 = 1; |
| 490 | | // \\ var a: u32 = switch (val) { |
| 491 | | // \\ 0, 1 => 2, |
| 492 | | // \\ 2 => 3, |
| 493 | | // \\ 3 => 4, |
| 494 | | // \\ else => 5, |
| 495 | | // \\ }; |
| 496 | | // \\ |
| 497 | | // \\ return a; |
| 498 | | // \\} |
| 499 | | // , "2\n"); |
| 500 | | |
| 501 | | // case.addCompareOutput( |
| 502 | | // \\pub export fn _start() u32 { |
| 503 | | // \\ var val: u32 = 2; |
| 504 | | // \\ var a: u32 = switch (val) { |
| 505 | | // \\ 0, 1 => 2, |
| 506 | | // \\ 2 => 3, |
| 507 | | // \\ 3 => 4, |
| 508 | | // \\ else => 5, |
| 509 | | // \\ }; |
| 510 | | // \\ |
| 511 | | // \\ return a; |
| 512 | | // \\} |
| 513 | | // , "3\n"); |
| 514 | | |
| 515 | | // case.addCompareOutput( |
| 516 | | // \\pub export fn _start() u32 { |
| 517 | | // \\ var val: u32 = 10; |
| 518 | | // \\ var a: u32 = switch (val) { |
| 519 | | // \\ 0, 1 => 2, |
| 520 | | // \\ 2 => 3, |
| 521 | | // \\ 3 => 4, |
| 522 | | // \\ else => 5, |
| 523 | | // \\ }; |
| 524 | | // \\ |
| 525 | | // \\ return a; |
| 526 | | // \\} |
| 527 | | // , "5\n"); |
| 528 | | |
| 529 | | // case.addCompareOutput( |
| 530 | | // \\const MyEnum = enum { One, Two, Three }; |
| 531 | | // \\ |
| 532 | | // \\pub export fn _start() u32 { |
| 533 | | // \\ var val: MyEnum = .Two; |
| 534 | | // \\ var a: u32 = switch (val) { |
| 535 | | // \\ .One => 1, |
| 536 | | // \\ .Two => 2, |
| 537 | | // \\ .Three => 3, |
| 538 | | // \\ }; |
| 539 | | // \\ |
| 540 | | // \\ return a; |
| 541 | | // \\} |
| 542 | | // , "2\n"); |
| 543 | | //} |
| 482 | { |
| 483 | var case = ctx.exe("wasm switch", wasi); |
| 484 | |
| 485 | case.addCompareOutput( |
| 486 | \\pub export fn _start() u32 { |
| 487 | \\ var val: u32 = 1; |
| 488 | \\ var a: u32 = switch (val) { |
| 489 | \\ 0, 1 => 2, |
| 490 | \\ 2 => 3, |
| 491 | \\ 3 => 4, |
| 492 | \\ else => 5, |
| 493 | \\ }; |
| 494 | \\ |
| 495 | \\ return a; |
| 496 | \\} |
| 497 | , "2\n"); |
| 498 | |
| 499 | case.addCompareOutput( |
| 500 | \\pub export fn _start() u32 { |
| 501 | \\ var val: u32 = 2; |
| 502 | \\ var a: u32 = switch (val) { |
| 503 | \\ 0, 1 => 2, |
| 504 | \\ 2 => 3, |
| 505 | \\ 3 => 4, |
| 506 | \\ else => 5, |
| 507 | \\ }; |
| 508 | \\ |
| 509 | \\ return a; |
| 510 | \\} |
| 511 | , "3\n"); |
| 512 | |
| 513 | case.addCompareOutput( |
| 514 | \\pub export fn _start() u32 { |
| 515 | \\ var val: u32 = 10; |
| 516 | \\ var a: u32 = switch (val) { |
| 517 | \\ 0, 1 => 2, |
| 518 | \\ 2 => 3, |
| 519 | \\ 3 => 4, |
| 520 | \\ else => 5, |
| 521 | \\ }; |
| 522 | \\ |
| 523 | \\ return a; |
| 524 | \\} |
| 525 | , "5\n"); |
| 526 | |
| 527 | case.addCompareOutput( |
| 528 | \\const MyEnum = enum { One, Two, Three }; |
| 529 | \\ |
| 530 | \\pub export fn _start() u32 { |
| 531 | \\ var val: MyEnum = .Two; |
| 532 | \\ var a: u32 = switch (val) { |
| 533 | \\ .One => 1, |
| 534 | \\ .Two => 2, |
| 535 | \\ .Three => 3, |
| 536 | \\ }; |
| 537 | \\ |
| 538 | \\ return a; |
| 539 | \\} |
| 540 | , "2\n"); |
| 541 | } |
| 544 | 542 | |
| 545 | 543 | { |
| 546 | 544 | var case = ctx.exe("wasm error unions", wasi); |