| ... | ... | @@ -479,66 +479,68 @@ pub fn addCases(ctx: *TestContext) !void { |
| 479 | 479 | , "30\n"); |
| 480 | 480 | } |
| 481 | 481 | |
| 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 | | } |
| 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 | //} |
| 542 | 544 | |
| 543 | 545 | { |
| 544 | 546 | var case = ctx.exe("wasm error unions", wasi); |