Skip to content

Commit

Permalink
test: add br_table cases with block and loop and non-zero arity
Browse files Browse the repository at this point in the history
  • Loading branch information
gumb0 committed Jun 3, 2020
1 parent 6618f29 commit 23bd891
Showing 1 changed file with 45 additions and 2 deletions.
47 changes: 45 additions & 2 deletions test/unittests/execute_control_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -953,6 +953,49 @@ TEST(execute_control, br_table_arity)
const auto wasm = from_hex(
"0061736d0100000001060160017f017f030201000a15011300027f027f410120000e0101000b1a41020b0b");

EXPECT_THAT(execute(parse(wasm), 0, {0}), Result(1));
EXPECT_THAT(execute(parse(wasm), 0, {1}), Result(2));
auto instance = parse(wasm);
EXPECT_THAT(execute(instance, 0, {0}), Result(1));
EXPECT_THAT(execute(instance, 0, {1}), Result(2));

/* wat2wasm
(func (param $x i32) (result i32)
(block $a
(loop $b (result i32)
local.get $x
i32.const 1
i32.sub
local.tee $x
br_table $a $b
)
drop
)
i32.const 2
)
*/
const auto wasm2 = from_hex(
"0061736d0100000001060160017f017f030201000a180116000240037f200041016b22000e0101000b1a0b4102"
"0b");

EXPECT_THAT(execute(parse(wasm2), 0, {2}), Result(2));

/* wat2wasm
(func (param $x i32) (result i32)
(loop $a (result i32)
(block $b
local.get $x
i32.const 1
i32.add
local.tee $x
br_table $a $b
)
i32.const 2
return
)
)
*/
const auto wasm3 = from_hex(
"0061736d0100000001060160017f017f030201000a18011600037f0240200041016a22000e0101000b41020f0b"
"0b");

EXPECT_THAT(execute(parse(wasm3), 0, {uint32_t(-1)}), Result(2));
}

0 comments on commit 23bd891

Please sign in to comment.